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
rootvõ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 (
rootja tavakasutaja võtmed on eraldi). - Lisa
-vlipp diagnostikaks:ssh -v kasutaja@<serveri-ip>.
Kontroll-loend¶
- Võtmepaar loodud
- Avalik võti serveris
- Võtmega sisselogimine töötab
- (Soovituslik) Paroolisisselogimine keelatud