SSH Key creation and validation - rajivkanaujia/alphaworks GitHub Wiki
Keys mentioned here are sample keys and are not used in any development / production environments :-)
- Create a directory where SSH keys will be stored
$ mkdir ~/.ssh
$ cd ~/.ssh
- Create key pair replace [email protected] with actual email
ssh-keygen -t rsa -C "<[email protected]>"
- Test passphrase by loading the private key. NEVER share your private key.
ssh-keygen -y -f id_rsa
- Test is your private key matches public key
- Approach 1
$ diff -s <( ssh-keygen -y -e -f id_rsa ) <( ssh-keygen -y -e -f id_rsa.pub )
- Approach 2 (compare visually)
$ cd ~/.ssh
$ ssh-keygen -y -e -f id_rsa
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "4096-bit RSA, converted by rajivkanaujia fro"
AAAAB3NzaC1yc2EAAAADAQABAAACAQC5q4bsOmYXnl61m3t081ijiO9W4GXc+4e00DJs+T
7WGXf3Pccjrgrd3DmKjMh4mwG9JN75A684uqjDfxt/i6ncJLfqfi3MiZXsNGFuRWwO7REQ
pfFZHNY/89QsMdoKg+0ZT0gyMEAMPsyERhd74pumA6OhyQxoOeNlS6ZSq8ZWe2USpgdt+v
5xA+oHr0TDDTk8aTjxm6R1T/aED5gcOllox0JXUUN+y4s+yEiXJ88dKn3lBq7bMgvNB/UO
c1g4tHgU1sgqATgaig8T0l9I53v85BAKKJaeRCWJ/V94Ec9bBHioWApfImP1o5zl6BGYPj
956STwoZZBcvZ49qsOdDE0WBgzAJA/1cZctX9iBAspPpUYdt4f9KfBtSAFWWQP8nDOtziD
j+SkKDGY2nfYfk4Az+3I9NmMrruEZbzpfkDcFOtJa8PUk7wSrj4GbfL2ceb3F1FzLalSDI
BZuYIoX3XDDpMP2pPckLKJ1FmpdzyFFuwIK8P7MbrOqS+jAo9S8Mbq3XM8S0ALJWsSf+Ku
i5ecgfNIuapC/DnFdSlrhntQJT5qUwVPvrXZkYHtBPbOZDfOwFgDWked/WkQ0v7Ckqutlz
n0SL7Zo+Rd+1C49eo8EUnTBtANCNnrW5cvUUjlc7DnGb+2/7fqhmTbaz69xJ8KXkS8ftsa
tu7kZf2Mf/uPMw==
---- END SSH2 PUBLIC KEY ----
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5q4bsOmYXnl61m3t081ijiO9W4GXc+4e00DJs+T
7WGXf3Pccjrgrd3DmKjMh4mwG9JN75A684uqjDfxt/i6ncJLfqfi3MiZXsNGFuRWwO7REQ
pfFZHNY/89QsMdoKg+0ZT0gyMEAMPsyERhd74pumA6OhyQxoOeNlS6ZSq8ZWe2USpgdt+v
5xA+oHr0TDDTk8aTjxm6R1T/aED5gcOllox0JXUUN+y4s+yEiXJ88dKn3lBq7bMgvNB/UO
c1g4tHgU1sgqATgaig8T0l9I53v85BAKKJaeRCWJ/V94Ec9bBHioWApfImP1o5zl6BGYPj
956STwoZZBcvZ49qsOdDE0WBgzAJA/1cZctX9iBAspPpUYdt4f9KfBtSAFWWQP8nDOtziD
j+SkKDGY2nfYfk4Az+3I9NmMrruEZbzpfkDcFOtJa8PUk7wSrj4GbfL2ceb3F1FzLalSDI
BZuYIoX3XDDpMP2pPckLKJ1FmpdzyFFuwIK8P7MbrOqS+jAo9S8Mbq3XM8S0ALJWsSf+Ku
i5ecgfNIuapC/DnFdSlrhntQJT5qUwVPvrXZkYHtBPbOZDfOwFgDWked/WkQ0v7Ckqutlz
n0SL7Zo+Rd+1C49eo8EUnTBtANCNnrW5cvUUjlc7DnGb+2/7fqhmTbaz69xJ8KXkS8ftsa
tu7kZf2Mf/uPMw== <[email protected]>
Your public key has been saved in /Users/rajiv/.ssh/id_rsa.pub.
The key fingerprint is:
4c:b4:39:0e:07:21:c3:07:6d:a8:13:62:d7:67:46:4d [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .=++ddd |
|....ff . + |
|...o o= * |
| o * . |
| . S |
| |
| |
| |
| |
+-----------------+
- Check what Keys are available
$ ls -al ~/.ssh
- Ensure SSH Agent is enable Start the ssh-agent in the background
eval "$(ssh-agent -s)"
- Add your SSH key to the ssh-agent:
[rajiv]$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /Users/rajiv/.ssh/id_rsa:
Identity added: /Users/rajiv/.ssh/id_rsa (/Users/rajiv/.ssh/id_rsa)
- Copy Content of your public key from Terminal to paste anywhere else
pbcopy < ~/.ssh/id_rsa.pub
Copies the contents of theid_rsa.pub
file to your clipboard
- Reduce access level on the keys
$ chmod 400 id_rsa
$ chmod 400 id_rsa.pub
- End
Note: If you like the instructions here, please refer it on your posts/documentation. Contact me if there are corrections needed.