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:
Host
header. This option is not necessary if the Host
definition specifies the actual valid hostname to connect to.# Personal linux server for testing Host my-linux-tester HostName ec2-tester.folaukaveinga.com User ubuntu AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/personal/test.perm
Now 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-tester
SFTP – transfer file from your local to a remote server
This example is from a mac to a ubuntu linux server
sftp folauk-dev