Having to constantly type in your password on a linux server that you ssh to often can get to be an annoyance. Luckily this is an easy problem to solve. Since I always end up forgetting how to do this setup, I thought I would finally write this down, even if just for my own reference :).
1. ssh to server1
Connect to server1 and generate a public/private key pair.
1
2
3
| ssh myusername@server1 password: ssh -keygen -t rsa |
When you run this command you will be prompted to answer several questions. Just hit enter each time until you are returned to a prompt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Generating public /private rsa key pair. Enter file in which to save the key ( /home/local/myusername/ . ssh /id_rsa ): Created directory '/home/local/myusername/.ssh' . Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/local/myusername/ . ssh /id_rsa . Your public key has been saved in /home/local/myusername/ . ssh /id_rsa .pub. The key fingerprint is: 15:68:47:67:0d:40:e1:7c:9a:1c:25:18:be:ab:f1:3a myusername@server1 The key's randomart image is: +--[ RSA 2048]----+ | .*Bo=o | | .+o.* . | | ...= . | | + = | | S + | | . | | . . | | E+ | | oo. | +-----------------+ |
Now you will need to copy the public key you just generated and save it somewhere, you will need it later. Also ensure when you copy the key that the text is all on one line, if there are line breaks in the text, it will cause problems later when you try and use the key.
1
2
3
4
5
6
7
| cd . ssh cat id_rsa.pub ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyFS7YkakcjdyCDOKpE4RrBecRUWShgmwWnxhbVNHmDtJtK PqdiLcsVG5PO94hv3A0QqlB1MX33vnP6HzPPS7L4Bq+5plSTyNHiDBIqmZqVVxRbRUKbP44BaA9RsW2ROu 8qdzmXRPupkyFBBOLa23RJJojBieFGygR2OwjS8cq0kpZh1I3c1fbU9I5j38baUK0naTBe2v7s /C8allnJ hwkfds+Q9 /kjaV55pMZIh +9jhoA8acCA6B55DYrgPSycW6fEyV /1PIER +a5lOXp1QCn0U+XFTb85dp5fW0 /rUnu0F9nBJFlo7Rvc1cMuSUiul/wvJ8tzlOhU8FUlHvHqoUUw == myusername@server1 |
2. ssh to server2
Now we will copy the public key from server1 to server2.
1
2
3
4
5
6
7
| ssh myusername@server2 password: mkdir . ssh cd . ssh vi authorized_keys # paste the public key chmod 600 authorized_keys |
3. Test that your setup is working
1
2
3
4
| ssh myusername@server1 password: ssh myusername@server2 # you should not be prompted for a password! |
That is all! (Thanks!)