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