Kuigi me oleme selle juhendi kirjutanud Linuxile, võib seda ka Cygwiniga rakendada Mac OS X-i ja Windows 7-ga OpenSSHile.
Miks see on turvaline?
Oleme mitu korda maininud, kuidas SSH on suurepärane võimalus andmete turvaliseks ühendamiseks ja tunnustamiseks ühest punktist teise. Vaatame lühidalt, kuidas asjad toimivad, et saaksite paremini mõista, miks asjad võivad mõnikord mõnikord tunduda.
Kui me mõtleme oma ühendamisprotsessi kui posti, siis FTP ja Telneti kasutamine jms ei ole tavaliste postipakkide kasutamine. See on pigem postkaartide kasutamine. Kui keegi astub sammu keskele, saavad nad näha kogu teavet, sealhulgas mõlema korrespondendi aadressi ja välja saadetud kasutajanime ja parooli. Seejärel saavad nad sõnumi muuta, hoides teavet sama ja kujundada üks korrespondent või teine. Seda nimetatakse rünnaku "mees-in-the-the-middle" jaoks, mis mitte ainult ei ohusta teie kontot, vaid seab kahtluse alla kõik saadetud sõnumid ja saadetud failid. Sa ei saa olla kindel, kas sa räägid saatjaga või mitte, ja isegi kui sa oled, ei saa olla kindel, et keegi ei vaataks kõike, mis on vahepeal.
Vaatame nüüd SSL-i krüpteerimist, mis muudab HTTP-i turvalisemaks. Siin on meil postkontor, mis tegeleb kirjavahetusega, kes kontrollib, kas teie saaja on see, kellele ta väidetavalt kuulub, ja on seadusi, mis kaitsevad teie posti kasutamist. See on üldiselt turvalisem ja keskne asutus - Verisign on üks meie HTTPS-i näitel - tagab, et isik, kellele saadate kirju, kontrollib välja. Nad teevad seda, jätmata postkaarte lubamata (krüpteerimata volikirjad); Selle asemel annavad nad mandaadi tegelikele ümbrikele.
Kui selgitus on nii kaua, siis me arvame, et me lõigame selle seal. Kui teil on veel parem ülevaade, võite muidugi kommenteerida vestlust. Kuid nüüd vaatame SSH kõige olulisemat tunnust, host-autentimist.
Host võtmed
Vastuvõtte autentimine on sisuliselt selline osa, kus keegi, keda te usaldate, võtab ümbriku (suletud magic matemaatika abil) ja kinnitab teie adressaadi aadressi. See on aadressi päris üksikasjalik kirjeldus ja see põhineb mõnel keerulisel matemaatikas, mida me lihtsalt üle vahele jätame. Sellest hoolimata on paar olulist asja ära võtta:
- Kuna puudub keskasutus, on tõeline turvalisus peamise võti, avalikud võtmed ja privaatvõtmed. (Need kaks viimast võtmet on konfigureeritud, kui süsteemile juurdepääsu lubate.)
- Tavaliselt, kui ühendate teise arvutiga SSH-i kaudu, salvestatakse host-võti. See muudab tulevikus toimingud kiiremaks (või vähem verbiseks).
- Kui vastuvõttev võti muutub, kuvatakse teile tõenäoliselt hoiatusi ja peaksite olema ettevaatlik!
Kuna SSH-serveri identiteedi tuvastamiseks kasutatakse serveri võtmenüüd enne autentimist, peate enne ühenduse loomist kindlasti seda võtme kontrollima. Näete allpool kinnitusdialoogi.
Teie süsteemi peamise võtme kontrollimine
Klahvide tegemiseks kasutatakse nelja tüüpi krüpteerimisalgoritme, kuid OpenSSHi vaikimisi selle aasta alguseks on ECDSA (mõningate tõsiste põhjustega). Täna keskendume sellele.Siin saab käsku käivitada SSH serveril, millele teil on juurdepääs:
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l
Teie väljund peaks tagama midagi sellist:
256 ca:62:ea:7c:e4:9e:2e:a6:94:20:11:db:9c:78:c3:4c /etc/ssh/ssh_host_ecdsa_key.pub
Esimene number on võtme biti pikkus, siis on võtme enda ja lõpuks on teil fail, mida see on salvestatud. Võrrelge seda keskmist osa, mida näete, kui teilt küsitakse võrgust sisse logida. See peaks sobima ja sa oled kõik valmis. Kui see ei õnnestu, võib juhtuda midagi muud.
Saate vaadata kõiki hosteid, kellega olete SSH-i kaudu ühendatud, vaadates oma teadaoleva_hosti faili. Tavaliselt asub see aadressil:
~/.ssh/known_hosts
Seda saab avada mis tahes tekstitöötlusprogrammis. Kui vaatate, proovige pöörata tähelepanu sellele, kuidas võtmeid salvestatakse. Neid on salvestatud hostarvuti nimi (või veebiaadress) ja selle IP-aadress.
Võõrutusvõtmete ja probleemide muutmine
Seal on mitu põhjust, miks host-võtmed muutuvad või ei ühti sellega, mis on teie teadaolevas failis logitud.
- Süsteem on uuesti installitud / uuesti konfigureeritud.
- Turvaprotokollide tõttu muutus host võtmeid käsitsi.
- OpenSSHi server värskendati ja turvaküsimuste tõttu kasutab erinevaid standardeid.
- IP- või DNS-liising muutus. See tähendab sageli, et proovite pääseda teisele arvutile.
- Süsteem oli mingil moel ohustatud, nii et võõrustamisvõti muutuks.
Tõenäoliselt on see probleem üks esimesi kolme ja võite muudatust eirata. Kui IP / DNS rentimine on muutunud, võib serveris tekkida probleem ning teid võib suunata teise masina. Kui te pole kindel, mis muudatus põhjustab, peaksite tõenäoliselt eeldama, et see on nimekirja viimane.
Kuidas OpenSSH käsitleb tundmatuid hoste
Sõltuvalt teie konfiguratsioonist võivad SSH-ühendused tundmatute hostidega (kelle võtmed pole juba teie teadaolevas failis) suudavad kolmel viisil.
- StrictHostKeyChecking on seatud no; OpenSSH ühendab automaatselt mis tahes SSH serveriga, sõltumata hosti võtme olekust. See on ebaturvaline ja seda ei soovitata, välja arvatud juhul, kui pärast operatsioonisüsteemi uuesti installimist lisate hulgale hostetele, mille järel muudate selle tagasi.
- StrictHostKeyChecking on seatud küsima; OpenSSH näitab sulle uusi host-võtmeid ja küsib kinnitust enne nende lisamist. See hoiab ära, et ühendused muutuvad host-võtmeks. See on vaikimisi.
- StrictHostKeyChecking on seatud Yes; Vastupidine "ei", see hoiab ära selle, et suudate ühendada mis tahes hostiga, mis pole teie teadaolevas failis juba olemas.
Selle muutuja saab hõlpsasti käsureal muuta, kasutades järgmist paradigmat:
ssh -o 'StrictHostKeyChecking [option]' user@host
Asenda [valikuvõimalus] sõnaga "ei", "küsige" või "jah". Pidage meeles, et selle muutuja ja selle seadistused on ühesugused otsesed jutumärgid. Samuti asendage kasutaja @ host selle serveri kasutajanime ja hosti nimega, millega te ühendate. Näiteks:
ssh -o 'StrictHostKeyChecking ask' [email protected]
Blokeeritud hostid muutunud võtmete tõttu
Kui teil on server, millega püüate pääseda sellele, kui selle võti on juba muudetud, ei võimalda vaikimisi OpenSSHi konfiguratsioon sellele juurde pääseda. Sa võid muuta selle hosti StrictHostKeyChecking väärtust, kuid see ei oleks täielikult, põhjalikult, paranoidiliselt turvaline, kas see oleks? Selle asemel võime me lihtsalt eemaldada rikutud väärtuse meie teadaolevast failist.
Nüüd saadame selle asemel meeldiva vihje, millele me saame lihtsalt vastata "jah".
Uute serveri võtmete loomine
Rekordil pole tegelikult üldse mingit põhjust, miks te võtate võõrustaja võtit üldse, aga kui sa vajad seda ikkagi leida, saate seda teha lihtsalt.
Esiteks muutke sobivat süsteemi kataloogi:
cd /etc/ssh/
See on tavaliselt globaalsete võtmevõtmetega, kuigi mõnel distributsioonil on need paigutatud mujale. Kahtluse korral kontrollige oma dokumentatsiooni!
Seejärel eemaldame kõik vanad võtmed.
sudo rm /etc/ssh/ssh_host_*
Teise võimalusena võite soovida neid teisaldada ohutu varunduskataloogi. Lihtsalt mõte!
Siis võime OpenSSH-serverile teatada ise ümber seadistada:
sudo dpkg-reconfigure openssh-server
Näete viipa, kui teie arvuti loob uusi võtmeid. Ta-da!
Nüüd, kui sa tead, kuidas SSH töötab natuke paremini, peaksite saama end rasketest kohtadest välja tõmmata. Hoiatus / viga "Remote Host Identification Has Changed" on midagi, mis viskab ära palju kasutajaid, isegi neid, kes on käsureadest tuttavad.
Boonuspunktide jaoks saate kontrollida, kuidas faile koopiaid kohe kopeerida SSH-i kaudu, sisestamata parooli. Seal saate õppida veidi muud tüüpi krüpteerimisalgoritmide ja võtmefailide lisamiseks turvalisuse suurendamiseks.