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?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
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/configmust 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
Method 2
I usually use the .ssh/config file found in my home directory to run my OpenSSH client in the format ssh ubserver. In that file found here /home/$USER/.ssh I have the follow configurations:
Host ubserver
Hostname 127.0.0.1
Port 2222
User george
Meaning I can simply do:
ssh ubserver
and connect to the said server without typing more than that line in the terminal.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0