SSH stands for “Secure Shell”. It is a protocol used to securely connect to a remote server. ssh is secure in the sense that it transfers the data in encrypted form between the host and the client. It transfers inputs from the client to the host and relays back the output. ssh runs at TCP/IP port 22.
SSH with username and password
ssh {options} username@host
host can be ip address or domain name. You will be prompted to enter password
ssh ubuntu@19423455
SSH with private and public keys
ssh -i “/path-to-IdentityFile” username@host
With aws ec2, you have a .pem file as the identity file.
ssh -i "test.perm" ubuntu@folauk.com
Add custom connection options
When you ssh into a server, you most likely use a key. But it takes time to type out the key and other options. It would be nice to have to option of just typing out something like ssh my-linux-tester in which case you know exactly where to go. It turns out you can do this kind of thing. SSH has a config file in the ~/.ssh directory. This config file can be configured for your custom connections with these options:
- HostName: The actual hostname that should be used to establish the connection. This replaces any alias defined in the
Hostheader. This option is not necessary if theHostdefinition specifies the actual valid hostname to connect to. - User: The username to be used for the connection.
- Port: The port that the remote SSH daemon is running on. It’s default to port 22 if not specified.
- IdentityFile : The public identity file.
# Personal linux server for testing
Host my-linux-tester
HostName ec2-tester.folaukaveinga.com
User ubuntu
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/personal/test.permNow you can just do this to ssh into server. ssh {Host} in which case you will ssh into the ec2-tester.folaukaveinga.com server
ssh {Host}
ssh my-linux-testerSFTP – transfer file from your local to a remote server
This example is from a mac to a ubuntu linux server
sftp folauk-dev