Mikä on SSH-avain?

SSH-avain viittaa ns. "avainpariin", jota voidaan käyttää turvallisempaa ja helpompaa palvelimeen kirjautumista varten salasanojen sijaan. 

Avainpareja käyttäessä hyökkääjä ei pysty arvaamaan salasanaasi, vaan tarvitsee avaimen joka löytyy vain sinulta.

 

SSH-avaimen luonti

Jos SSH-avainta ei löydy, se täytyy luoda käyttämällä komentoa "ssh-keygen" (Windows-ympäristöissä "ssh-keygen.exe")

  1. Avaa terminaali tai cmd
  2. Aja "ssh-keygen"
  3. Seuraa ruudulla näkyviä ohjeita

 

Tarkista että avaimet on luotu:

Oman koneesi kotikansiosta:

Linux terminal:
ls -l ~/.ssh/
 
Windows cmd:
dir $env:USERPROFILE\.ssh -Force

Pitäisi näkyä esim:

id_ed25519 (yksityinen, älä kopioi minnekään)

id_ed25519.pub (julkinen, tämän sisältö viedään palvelimelle)

 

Kopioi julkinen avain palvelimelle.

Helpoin tapa:

Linux: Avaa terminal ja syötä komento:

ssh-copy-id -i ~/.ssh/id_ed25519.pub käyttäjä@palvelin

Windows: Avaa powershell ja syötä komento:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh käyttäjä@palvelin "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Tämä kysyy salasanan kerran ja hoitaa kaiken automaattisesti.

 

Jos ssh-copy-ip ei ole käytössä tai ei onnistu.

Tee manuaalisesti

Linux:

Näytä julkisen avaimen sisältö ja Kopioi koko rivi (alkaa ssh-ed25519 ja loppuu käyttäjänimeen).

cat ~/.ssh/id_ed25519.pub

Kirjaudu palvelimelle salasanalla:

ssh käyttäjä@palvelin



Palvelimella:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Liitä avain tiedoston loppuun yhdelle riville.
Tallenna (Ctrl+O, Enter) ja sulje (Ctrl+X).

Aseta oikeudet:

chmod 600 ~/.ssh/authorized_keys

Testaa kirjautuminen

Poistu palvelimelta ja yritä uudelleen:

ssh käyttäjä@palvelin

Jos kaikki onnistui, et enää joudu syöttämään palvelimen salasanaa.

 

Windows:

Avaa powershell ja syötä komento:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

Kopioi koko avainrivi (alkaa ssh-ed25519 ja loppuu käyttäjänimeen).

Yhdistä palvelimelle salasanalla:

ssh käyttäjä@palvelin

Palvelimen päässä:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Liitä avain tiedoston loppuun yhdelle riville.
Tallenna (Ctrl+O, Enter) ja sulje (Ctrl+X).

Aseta oikeudet:

chmod 600 ~/.ssh/authorized_keys

Testaa kirjautuminen

Poistu palvelimelta ja yritä uudelleen:

ssh käyttäjä@palvelin

Jos kaikki onnistui, et enää joudu syöttämään palvelimen salasanaa.

  1.  

Kuinka käynnistän ssh-servicen uudelleen

useimmat RedHat- ja Debian-pohjaiset, esim. RHEL 7+, CentOS 7+, Fedora, Ubuntu 16.04+, Debian 8+

sudo systemctl restart sshd

Debian-/Ubuntu-puolella palvelun nimi voi myös olla ssh

sudo systemctl restart ssh

Vanhat SysVinit (esim. RHEL 6, Debian 7, Ubuntu 14.04 tai vanhemmat)

sudo service ssh restart # Debian/Ubuntu
sudo service sshd restart # RedHat

Salasanan käytöstä poistaminen palvelimen kirjautumisesta

Etäpalvelimen päästä voidaan poistaa kokonaan käytöstä salasana-autentikaatio muokkaamalla SSH-palvelimen asetuksia.
Kun SSH-avaimella kirjautuminen on testattu toimivaksi:

Avaa SSH-palvelimen asetustiedosto

sudo nano /etc/ssh/sshd_config

Varmista, että julkisella avaimella kirjautuminen on päällä

 Etsi rivi "#PubkeyAuthentication yes", ja ota sen edestä #-kirjain pois.

Poista salasanakirjautuminen pois käytöstä

Etsi rivi "#PasswordAuthentication yes", ja muuta se muotoon "PasswordAuthentication no" (ilman #-kirjainta!").

Tallenna tiedosto

Paina CTRL + X, jolloin editori saattaa pyytää varmistusta, johon painetaan Y-kirjainta vahvistaakseen tallennus.

Käynnistä SSH-palvelin uudelleen

sudo systemctl reload ssh

Varmista, että avaimella kirjautuminen toimii ja salasanaa ei enään hyväksytä

 

Nyt palvelimesi:

  • Hyväksyy vain SSH-avaimella kirjautumisen

  • Estää root-käyttäjän kirjautumisen SSH:n kautta

 

Auttoiko artikkeli teitä? 0 käyttäjistä hyötyivät artikkelista (0 Äänet)