ssh-copy-id uitleg

Inleiding

Het is mogelijk zonder het ingeven van een wachtwoord via SSH wilt in te loggen op een server. In dat geval moet je ervoor zorgen dat de publieke ssh sleutel die aangemaakt is op de computer waarmee je inlogt op deze server komt te staan. Als het op de server (nog) toegestaan is om in te loggen met loginnaam en wachtwoord, dan kopieer je je publieke SSH sleutel met behulp van het ssh-copy-id commando naar de server. Dit commando ziet er als volgt uit:

ssh-copy-id  [gebruikersnaam@][IP | hostname]

Toelichting

Met ssh-copy-id worden alle publieke sleutels uit de ~/.ssh directory naar de server gekopieerd. Geef je geen gebruikersnaam op, dan zal ssh-copy-id met de gebruikersnaam waarmee je ingelogd bent gebruiken. Bestaat deze gebruikersnaam niet op de server, of wil je bewust een andere gebruikersnaam op de server gebruiken dan voeg je de gebruikersnaam toe aan het commando.

Veiligheidsrisico

Stel je hebt in verband met veiligheid 2 verschillende SSH sleutels gemaakt om in te loggen op de server. De eerste SSH sleutel is voorzien van een wachtwoord op de sleutel om te voorkomen dat kwaadwilligen misbruik maken van deze sleutel. De tweede sleutel heeft geen wachtwoord om te gebruiken in bijvoorbeeld een backupscript dat gebruikt maakt van SFTP op dezelfde sleutel. (SFTP configureer je op de SSH server.) Het ssh-copy-id commando kopieert standaard beide sleutels naar de server. Het gevolg hiervan is dat je doordat ook de sleutel gekopieerd hebt die geen wachtwoord op de priv├ę sleutel heeft toch nog zonder wachtwoord kunt inloggen op de server.

Beperken veiligheidsrisico

Beter is het om op de SSH configuratie van de SSH server aan te passen zodat het niet meer mogelijk is om zonder wachtwoord in te loggen. Daarnaast kun je er voor kiezen om bijvoorbeeld de sleutels die je gebruikt voor SFTP op te slaan in bijvoorbeeld de directory ~/.ssh/sftp. Tot slot is het ook mogelijk om alleen 1 sleutel naar de server te kopieren met ssh-copy-id. Met het onderstaande commando kopieer je de standaard aangemaakt publieke SSH sleutel naar de server.

ssh-copy-id -i ~/.ssh/id_rsa [gebruikersnaam@][IP | hostname]
ssh-copy-id manpage in Linux Mint 22.1 Cinnamon

Dit artikel maakt onderdeel uit van de kennisbank over linux commando’s.