Ssh – How to create alias for ssh command

aliasssh

I have a command, which looks like so:

$ ssh [long list of parameters, eventually I connect to internalhost]

My task is to replace this long list of parameters with just internalhost, so that I could run it like so

$ ssh internalhost

How can I do that?

Best Answer

Standard SSH clients read the configuration files before any connection:

/etc/ssh/ssh_config   # system-wide
~/.ssh/config         # per user

with the latter having more priority.
Ideally, you want to configure the systemwide config with parameters that please all users and the config in your homedir with options specific to you.
Here's an example of ~/.ssh/config

Host remote.example.com
    User            dev1
    IdentityFIle    ~/.ssh/id_rsa_remote

Then to connect:

ssh remote.example.com

Note: ~/.ssh/config must have read/write permissions for the user, and not be accessible by others (chmod 600 ~/.ssh/config)

All possible options are documented in ssh_config manual pages: man ssh_config

Related Question