SSH-võtmega ühendus serverisse

SSH-võti on paroolist turvalisem ja mugavam viis serverisse sisselogimiseks. Selle asemel, et iga kord parooli sisestada, kasutad krüptograafilist võtmepaari.

Eeltingimused

  • Serveri IP-aadress ja kasutajanimi (nt root või enda kasutaja)
  • Terminal (macOS/Linux) või PowerShell (Windows 10+)

1. Loo võtmepaar

Võtmepaar koosneb privaatvõtmest (jääb sinu arvutisse, ära kunagi jaga) ja avalikust võtmest (läheb serverisse).

ssh-keygen -t ed25519 -C "sinu@email.ee"

Vajuta Enter, et salvestada vaikekohta (~/.ssh/id_ed25519). Soovi korral lisa paroolifraas (passphrase) — see kaitseb võtit, kui keegi su arvutile ligi pääseb.

Tip

ed25519 on tänapäeval soovitatud algoritm. Kui server on väga vana ja ei toeta seda, kasuta ssh-keygen -t rsa -b 4096.

2. Kopeeri avalik võti serverisse

ssh-copy-id kasutaja@<serveri-ip>
Sisesta serveri parool — see on viimane kord, kui seda vaja läheb.

cat ~/.ssh/id_ed25519.pub | ssh kasutaja@<serveri-ip> \
  "mkdir -p ~/.ssh && chmod 700 ~/.ssh && \
   cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3. Logi sisse

ssh kasutaja@<serveri-ip>

Kui kõik õnnestus, ei küsita enam parooli (või küsitakse ainult võtme paroolifraasi).

4. Mugav seadistus ~/.ssh/config

Et mitte iga kord IP-d ja kasutajat trükkida, lisa oma arvutis fail ~/.ssh/config:

Host minu-server
    HostName 203.0.113.10
    User siim
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Nüüd piisab ühendamiseks:

ssh minu-server

5. Lülita paroolisisselogimine välja

Tee seda alles siis, kui võtmega sisselogimine TÖÖTAB

Kui keelad paroolid enne, kui võti toimib, võid end serverist välja lukustada.

Serveris muuda faili /etc/ssh/sshd_config:

PasswordAuthentication no
PubkeyAuthentication yes

Seejärel taaskäivita SSH-teenus:

sudo systemctl restart ssh
Tõrge: „Permission denied (publickey)“
  • Kontrolli, et avalik võti on serveris failis ~/.ssh/authorized_keys.
  • Õigused peavad olema: ~/.ssh = 700, authorized_keys = 600.
  • Veendu, et logid sisse õige kasutajaga (root ja tavakasutaja võtmed on eraldi).
  • Lisa -v lipp diagnostikaks: ssh -v kasutaja@<serveri-ip>.

Kontroll-loend

  • Võtmepaar loodud
  • Avalik võti serveris
  • Võtmega sisselogimine töötab
  • (Soovituslik) Paroolisisselogimine keelatud