SSH | |
---|---|
Nimi | Secure Shell |
Taso ( OSI-mallin mukaan ) | Sovellettu |
Perhe | TCP/IP |
Portti/ID | 22/ TCP |
Protokollan tarkoitus | Etäyhteys |
Erittely | RFC 4251 |
Tärkeimmät toteutukset (asiakkaat) | OpenSSH , PuTTY / KITTY , SecureCRT , Xshell |
Ydintoteutukset ( palvelimet ) | OpenSSH |
Mediatiedostot Wikimedia Commonsissa |
SSH ( eng. Security Shell - "secure shell" [ 1 ] ) on sovelluskerroksen verkkoprotokolla , jonka avulla voit etäohjata käyttöjärjestelmää ja tunneloida TCP -yhteyksiä (esimerkiksi tiedostojen siirtämiseen). Toiminnaltaan samanlainen kuin Telnet- ja rlogin-protokollat , mutta toisin kuin ne, salaa kaiken liikenteen, mukaan lukien lähetetyt salasanat . SSH mahdollistaa erilaisten salausalgoritmien valinnan. SSH - asiakkaat ja SSH - palvelimet ovat saatavilla useimpiin verkkokäyttöjärjestelmiin.
SSH mahdollistaa lähes minkä tahansa muun verkkoprotokollan turvallisen siirtämisen turvattomassa ympäristössä . Siten et voi vain työskennellä tietokoneella etätyöskentelyä komentotulkin kautta , vaan myös lähettää äänivirtaa tai videota salatun kanavan kautta (esimerkiksi verkkokamerasta ) [2] . SSH voi myös käyttää lähetettyjen tietojen pakkausta myöhempään salaukseen, mikä on kätevää esimerkiksi X Window System -asiakkaiden etäkäynnistykseen .
Useimmat isännöintipalveluntarjoajat tarjoavat asiakkaille SSH -pääsyn kotihakemistoonsa maksua vastaan. Tämä voi olla kätevää sekä komentorivillä että ohjelmien (mukaan lukien graafisten sovellusten) etäkäynnistykseen.
SSH on sovelluskerroksen protokolla. SSH-palvelin kuuntelee tyypillisesti yhteyksiä TCP-portissa 22. SSH-2-protokollaspesifikaatio on RFC 4251 :ssä . Palvelimen todentamiseen SSH käyttää RSA- tai DSA - digitaalisiin allekirjoitusalgoritmeihin perustuvaa osapuolen todennusprotokollaa , mutta myös salasanatodennus (taaksepäin yhteensopiva tila Telnetin kanssa ) ja jopa isännän IP-osoite (taaksepäin yhteensopiva tila rloginin kanssa ) ovat myös sallittuja.
Diffie-Hellman (DH) -algoritmia käytetään luomaan jaettu salaisuus (istuntoavain ). Lähetettävät tiedot salataan symmetrisellä salauksella , AES- , Blowfish- tai 3DES-algoritmeilla . Tiedonsiirron eheys tarkistetaan CRC32 :lla SSH1:ssä tai HMAC - SHA1 / HMAC - MD5 :llä SSH2:ssa.
Salattujen tietojen pakkaamiseen voidaan käyttää LempelZiv (LZ77 ) -algoritmia, joka tarjoaa saman pakkaustason kuin ZIP -arkistointiohjelma . SSH-pakkaus otetaan käyttöön vain asiakkaan pyynnöstä, ja sitä käytetään harvoin käytännössä.
Versio 1.x
Vuonna 1995 Teknillisen korkeakoulun tutkija Tatu Ylönen kehitti protokollan ensimmäisen version (nykyinen SSH-1), jonka laukaisi salasanan kaivoshyökkäys yliopiston verkkoon. SSH:n tavoitteena oli korvata aiemmat protokollat rlogin, TELNET, FTP [16] ja rsh, jotka eivät tarjonneet vahvaa todennusta ja yksityisyyttä. Ylönen julkaisi toteutuksensa ilmaisena ohjelmistona heinäkuussa 1995, ja työkalu saavutti nopeasti suosion. Vuoden 1995 loppuun mennessä SSH:n käyttäjäkunta oli kasvanut 20 000 käyttäjään viidessäkymmenessä maassa.
Joulukuussa 1995 Ylönen perusti SSH Communications Securityn edistämään ja kehittämään SSH:ta. SSH-ohjelmiston alkuperäinen versio käytti useita ilmaisia ohjelmistoja, kuten GNU libgmp, mutta myöhemmät SSH Communications Securityn julkaisemat versiot ovat kehittyneet yhä enemmän omaisiksi ohjelmistoiksi.
Vuoteen 2000 mennessä käyttäjien määrän arvioitiin nousseen 2 miljoonaan.
Versio 2.x
"Secsh" oli Internet Engineering Task Forcen (IETF) virallinen nimi SSH-protokollan versiosta 2 vastaavalle IETF-työryhmälle. Vuonna 2006 päivitetty versio SSH-2-protokollasta otettiin käyttöön standardina. Tämä versio ei ole yhteensopiva SSH-1:n kanssa. SSH-2 sisältää sekä suojauksen että parannettuja ominaisuuksia SSH-1:een verrattuna. Parempi tietoturva saavutetaan esimerkiksi Diffie-Hellman-avaintenvaihdolla ja vahvalla eheyden tarkistuksella viestien todennuskoodeilla. Uusiin SSH-2-ominaisuuksiin kuuluu mahdollisuus käynnistää mikä tahansa määrä shell-istuntoja yhden SSH-yhteyden kautta. SSH-2:n paremmuuden ja suosion vuoksi SSH-1:een verrattuna jotkin toteutukset, kuten libssh (v0.8.0+), Lsh ja Dropbear, tukevat vain SSH-2-protokollaa.
Versio 1.99
Tammikuussa 2006, paljon version 2.1 luomisen jälkeen, RFC 4253 määritti, että SSH-palvelimen, joka tukee sekä 2.0:aa että aiempia SSH-versioita, tulee tunnistaa prototyyppiversionsa versioksi 1.99. Tämä ei ole ajan tasalla oleva versio, vaan menetelmä taaksepäin yhteensopivuuden määrittämiseksi.
OpenSSH ja OSSH
Vuonna 1999 kehittäjät, jotka halusivat ilmaisen version ohjelmistosta, palasivat alkuperäisen SSH-ohjelman vanhaan versioon 1.2.12, joka julkaistiin viimeksi avoimen lähdekoodin lisenssillä. Bjorn Grönwallin OSSH kehitettiin myöhemmin tästä koodikannasta. Pian tämän jälkeen OpenBSD -kehittäjät jakoivat Grönlannin koodin ja tekivät paljon työtä sen parissa luoden OpenSSH :n, joka toimitettiin OpenBSD:n 2.6-version mukana. Tästä versiosta alkaen muodostettiin "siirrettävyys"-haara, joka portti OpenSSH:n muihin käyttöjärjestelmiin.
Vuodesta 2005 lähtien OpenSSH oli SSH:n suosituin toteutus, joka sisältyy oletuksena useisiin käyttöjärjestelmiin. OSSH on tällä välin vanhentunut. OpenSSH:n tuki jatkuu ja tukee SSH-2-protokollaa. SSH-1:n tuki poistetaan koodikannasta OpenSSH 7.6:n julkaisun myötä. .
Protokollan ensimmäisen version, SSH-1, kehitti vuonna 1995 tutkija Tatu Ulönen Teknillisestä korkeakoulusta ( Suomi ) . SSH-1 on kirjoitettu yksityisemmäksi kuin rlogin-, telnet- ja rsh-protokollat. Vuonna 1996 protokollasta kehitettiin turvallisempi versio SSH-2, joka ei ole yhteensopiva SSH-1:n kanssa. Protokolla saavutti entisestään suosiota, ja vuoteen 2000 mennessä sillä oli noin kaksi miljoonaa käyttäjää. Tällä hetkellä termi "SSH" viittaa yleensä SSH-2:een, koska protokollan ensimmäistä versiota ei käytännössä käytetä merkittävien puutteiden vuoksi.
Vuonna 2006 protokolla hyväksyttiin IETF -työryhmässä Internet-standardiksi.
Kaksi SSH-toteutusta ovat yleisiä: yksityinen kaupallinen ja ilmainen. Ilmainen toteutus on nimeltään OpenSSH. Vuoteen 2006 mennessä 80 % Internetin tietokoneista käytti OpenSSH:ta. SSH Communications Security, Tectian [3] kokonaan omistama tytäryhtiö, kehittää yksityistä toteutusta , joka on ilmainen ei-kaupalliseen käyttöön. Nämä toteutukset sisältävät lähes saman joukon komentoja.
SSH-1-protokolla, toisin kuin telnet -protokolla , kestää liikenteen haistavia hyökkäyksiä (" sniffing "), mutta ei kestä man-in-the-middle- hyökkäyksiä . SSH-2-protokolla on myös kestänyt keskeltä liittymisen aiheuttamia hyökkäyksiä ( englanniksi session kaappaus ), koska jo muodostettuun istuntoon ei voi liittyä tai sitä siepata.
Man-in-the-middle -hyökkäysten estämiseksi asiakasohjelmisto näyttää käyttäjälle avaimen sormenjäljen muodostaessaan yhteyden isäntään , jonka avainta asiakas ei vielä tiedä . On suositeltavaa verrata huolellisesti asiakasohjelmiston näyttämää "avainsarjaa" palvelimen avaimiin, jotka on saatu mieluiten luotettavia viestintäkanavia pitkin tai henkilökohtaisesti.
SSH-tuki on saatavilla kaikissa UNIX - tyyppisissä järjestelmissä, ja useimmissa niistä on ssh-asiakas ja -palvelin vakioapuohjelmina . SSH-asiakkaita on monia toteutuksia myös muille kuin UNIX-käyttöjärjestelmille. Protokolla saavutti suuren suosion liikenneanalysaattoreiden ja paikallisten verkkojen toiminnan häiritsemismenetelmien laajan kehittämisen jälkeen vaihtoehtona turvattomalle Telnet -protokollalle tärkeiden solmujen hallintaan.
SSH vaatii SSH-palvelimen ja SSH-asiakkaan. Palvelin kuuntelee yhteyksiä asiakaskoneista ja, kun yhteys on muodostettu, suorittaa todennuksen , jonka jälkeen se alkaa palvella asiakasta. Asiakasta käytetään kirjautumaan etäkoneeseen ja suorittamaan komentoja.
Yhdistääkseen palvelimen ja asiakkaan on luotava avaimia – julkisia ja yksityisiä – ja vaihdettava julkisia avaimia. Yleensä käytetään myös salasanaa.
Komento muodostaa yhteys paikalliseen SSH-palvelimeen GNU/Linux- tai FreeBSD-komentoriviltä pacify-käyttäjälle (palvelin kuuntelee ei-standardista porttia 30000):
$ ssh -p 30000 [email protected]Avainparien luominen (UNIX-tyyppisessä käyttöjärjestelmässä) suoritetaan komennolla
$ ssh-keygen4096 bitin pituisten SSH-2 RSA-avainparien luominen puttygenillä UNIX-tyyppisessä käyttöjärjestelmässä:
$ puttygen -t rsa -b 4096 -o näyteJoillakin asiakkailla, kuten PuTTY:llä, on myös graafinen käyttöliittymä .
SSH:n käyttämiseen Pythonissa on moduuleja, kuten python-paramiko ja python-twisted-conch.
SSH-tunneli on SSH-yhteyden kautta luotu tunneli, jota käytetään tunneloidun tiedon salaamiseen. Käytetään tiedonsiirron suojaamiseen Internetissä ( IPsecillä on samanlainen tarkoitus ). Kun välitetään SSH-tunnelin kautta, minkä tahansa protokollan salaamaton liikenne salataan SSH-yhteyden toisessa päässä ja puretaan toisessa.
Käytännön toteutus voidaan tehdä useilla tavoilla:
Tässä tapauksessa Jabber-asiakas on määritetty muodostamaan yhteys localhost-palvelimen porttiin 4430 (jos ssh-asiakas on käynnissä samassa koneessa kuin Jabber-asiakas).
Ssh-tunnelin luomiseen tarvitaan kone, jossa on käynnissä ssh-palvelin ja pääsy osoitteeseen jabber.example.com. Tätä kokoonpanoa voidaan käyttää, jos palomuuri estää pääsyn osoitteeseen jabber.example.com paikalliselta koneelta, mutta siellä on pääsy johonkin ssh-palvelimeen, jolla ei ole Internet-käyttörajoituksia.
TCP /IP-perusprotokollat OSI -mallin kerroksittain | |
---|---|
Fyysinen | |
kanavoitu | |
verkkoon | |
Kuljetus | |
istunto | |
Edustus | |
Sovellettu | |
Muuta sovellettu | |
Luettelo TCP- ja UDP-porteista |
URI- järjestelmät | |
---|---|
Virallinen | |
epävirallinen |