Kaip prisijungti prie nuotolinio Ubuntu 20.04 serverio naudojant SSH raktą be slaptažodžio


Tiems, kurie nuotoliniu būdu turi Ubuntu ar kitą Linux serverį (pvz., Debian, CentOS ir Fedora), štai kaip prisijungti be slaptažodžio naudojant SSH rakto autentifikavimą.

Palyginti su vartotojo slaptažodžio prisijungimu, SSH rakto autentifikavimas yra saugesnis, nes prisijungti leidžia tik raktą turintis asmuo, o raktai yra gerai užšifruoti skirtingų algoritmų. Tai taip pat palengvina SSH ryšį prisijungiant be slaptažodžio.

1. Įgalinkite SSH paslaugą (padarykite tai serverio pusėje):

Jei nesate įjungę SSH paslaugos nuotoliniame serveryje. Pirmiausia turite prisijungti prie serverio ir paleisti komandą, kad įdiegtumėte openssh:

sudo apt install openssh-server

„CentOS“ ir „Fedora“ serveriams naudokite komandą sudo dnf install openssh-server.

Įdiegę įjunkite ir paleiskite paslaugą naudodami komandą:

sudo systemctl enable ssh && sudo systemctl start ssh

Ir galiausiai patikrinkite SSH paslaugos būseną vykdydami komandą:

sudo system status ssh

Jei matote, kad paslauga yra aktyvi ir veikia, galite pradėti prisijungti prie serverio per SSH nuotoliniu būdu, naudodami toliau pateiktą komandą vietiniame kompiuteryje:

ssh user@server_ip

Pakeiskite naudotoją ir serverio_ip. Ir naudokite -p port_number, kad nurodytumėte prievado numerį, jei jis nėra numatytasis 22.

2. Įjunkite SSH rakto autentifikavimą (paleiskite komandas vietiniame kompiuteryje):

Autentifikavimo raktai generuojami vietiniuose kompiuteriuose. Paprastai juos sudaro privatus raktas ir viešasis raktas. Įkėlę viešąjį raktą į nuotolinį „Linux“ serverį, galėsite prisijungti prie SSH naudodami privatų raktą vietiniame kompiuteryje.

PASTABA: ši pamoka išbandyta vietiniame Ubuntu kompiuteryje, nors ji turėtų veikti daugelyje Linux, įskaitant Debian, Fedora, CentOS ir Arch Linux.

1. Įdiekite OpenSSH klientą:

„OpenSSH“ klientas dažniausiai įdiegiamas iš karto. Jei jos neturite, paleiskite šią komandą vietiniame kompiuteryje, kad ją įdiegtumėte:

sudo apt install openssh-client

Jei naudojate CentOS ir Fedora, naudokite sudo dnf install openssh openssh-clients.

2. Sukurkite SSH raktų porą:

Komanda ssh-keygen leidžia generuoti SSH raktų porą naudojant RSA, ECDSA ir ED25519 algoritmus. Nors RSA yra plačiai naudojamas ir geriausiai palaikomas, ED25519 siūlo geresnį saugumą ir gerą našumą.

a.) Pirmiausia vietinio kompiuterio terminalo lange sukurkite ir eikite į katalogą .ssh:

mkdir -p ~/.ssh && cd ~/.ssh

b.) Tada paleiskite komandą, kad sugeneruotumėte raktų porą:

ssh-keygen -t ed25519 -f linode_ed25519 -C "root@linode"

Kode galite pakeisti „ed25519“ pageidaujamu šifravimo algoritmu. Ir „-f linode_ed25519“ nurodo rakto pavadinimą, „-C „root@linode““ yra neprivalomas komentaras.

c.) Saugumo sumetimais labai rekomenduojama nenustatyti jokių leidimo (net neskaityti) kitiems naudotojams, išskyrus save:

chmod 600 ~/.ssh/linode_ed25519*

Pakeiskite „linode_ed25519“ į rakto pavadinimą, kurį nustatėte paskutiniame veiksme. Pabaigoje yra žvaigždutė „*“, todėl ji taip pat taikoma „linode_ed25519.pub“ failui.

3. Įkelkite viešąjį raktą į pagrindinį serverį (atlikite vietiniame kompiuteryje):

Dabar įkelkite viešąjį raktą (mano atveju „linode_ed25519.pub“) iš vietinio kompiuterio į nuotolinį serverį, naudodami komandą:

cd ~/.ssh && ssh-copy-id -i linode_ed25519.pub user@server_ip

Nepamirškite pridėti „-p numerio“, jei klausymosi prievadas nėra numatytasis 22. Norėdami įkelti raktą, turite įvesti nuotolinio vartotojo slaptažodį.

Po to pabandykite dar kartą prisijungti prie SSH vietiniame kompiuteryje ir paprašys rakto slaptažodžio, kurį nustatėte b.):

ssh user@server_ip

Jei pasirinksite Atšaukti, bus prašoma patvirtinti vartotojo slaptažodį.

4. Įjunkite be slaptažodžio SSH rakto prisijungimą (atlikite vietiniame kompiuteryje):

Galite pažymėti „Automatiškai atrakinti šį raktą, kai esu prisijungęs“ ir įvesti slaptažodį tik vieną kartą paskutinėje ekrano kopijoje. Tačiau kai kuriose darbalaukio aplinkose šios patogios funkcijos gali nebūti. Taigi „ssh-agent“, OpenSSH autentifikavimo agentas, atlieka darbą už jus.

Pirmiausia paleiskite „ssh-agent“ naudodami apvalkalo komandą:

eval 'ssh-agent'

Tada pridėkite SSH raktą prie agento:

ssh-add linode_ed25519

Po to SSH komanda prisijungs neįvesdama autentifikavimo rakto slaptažodžio.

5. Išjunkite SSH vartotojo slaptažodžio prisijungimą (padarykite serverio pusėje):

Sėkmingai nustatę rakto autentifikavimą, galite išjungti vartotojo slaptažodžio prisijungimą, kad niekas kitas negalėtų pasiekti serverio!

Pirmiausia prisijunkite prie nuotolinio serverio ir paleiskite komandą, norėdami redaguoti ssh demono konfigūracijos failą:

sudo nano /etc/ssh/sshd_config

Tada panaikinkite eilutės „#PasswordAuthentication yes“ komentarą ir nustatykite jos vertę į ne, taigi bus:

Slaptažodžio autentifikavimo Nr.

Tada paspauskite Ctrl+X, įveskite y ir paspauskite Enter, kad išsaugotumėte failą.

Galiausiai iš naujo įkelkite SSH per

sudo systemctl reload ssh

komanduokite ir mėgaukitės!