Tehnologija SSH (Secure Shell) omogoča varno daljinsko upravljanje računalnika prek varne povezave. SSH šifrira vse prenesene datoteke, vključno z gesli, in posreduje tudi kateri koli omrežni protokol. Da bi orodje delovalo pravilno, ga je treba namestiti ne le, ampak tudi konfigurirati. Radi bi govorili o izdelku glavne konfiguracije v tem članku, pri čemer smo vzeli za primer najnovejšo različico operacijskega sistema Ubuntu, na katerem bo lociran strežnik.
Vsebina
Če niste dokončali namestitve na strežniku in odjemalskih osebnih računalnikih, morate to storiti na začetku, saj je celoten postopek dokaj preprost in ne traja veliko časa. Za podrobnejša navodila o tej temi si oglejte naš drugi članek na naslednji povezavi. Prikazan je tudi postopek za urejanje konfiguracijske datoteke in testiranje SSH, tako da bomo danes obravnavali druge naloge.
Več podrobnosti: Namestitev SSH-strežnika v Ubuntu
Novo nameščeni SSH nima podanih ključev za povezavo od strežnika do odjemalca in obratno. Vse te parametre je treba ročno nastaviti takoj po dodajanju vseh komponent protokola. Par ključev deluje z algoritmom RSA (kratica za imena razvijalcev Rivesta, Shamirja in Adlemana). Zahvaljujoč temu kriptosistemu so posebni ključi šifrirani s posebnimi algoritmi. Če želite ustvariti par javnih ključev, morate v konzolo vnesti le ustrezne ukaze in slediti navodilom, ki se prikažejo.
ssh-keygen
in pritisnite tipko Enter . Zdaj je ustvarjen par ključev - tajnih in javnih, ki bodo uporabljeni za nadaljnjo povezavo med računalniki. Samo ključ morate namestiti na strežnik, da bo preverjanje pristnosti SSH uspešno.
Obstajajo tri metode za kopiranje ključev. Vsak od njih bo optimalen v različnih situacijah, kjer na primer ena od metod ne deluje ali ni primerna za določenega uporabnika. Predlagamo, da razmisli vse tri možnosti, začenši z najbolj preprosto in učinkovito.
Možnost 1: ukaz ssh-copy-id
Ukaz ssh-copy-id
je vgrajen v operacijski sistem, zato za njegovo izvajanje ni treba namestiti dodatnih komponent. Za kopiranje ključa sledite preprosti sintaksi. V "Terminalu" morate vnesti ssh-copy-id username@remote_host
, kjer je username @ remote_host ime oddaljenega računalnika.
Ko se prvič povežete, boste prejeli besedilo obvestila:
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Za nadaljevanje povezave morate podati možnost yes . Po tem bo pripomoček samodejno poiskal ključ v obliki datoteke id_rsa.pub
, ki je bila ustvarjena prej. Po uspešnem odkrivanju se prikaže naslednji rezultat:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
Podajte geslo oddaljenega gostitelja, tako da ga lahko program vnese. Orodje bo kopiralo podatke iz datoteke javnega ključa ~ / .ssh / id_rsa.pub , nato pa se bo na zaslonu prikazalo sporočilo:
Number of key(s) added: 1
Zdaj se poskusite prijaviti v napravo z: "ssh '[email protected]'"
preverite.
Videz takega besedila pomeni, da je bil ključ uspešno prenesen na oddaljeni računalnik, in zdaj ne bo težav s povezavo.
2. možnost: Kopirajte javni ključ prek SSH
Če ne morete uporabiti zgoraj omenjenega pripomočka, vendar imate geslo za prijavo v oddaljeni strežnik SSH, lahko ročno naložite uporabniški ključ in tako zagotovite stabilno preverjanje pristnosti pri povezovanju. Uporablja se za ta ukaz cat , ki bere podatke iz datoteke in jih nato pošlje v strežnik. V konzoli morate vnesti vrstico
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
.
Ko se prikaže sporočilo
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
nadaljevanje povezovanja in vnesite geslo za prijavo v strežnik. Po tem bo javni ključ samodejno kopiran na konec konfiguracijske datoteke pooblaščenih ključev.
Možnost 3: ročno kopirajte javni ključ
Če ni dostopa do oddaljenega računalnika prek strežnika SSH, se vsi zgornji koraki izvedejo ročno. Če želite to narediti, se najprej seznanite s ključem na strežniškem računalniku z ukazom cat ~/.ssh/id_rsa.pub
.
Na zaslonu se prikaže naslednja vrstica: ssh-rsa + ключ в виде набора символов== demo@test
. Po tem nadaljujte z delom na oddaljeni napravi, kjer ustvarite nov imenik prek mkdir -p ~/.ssh
. Poleg tega ustvari datoteko author_keys. Nato vstavite ključ, ki ste ga naučili prej, preko echo + строка публичного ключа >> ~/.ssh/authorized_keys
. Po tem lahko poskusite preveriti pristnost s strežnikom brez uporabe gesel.
V prejšnjem razdelku ste izvedeli za tri metode za kopiranje ključa oddaljenega računalnika v strežnik. Takšna dejanja vam omogočajo povezavo brez uporabe gesla. Ta postopek se izvede preko ukazne vrstice tako, da vnesete shh ssh username@remote_host
, kjer je username @ remote_host uporabniško ime in gostitelj želenega računalnika. Ko se prvič povežete, boste obveščeni o neznani povezavi in se lahko nadaljujete z izbiro možnosti da .
Povezava se bo zgodila samodejno, če med ustvarjanjem para ključev geslo ni bilo podano. V nasprotnem primeru ga morate najprej vnesti za nadaljevanje dela s SSH.
Uspešna nastavitev kopiranja ključev se upošteva v primeru, ko lahko vstopite v strežnik brez uporabe gesla. Vendar pa sposobnost za preverjanje pristnosti na ta način omogoča napadalcem uporabo orodij za iskanje gesla in prekinitev varne povezave. Zaščita pred takimi primeri bo omogočila popolno onemogočanje gesla za prijavo v konfiguracijski datoteki SSH. To bo zahtevalo:
sudo gedit /etc/ssh/sshd_config
. sudo systemctl restart ssh
strežnik. Preverjanje pristnosti gesla bo onemogočeno in na strežnik se boste lahko prijavili samo s ključi, ki so posebej izdelani za to z algoritmom RSA.
V Ubuntuju je privzeti požarni zid Uncomplicated Firewall (UFW). Omogoča vam, da dovolite povezave za izbrane storitve. Vsaka aplikacija ustvari svoj profil v tem orodju in UFW jih upravlja tako, da dovoli ali zavrne povezave. Konfiguriranje profila SSH z dodajanjem na seznam je naslednje:
sudo ufw app list
. sudo ufw allow OpenSSH
. sudo ufw enable
. sudo ufw status
, po katerem boste videli stanje omrežja. S tem boste izpolnili naša navodila za konfiguracijo SSH za Ubuntu. Nadaljnjo konfiguracijo konfiguracijske datoteke in drugih parametrov opravi vsak uporabnik osebno po njegovih zahtevah. Lahko se seznanite z delovanjem vseh komponent SSH v uradni dokumentaciji protokola.