I have been using SSH configuration a lot to make short hostname aliases for sites I SSH into frequently, but I recently figured out how to use it to change to a certain directory by default when logging in. At work, our sites each have their own user with their own site project directory. Most of the time when I log in, I want to go to the project directory instead of the default, the home directory. I
cded manually each time for a long time, but decided to look up a better option, and found a config option on ServerFault.
RemoteCommand configuration setting is run on the server when SSHing in. I use this to
cd, and then invoke the login shell to actually log in. I use the
RequestTTY force setting to ensure an interactive terminal is used. In
~/.ssh/confg, I would have something like this:
Host t tobymackenzie.com
RemoteCommand cd /var/www/tobymackenzie.com && $SHELL -l
Then to log in, I would do
ssh me@t. I’d end up in my desired directory instead of the user’s home folder.
I could also login using
screen if available, to make it easier to disconnect long running processes, by using a value like this:
RemoteCommand cd /var/www/tobymackenzie.com && (which screen && screen -qR || $SHELL -l)
Makes logging in to do quick tasks faster and easier.