# Is it possible to use own settings while SSH-ing to a server?



## maxmoon (Oct 2, 2019)

I don't know if it's just a stupid thought or if something like this even exists.

After connecting to ssh to different servers, I just got annoyed that everything is different. I have to install my preferred terminal emulator, my favorite shell, my dotfiles, etc. But if it isn't allowed to install anything on a server, I just have to live with bash and put my aliases to just work a bit better.

So is there any way to use the local "stuff" on another server, without configuring the whole server?


----------



## D-FENS (Oct 2, 2019)

If it isn't allowed to install anything on a server, then there is nothing you can do. That's the point - the administrator has forbidden you to install software for a reason.
You cannot use your local programs on the remote side, because what you actually have is just a shell to the remote system. It needs to be installed there.

If you do control the remote side, then you probably need some configuration automation tool like Puppet: https://wiki.freebsd.org/Puppet/GettingStarted/


----------



## maxmoon (Oct 2, 2019)

roccobaroccoSC said:


> If you do control the remote side, then you probably need some configuration automation tool like Puppet: https://wiki.freebsd.org/Puppet/GettingStarted/



I tried to read the site you were posting and the [github site of puppet](https://github.com/saz/puppet-ssh), but I really don't understand, what puppet does? What does "Manage SSH client and server via Puppet" mean? Does it sync config files (like .zsh_aliases) automatically and manage the ~/.ssh keys?


----------



## SirDice (Oct 2, 2019)

maxmoon said:


> what puppet does? What does "Manage SSH client and server via Puppet" mean? Does it sync config files (like .zsh_aliases) automatically and manage the ~/.ssh keys?


Puppet is a piece of kit you use to automate the installation and configuration of large numbers of servers. This allows you to assign 'roles' to a server and puppet will make sure everything required for that 'role' will get installed and configured, thus every role on every server is configured exactly the same. Not easy to use, after 6 years and numerous installations I've only begun to scratch its surface. There's a very steep learning curve. I'm loving every minute of it but it will take quite a bit of time before you fully understand how to use it properly.









						Powerful infrastructure automation and delivery | Puppet
					

Puppet automates away the challenges, complexity, and risk of securing and running global hybrid and cloud-native infrastructure, so you can focus on delivering the next great thing.



					puppet.com


----------



## tingo (Oct 3, 2019)

or with Ansible: on the local machine you run `ansible-playbook --limit targetmachine mysuperplaybookthatconfigureseverything.yml` then ansible logs into the machine 'targetmachine' and runs the playbook so that the target is configured as described in the playbook (simplified explanation). You need to have necessary credentials on the target machine (a user with enough rights to make the changes in the playbook), be it username and password, or ssh keys. I really like ansible.


----------



## Alexander Huemeyer (Oct 3, 2019)

If you dont have root access on the target machine you often can install things in $HOME/bin


----------

