How to create alias for ssh command?

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/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

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

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x