======SSH Key Management======
This page is meant to assist in setting up and maintaining SSH keys.
----
=====SSH Directory Permissions=====
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_hosts
chmod 644 ~/.ssh/config
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
----
=====Generating SSH Keys=====
====ED25519====
* Change to ''%%~/.ssh%%'':
cd ~/.ssh
* Generate an **Ed25519** ssh key:
ssh-keygen -t ed25519 -a 256
* Generate an **Ed25519** ssh key with a specific name:
ssh-keygen -f -t ed25519 -a 256
----
====RSA====
* Change to ''%%~/.ssh%%'':
cd ~/.ssh
* Generate a **RSA** ssh key:
ssh-keygen -t rsa -b 4096 -o -a 256
* Generate a **RSA** ssh key with a specific name:
ssh-keygen -f -t rsa -b 4096 -o -a 256
----
=====Verifying SSH Keys=====
====Verify SSH Key Password====
* Change to ''%%~/.ssh%%'':
cd ~/.ssh
* Verify password:
ssh-keygen -y -f id_ed25519
* Upon entering successful passphrase, it prints the pubkey:
Enter passphrase:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAZcdEIpPbJal7CEsIpaHzBEjs/8nedIvDA/sDlvqll chuck@gaming
* Enter the wrong passphrase:
ssh-keygen -y -f id_ed25519
Enter passphrase:
Load key "id_ed25519": incorrect passphrase supplied to decrypt private key
----
====Verify SSH Private Key Matches Public Key====
* Change to ''%%~/.ssh%%'':
cd ~/.ssh
* Verify ssh key matches it's private key:
ssh-keygen -l -f id_ed25519; ssh-keygen -l -f id_ed25519.pub
* Output should match:
256 SHA256:W5o5+DV3Jaba4txzQ58gZuIZvZD44McIU7tV9I4LZpw chuck@gaming (ED25519)
256 SHA256:W5o5+DV3Jaba4txzQ58gZuIZvZD44McIU7tV9I4LZpw chuck@gaming (ED25519)
----
=====Modifying SSH Keys=====
====Change SSH Key Password====
* Change to ''%%~/.ssh%%'':
cd ~/.ssh
* Change password:
ssh-keygen -p -f id_ed25519
----
====Change SSH Key Comment====
* Change to ''%%~/.ssh%%'':
cd ~/.ssh
* Change comment (email):
ssh-keygen -c -f id_ed25519
Enter passphrase:
Key now has comment 'chuck@hostname'
Enter new comment: user@newname
The comment in your key file has been changed.
----
=====SSH-Agent=====
* Add the key to the ssh-agent.
ssh-add keyname
* Add the key to the server using the credentials from the config file.
ssh-copy-id -i keyname servername
----
=====Links=====
* https://manpages.debian.org/stable/openssh-client/ssh.1.en.html
* https://manpages.debian.org/stable/openssh-client/ssh-keygen.1.en.html
* https://manpages.debian.org/stable/openssh-client/ssh-add.1.en.html
* https://manpages.debian.org/stable/openssh-client/ssh-copy-id.1.en.html