SSH autologin met RSA keys
Genereren van keypair op Windows
Download Putty KeyGen (is portable) en start deze.
- Genereer een keypair met PuTTYgen (Parameters bijv: RSA 2048 bits, geen passphrase) en klik op Generate.
- Klik op ´Save private key´ en sla de private key op als “id_rsa2048.ppk”
- Klik op ´Save public key´ en sla de public key op als “id_rsa2048.pub”
Kopieer de public key uit het Public key venster naar het clipboard. Deze ziet er uit als:
ssh-rsa AAA......ZCbQk= rsa-key-20190115
Genereren van keypair op Linux
Bron: help.ubuntu.com/community/SSH/OpenSSH/Keys
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): <enter> -> Geen passphrase
Enter same passphrase again: <enter>
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
Kopieer de public key naar het clipboard (selecteren in Kitty/Putty met muis). Dat doe je als volgt:
cat ~/.ssh/id_rsa.pub
Deze ziet er uit als:
ssh-rsa AAA......ZCbQk= user@hostname
Automatisch inloggen via SSH
Automatisch inloggen met SSH kan eenvoudig geconfigureerd worden met private en public key files. Het kan op verschillende manieren, namelijk via:
- Windows optie 1: Een private key in Kitty
- Windows optie 2: Met KeePass en KeeAgent plugin
- Linux: Met SSH vanaf een andere Linux server
Kitty installeren
Voor de Windows opties is Kitty nodig, dit is de verbeterde Kitty versie. Download de Kitty Windows Classic (verbeterde PuTTY) en installeer deze
Windows optie 1: Je Private key in Kitty
Start Kitty en doe het volgende:
- Connection->Data->Auto-login username: root
- Connection->SSH->Auth->Private Key: <Je private key file>
- En sla de sessie op
Voeg nu op de remote server je public key toe aan de authorized_keys file, zoals beschreven in: Toevoegen van je public key op je linux server
Windows optie 2: Met KeePass en KeeAgent plugin
Open KeePass en doe het volgende:
- Maak een nieuwe entry aan (Ctrl-I)
- Vul de titel in van de entry: LoginMetKey
- Ga naar de tab: Advanced en klik op Attach
- Browse naar de hiervoor opgeslagen private key file
en open deze. - Druk op OK.
Let op! Nu staat deze private key in KeePass en kan voor meerdere servers gebruikt worden. Er hoeft dus niet per server een private key opgeslagen te worden.
Voeg nu op de remote server je public key toe aan de authorized_keys file, zoals beschreven in: Toevoegen van je public key op je linux server
Linux optie 3: Met SSH vanaf een andere Linux server
Eerst logen we in als root en maken een .ssh directory aan en genereren we met ssh-keygen het keypair:
mkdir ~/.ssh
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub
Voeg nu op de remote server je public key toe aan de authorized_keys file, zoals beschreven in: Toevoegen van je public key op je linux server
Ter aanvulling: KeePass2 en KeeAgent op de Linux desktop
Als de keys gegeneerd zijn op een Linux desktop waarvan je werkt, dan zal je zien dat KeeAgent al deze private key had ingelezen.
Toevoegen van je public key op je linux server
Created dinsdag 15 januari 2019
Toevoegen van je public key op je linux server
Login als root op je server en wjzig/controleer de sshd_config:
vi /etc/ssh/sshd_config
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
En herstart de ssh service:
sudo service ssh --full-restart
Voeg de public key toe (staat als het goed is in je clipboard) aan de authorized_keys file en zet de rechten goed:
#Creëer de .ssh folder (als dieze nog niet aanwezig is
mkdir ~/.ssh
vi /root/.ssh/authorized_keys
ssh-rsa AAA......ZCbQk= rsa-key-20190115
#Zet de toegangsrechten goed
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys