SSH - Järjestelmänvalvojan muistikirja. Yhdistäminen VPS:ään Windows-käyttöjärjestelmää käyttävästä tietokoneesta. Etäkomennon suoritus

) - kommentit erillisessä postauksessa.

Etäyhteys Linux-työpöydälle Windowsista Xmingin ja SSH:n avulla

Pe, 21/03/2008 - 15:46 - admin

Joskus sinun on käytettävä sitä, mitä sinulle on annettu. Tietokoneeni, jolla se sijaitsee Debian Linux, oli kiireinen vaimoni kanssa (älä opeta vaimojasi käyttämään Linuxia). Mutta siskoni tietokone, johon oli asennettu Windows, oli ilmainen. Ja nyt on halu muodostaa yhteys tietokoneeseesi työasema käyttää vihamielistä käyttöjärjestelmää. Ensimmäinen asia, joka tuli mieleen, oli etätyöpöytä. Tyylikkäämpi ratkaisu kuitenkin löytyi. Ja artikkelin otsikosta huolimatta puhumme hieman erilaisesta tekniikasta. Katso tämä valokuva:

Näet Linux-sovellukset suoraan työpöydälläsi Windowsin työpöytä! Miten he pääsivät sinne?

Hieman teoriasta. Toisin kuin Windows, Linux-grafiikka Shell ei ole osa järjestelmän ydintä. Linuxin vakioikkunajärjestelmä on X Window System tai yksinkertaisesti sanottuna X:t. Se huolehtii graafisten elementtien renderöimisestä ja vuorovaikutuksesta syöttö-/tulostuslaitteiden kanssa. Ja mikä parasta, tällä järjestelmällä on läpinäkyvä asiakas-palvelin-arkkitehtuuri. Ikkunajärjestelmä toimii palvelimena ja graafiset sovellukset asiakkaina. Asiakkaiden tulee muodostaa yhteyden palvelimeen ja olla vuorovaikutuksessa sen kanssa hiiren ja näppäimistön tapahtumien hahmontamiseksi ja vastaanottamiseksi.

Mutta ei siinä vielä kaikki! Tosiasia on, että ikkunajärjestelmä voi olla toisessa tietokoneessa ja graafinen sovellus ottaa häneen yhteyttä verkon kautta. Tällä tavalla voit ajaa sovelluksen etätietokoneessa ja pakottaa sen piirtämään tietokoneella, jolla parhaillaan työskentelet. Tai päinvastoin. Tai suorita ohjelma yhdessä etätietokoneessa ja piirrä käyttöliittymä toiseen etätietokoneeseen. Houkutteleva tilaisuus, eikö? 🙂

Luulen, että teoriaa riittää, mennään käytäntöön.

Ensin valmistellaan etätietokone Debian Linux. Tarvitsemme vain SSH-palvelimen. Sen kautta muodostamme etäyhteyden ja käynnistämme tarvitsemamme ohjelmat. Suoritamme vain yhden komennon konsolissa:

$ sudo apt-get install openssh-server

Siinä kaikki, olemme lopettaneet tämän tietokoneen, emmekä enää kosketa sen näppäimistöä tämän artikkelin aikana. Nyt voimme siirtyä Windows-tietokoneen valmisteluun. Täällä sinun on asennettava kaksi ohjelmaa:

1. SSH-asiakas. Asensin PuTTY:n.
2. X Server for Windows. Valitsin Xmingin.

Molemmat ohjelmat voidaan ladata verkkosivustolta (Xming- ja Xming-portable-PuTTY-paketit). Voit myös ladata, jos haluat standardi setti fontit (Xming-fonts-paketti). Kaikki ladattu on asennettu (ja täysi asennus kaikki Xming-komponentit) ja siirry konfigurointiin. Nyt pääasia ei ole hämmentyä siitä, mihin liitämme mihinkin :)

Muodostetaan ensin SSH-yhteys etätietokoneeseen. Tee tämä käynnistämällä PuTTY. Anna Linux-tietokoneen IP-osoite.



Siirry nyt Connection / SSH / X11 -osioon ja ota GUI-uudelleenohjaus käyttöön. X-palvelimen sijainniksi kirjoitamme tällä hetkellä käyttämämme Windows-tietokoneen IP-osoitteen.



Lisäksi, jotta krokotiili ei näy venäläisten kirjainten sijasta, on suositeltavaa asettaa oikea koodaus Ikkuna / käännös -osiossa (minulla on UTF8 - vakiokoodaus Debianissa ja Ubuntussa). Palaa Istunto-osioon, tallenna asetukset ja muodosta yhteys Linux-tietokone. Jos yhteys onnistuu, annamme käyttäjätunnuksen ja salasanan ja näemme tekstikonsolin. Sen avulla voimme käynnistää konsoliohjelmia etänä, mutta grafiikkaohjelmat ei voi piirtää konsoliin. Siksi jätämme yhteyden SSH:n kautta hetkeksi.

Määritetään nyt Xming. Voit tehdä tämän käynnistämällä XLaunch-ohjelman - tämä on ohjattu asetustoiminto. Ensimmäisessä vaiheessa osoitamme graafiin integrointimenetelmän Windows-ympäristö. Pidän eniten ensimmäisestä, kun jokaisesta Linux-sovellus on omassa ikkunassaan.



Toisessa vaiheessa meitä pyydetään käynnistämään automaattisesti jokin sovellus X:n kanssa. Päätin tehdä tämän myöhemmin tarvittaessa PuTTY:n kautta, joka meillä oli jo käynnissä.



Kolmannessa vaiheessa määritämme Xming-käynnistysparametrit. Leikepöytä-vaihtoehdon avulla voit integroida leikepöydän. Myös varten täysipainoista työtä Annoin seuraavat parametrit:
"-dpi 96" - säädä kirjasinkokoa. Arvoa voi säätää maun mukaan.
"-xkblayout us,ru" - kahden näppäimistöasettelun kanssa työskentelemiseen.
"-xkbvariant basic,winkeys" — asettelujen selvennys.
"-xkboptions grp:caps_toggle" - asettelun vaihtaminen CAPS-näppäin LUKKO.



Ja lopuksi päälle seuraava askel Tallenna asetukset "Save configuration" -painikkeella ja käynnistä X-palvelin "Finish"-painikkeella.



Xming-kuvake ilmestyy ilmaisinalueelle


Jatkossa voit käynnistää palvelimen samoilla asetuksilla yksinkertaisesti avaamalla tallennetun tiedoston. Voit muuttaa asetuksia valitsemalla kontekstivalikko tiedosto.


Joten X-palvelin on käynnissä. Palaamme SSH-yhteyden tarjoamaan konsoliimme. Täällä voimme etäkäynnistää konsolisovelluksen, ja samassa konsolissa näemme tämän sovelluksen tulosteen. Mitä tapahtuu nyt, jos yritämme ajaa graafista sovellusta tässä konsolissa? Yleensä, jos muodostat yhteyden SSH:n kautta ja yrität käynnistää ikkunallisen sovelluksen, saat virheilmoituksen, koska olet muodostanut yhteyden etätietokoneeseen konsolitilassa, eikä ikkunoita ole yksinkertaisesti piirrettävä. Tällä kertaa otimme kuitenkin käyttöön grafiikan uudelleenohjauksen Windows-tietokoneellemme, jolla on jo oma X-palvelin käynnissä. Joten jos yrität ajaa ikkunallista sovellusta etäkonsolipäätteessä, sen ikkuna piirretään päälle Windows-tietokone. Kokeile esimerkiksi kirjoittaa seuraava komento:

$kwrite&
tai
$gedit&

Komennon lopussa oleva et-merkki ilmaisee, että ohjelma tulee suorittaa osoitteessa tausta niin, että konsoli on käytettävissä muihin toimiin sen ollessa käynnissä.

Toivon, että kaikki sujui ja sinulla on Linux-ikkunasovelluksia Windows-työpöydälläsi.

Muuten, kiitos tästä asiakas-palvelin arkkitehtuuri Hyökkääjä voi lähettää näytöllesi ikkunan, jossa sinua pyydetään antamaan salasanasi tai jokin muu ilkeä asia. Älä muodosta yhteyttä verkkoon, jotta tämä ei tapahdu julkisissa verkoissa ilman palomuuria. Ja muista: suuriin mahdollisuuksiin liittyy suuri vastuu.

Tämä sivu tarvitsee ylläpitäjän

Artikkeli ei takaa tietojen asianmukaisuutta. Auta venäjänkielistä yhteisöä tukemalla tällaisia ​​sivuja. Katso ArchWikin käännöstiimi

Secure Shell (SSH) on verkkoprotokolla, jonka avulla kaksi tietokonetta voivat vaihtaa tietoja suojattu kanava. Salaus varmistaa tietojen luottamuksellisuuden ja eheyden. SSH käyttää julkisen avaimen salausta etätietokoneen todentamiseen ja tarjoaa sille tarvittaessa käyttäjätodennuksen.

SSH:ta käytetään tyypillisesti yhteyden muodostamiseen (sisäänkirjautumiseen) etäkoneeseen ja komentojen suorittamiseen, mutta se tukee myös tunnelointia, TCP-portin edelleenohjausta ja X11-istunnon edelleenlähetystä; Tiedostonsiirto voidaan suorittaa käyttämällä SFTP- tai SCP-protokollia.

Oletuksena SSH-palvelin "kuuntelee" standardi portti TCP-numero 22. SSH-asiakasohjelmaa käytetään tyypillisesti yhteyden muodostamiseen demonin kanssa sshd, joka hyväksyy etäyhteydet. Sekä palvelin että asiakas ovat tyypillisesti läsnä nykyaikaisissa käyttöjärjestelmissä, mukaan lukien Mac OS X, GNU/Linux, Solaris ja OpenVMS. On omistettuja, ilmaisohjelmia ja avoin lähdekoodi(avoin lähdekoodi) eri monimutkaisia ​​ja täydellisiä versioita.

OpenSSH

OpenSSH (OpenBSD Secure Shell) on joukko tietokoneohjelmat, mikä mahdollistaa salattujen istuntojen muodostamisen kautta tietokoneverkko käyttämällä ssh-protokollaa. Se luotiin ilmaiseksi (avoimen lähdekoodin) vaihtoehdoksi omalle tuotteelle ohjelmisto, tarjoaa SSH Communications Security. OpenSSH:ta kehitetään osana Theo de Raadtin johtamaa OpenBSD-projektia.

OpenSSH sekoitetaan joskus samalta kuulostavaan OpenSSL:ään, mutta nämä projektit erilaisia ​​tavoitteita, ja niitä ovat kehittäneet eri tiimit. Nimien samankaltaisuus johtuu sanan "Open" käytöstä, joka tarkoittaa sitoutumista samoihin ideoihin.

OpenSSH:n asennus

SSH:n asetukset

Asiakas

SSH-asiakkaan asetustiedosto on /etc/ssh/ssh_config tai ~/.ssh/config.

Daemon

SSH-demonin määritystiedosto löytyy ja sitä voidaan muokata hakemistosta /etc/ssh/ssh d _config.

Jos haluat myöntää käyttöoikeuden vain joillekin käyttäjille, lisää tämä rivi:

AllowUsers user1 user2

Käyttöoikeuden myöntäminen vain tietyille käyttäjäryhmille:

SalliRyhmät ryhmä1 ryhmä2

Jos haluat poistaa SSH-kirjautumisen root-käyttäjänä käytöstä, muuta PermitRootLogin-riviä:

PermitRootLogin no

Lisää mukava tervetuloviesti muokkaamalla /etc/issue-tiedostoa ja muuttamalla Banner-riviä:

Banneri /etc/issue

sshd-daemonin hallinta

SSH-daemonilla on erilaisia ​​tiedostoja järjestelmäyksiköt.

Voit käynnistää demonin välitöntä käyttöä varten ja/tai sisällyttää sen käynnistykseen järjestelmän käynnistyksen yhteydessä, kuten on kuvattu kohdassa Systemd (venäjä)#Using units:

# systemctl käynnistä sshd.service # systemctl ota sshd.service käyttöön

Vaihtoehtoisesti SSH-daemon tukee socket-aktivointia. Tämä tarkoittaa, että systemd kuuntelee SSH-liitäntää ja käynnistää sen vasta, kun ensimmäinen vastaanotetaan saapuva yhteys:

# systemctl käynnistä sshd.socket # systemctl ota sshd.socket käyttöön

Jos käytät muuta kuin oletusporttia (22), sinun on asetettava "ListenStream" yksikkötiedostoon. Kopioi /lib/systemd/system/sshd.socket kansioon /etc/systemd/system/sshd.socket, jotta sitä ei korvata päivitysten aikana. Muuta /etc/systemd/system/sshd.socket-tiedoston "ListenStream"-rivi haluttuun porttiin.

Tärkeä: Sshd.socketin käyttö kumoaa ListenAddress-asetuksen, joten oletusarvoinen sshd.socket hyväksyy yhteydet mistä tahansa osoitteesta. Saadaksesi ListenAddress-asetuksen vaikutuksen, sinun on luotava yksikkötiedosto ja muokattava ListenStream-riviä (esimerkiksi ListenStream=192.168.1.100:22 vastaa ListenAddressia 192.168.1.100). Sinun on myös lisättävä osioon FreeBind=true, muuten IP-osoitteen asettamisella on sama vaikutus kuin ListenAddressin asettamisella: socket ei käynnisty, jos verkko ei tule ajoissa

Neuvoja: Socket-aktivointia käytettäessä sshd.socket tai tavallinen sshd.service ei salli yhteyttä seurata lokissa, mutta kutsuttaessa # journalctl /usr/bin/sshd on tällainen mahdollisuus

Yhdistetään palvelimeen

Voit muodostaa yhteyden palvelimeen seuraavasti:

$ ssh -p portti käyttäjä@palvelimen_osoite

SSH-suojaus

Etäkirjautuminen SSH:n kautta on hyvä hallinnollisiin tehtäviin, mutta voi vaarantaa palvelimesi turvallisuuden. Usein raa'an voiman hyökkäysten kohteena oleva SSH-yhteys on rajoitettava asianmukaisesti suojatakseen sitä kolmansilta osapuolilta.

  • Käytä poikkeavia tilinimiä ja salasanoja
  • Salli saapuvat SSH-yhteydet vain luotetuista koneista
  • Käytä fail2bania tai sshguardia tällaisten hyökkäysten hallitsemiseen ja estä pääsy niitä suorittavilta IP-osoitteilta

Suojaus raakoja hyökkäyksiä vastaan

"Raaka pakottaminen" on melko yksinkertainen käsite: joku yrittää toistuvasti kirjautua sisään verkkosivulle tai komentorivi palvelimelle kokeilemalla useita käyttäjätunnusten ja salasanojen yhdistelmiä. Voit suojautua tällaisilta hyökkäyksiltä käyttämällä automaattinen kirjoitus, estää ne. Esimerkiksi fail2ban tai sshguard.

Voit myös tehdä tällaiset hyökkäykset mahdottomaksi poistamalla salasanan kirjautumisen käytöstä. Voit tehdä tämän lisäämällä seuraava asetus sshd_config-tiedostoon:

Salasanatodennus nro

Ennen kuin lisäät tämän asetuksen, varmista, että kaikki tilit, jotka edellyttävät SSH-käyttöä julkisen avaimen todennusta käyttämällä, on määritetty asianmukaisissa authorised_keys-tiedostoissa.

Pääkäyttäjänä kirjautumisen rajoittaminen

Mahdollisuus kirjautua sisään SSH:n kautta pääkäyttäjänä ilman suojausta pidetään huonona käytäntönä. On kaksi tapaa rajoittaa tätä ominaisuutta turvallisuuden lisäämiseksi.

Sammuttaa

Sudo myöntää valikoivasti pääkäyttäjän oikeudet niitä vaativiin toimiin ilman vastaavaa kirjautumista juuritilille. Tämän ansiosta voit lukita root-tilin estääksesi mahdollisuuden kirjautua siihen SSH:n kautta. Tämä on mahdollisesti keino suojautua raakoja hyökkäyksiä vastaan, koska tässä tapauksessa hyökkääjän on myös valittava nimi tili salasanan lisäksi.

Jos haluat poistaa pääkäyttäjän kirjautumisen SSH:n kautta käytöstä, hanki pääkäyttäjän oikeudet ja muokkaa /etc/ssh/sshd_config-tiedoston "Todennus"-osiota. Vaihda vain #PermitRootLogin kyllä ​​arvoksi ei ja poista rivin kommentit:

/etc/ssh/sshd_config PermitRootLogin ei ...

Käynnistä SSH-daemon uudelleen:

# systemctl käynnistä sshd uudelleen

Et voi enää kirjautua sisään SSH:n kautta root-käyttäjänä, mutta voit silti kirjautua sisään käyttäjänä tavallinen käyttäjä ja käytä komentoja ja sudoa hallintaan.

Rajoitus

Jonkin verran automaattiset tehtävät, kuten etäluominen varmuuskopioida järjestelmät vaativat täysi pääkäyttäjän oikeudet. Saada haltuunsa turvallinen tilaisuus käyttääksesi sitä, voit määrittää tiettyjä komentoja sen poistamisen sijaan. Voit tehdä tämän muokkaamalla ~root/.ssh/authorized_keys-tiedostoa luomalla etuliitteet sopiville avaimille, esimerkiksi:

Komento="/usr/lib/rsync/rrsync -ro /" ssh-rsa…

Tämän ansiosta, kun kirjaudut sisään sopivalla avaimella, voit hankkia pääkäyttäjän oikeudet vain niiden komentojen suorittamiseen, jotka on kuvattu lainausmerkkien välissä.

On kuitenkin edelleen mahdollista kirjautua sisään käyttämällä superkäyttäjänimeä. Tämä voidaan korjata lisäämällä seuraava rivi sshd_config-tiedostoon:

PermitRootLogin vain pakotetut komennot

Tämä asetus ei ainoastaan ​​rajoita komentojen luetteloa, jotka voidaan suorittaa pääkäyttäjänä SSH:n kautta, vaan myös estää salasanojen käytön jättäen mahdollisuuden kirjautua root-tilille vain käyttämällä julkisen avaimen todennusta.

On olemassa vähemmän rajoittava vaihtoehto, jonka avulla voit suorittaa mitä tahansa komentoja pääkäyttäjänä, mutta tekee mahdottomaksi raa'an voiman hyökkäykset poistamalla salasanan kirjautumiset käytöstä. Voit tehdä tämän kirjoittamalla:

PermitRootLogin ilman salasanaa

Muut SSH-asiakkaat ja -palvelimet

OpenSSH:n lisäksi on suuri määrä SSH-asiakkaat ja -palvelimet.

Dropbear

Komentoriviasiakasta kutsutaan dbclient.

SSH-vaihtoehto: Mobile Shell

Etäpäätesovellus, joka mahdollistaa verkkovierailun, tukee ajoittaisia ​​yhteyksiä ja tarjoaa älykkään paikallisen kaiun ja linjamuokkauksen käyttäjän näppäinpainalluksiin. Mosh korvaa SSH:n. Se on kestävämpi ja reagoivampi erityisesti Wi-Fi-, matkapuhelin- ja kaukoyhteyksien kautta.

Salattu SOCKS-tunneli

Tämä vaihtoehto on erittäin hyödyllinen käyttäjille kannettavat tietokoneet(kannettava tietokone) muodostaa yhteyden useisiin epävarmoihin langattomat nettiyhteydet. Ainoa asia, jota tarvitset, on SSH-palvelin, joka on käynnissä joissakin turvallinen paikka esimerkiksi kotona tai töissä. Voi olla hyödyllistä käyttöä Dynaaminen DNS-palvelu, kuten DynDNS, joten sinun ei tarvitse tietää IP-osoitettasi.

Vaihe 1: Yhteyden muodostaminen

Sinun tarvitsee vain tehdä tämä yhteyden muodostamiseksi yksinkertainen komento:

$ssh -TND 4711 käyttäjä@isäntä

Missä käyttäjä- käyttäjänimesi koneella toimivalla SSH-palvelimella isäntä. Sinua pyydetään syöttämään salasana, jonka jälkeen yhteys muodostetaan! Lippu N poistaa käytöstä interaktiivisen komentorivikehotteen ja D-merkki ilmaisee paikallinen satama kuunnella (voit valita minkä tahansa portin numeron, jos haluat). T-lippu poistaa pseudo-tty-allokoinnin käytöstä.

On myös hyvä idea käyttää monisanaista (-v) -lippua.

Vaihe 2: Selaimen (tai muiden ohjelmien) määrittäminen

Tämä vaihtoehto on täysin hyödytön, ellet määritä verkkoselaimesi (tai muita ohjelmia) käyttämään juuri luotua sukkatunnelia. Nykyinen versio SSH tukee sekä SOCKS4:ää että SOCKS5:tä, ja voit käyttää kumpaa tahansa niistä.

  • Firefox: Muokkaa > Asetukset > Lisäasetukset > Verkko > Yhteys > Asetukset:
    Valitse esine Manuaalinen asetus välityspalvelin ja kirjoita kenttään localhost SOCKS isäntä, kirjoita sitten porttinumerosi seuraavaan tekstikenttään (yllä olevassa esimerkissä se on 4711)

Firefox ei lähetä automaattinen pyyntö DNS sukkatunnelin kautta. Tätä mahdollista tietoturvaongelmaa voidaan "lieventää" seuraavasti:

  1. Siirry kohtaan about:config kirjoittamalla se sisään osoitekenttä Firefox
  2. Etsi parametri network.proxy.socks_remote_dns
  3. Aseta sen arvoksi tosi
  4. Käynnistä selain uudelleen
  • Chromium: Voit määrittää SOCKS-asetukset ympäristömuuttujien tai komentorivin asetusten avulla. Suosittelen lisäämään .bashrc-tiedostoon jonkin seuraavista funktioista:
toiminto secure_chromium ( port=4711 export SOCKS_SERVER=localhost:$port export SOCKS_VERSION=5 chromium & exit )

Funktio secure_chromium ( port=4711 chromium --proxy-server="socks://localhost:$port" & exit )

Avaa nyt pääte ja tee:

$secure_chromium

Nauti turvallisesta tunnelistasi!

X11 edelleenlähetys

X11-edelleenlähetys on mekanismi, joka mahdollistaa graafiset käyttöliittymät etäpalvelinkoneessa käynnissä olevat ohjelmat näkyvät paikallisessa asiakaskoneessa. Tässä tapauksessa koko X11-järjestelmää ei tarvitse asentaa etäsolmuun, mutta sinun on asennettava vähintään xauth. xauth on apuohjelma, joka ylläpitää Xauthority-kokoonpanoja, joita palvelin ja asiakas käyttävät X11()-istunnon todentamiseen.

asetukset

Etäjärjestelmässä:

Ota asiakaskoneessa käyttöön ForwardX11-vaihtoehto tai lisää -X-lippu komentoriville kohtaan tarvittavat liitännät, tai asettamalla ForwardX11-asetukseksi Joo.

Neuvoja: Jos graafinen käyttöliittymä näyttää huonosti tai saat virheitä, voit ottaa käyttöön ForwardX11Trusted-vaihtoehdon (komentorivillä -Y-lippu). Tämä estää X11-suojauslaajennuksen ohjaamasta X11-edelleenlähetystä. Jos käytät tätä vaihtoehtoa, muista lukea tämän osan alku

Käyttö

Ole varovainen joidenkin sovellusten kanssa, koska ne voivat tarkistaa paikalliselta koneelta, onko jokin sovellus jo käynnissä. Yksi esimerkki on Firefox: joko sulje Firefox sen ollessa käynnissä tai käytä seuraavaa käynnistysvaihtoehtoa:

$ firefox -ei-kaukosäädintä

Jos saat yhteyden muodostamisen yhteydessä virheilmoituksen "X11-lähetyspyyntö epäonnistui kanavalla 0" (ja palvelimen lokitiedosto /var/log/errors.log sisältää rivin "Internet-verkkotunnuksen X11-näyttöpistokkeen allokointi epäonnistui"), varmista, että paketti xorg-xauth asennettu. Jos asennus ei auta, kokeile jompaakumpaa seuraavista:

  • Ota AddressFamily käyttöön mikä tahansa vaihtoehto ssh:ssa d _config päällä palvelin
  • Määritä AddressFamily-asetukset ssh:ssa d _config päällä palvelin inet arvo

Inetin asettaminen voi korjata ongelmat Ubuntu asiakkaat käytettäessä IPv4:ää.

Jos haluat käyttää X-sovelluksia muiden käyttäjien tavoin SSH-palvelimella, sinun on xauth-lisättävä sisäänkirjautuneen käyttäjän xauth-luettelosta otettu todennusmerkkijono.

Edelleenlähetys muihin portteihin

Natiivin SSH X11 -tuen lisäksi on myös mahdollista perustaa suojattu tunneli mille tahansa TCP-yhteydet käyttämällä paikallista tai etälähetystä.

Paikallinen edelleenlähetys avaa paikallisen koneen portin, jonka yhteydet ohjataan etäisäntään ja sieltä tiettyyn suuntaan. Hyvin usein tämä suunta on itse etäisäntä, joka tarjoaa suojatun kuoren ja esim. suojattu yhteys VNC samalle koneelle. Paikallinen edelleenlähetys suoritetaan käyttämällä -L-kytkintä ja asettamalla edelleenlähetysmääritykset seuraavaa lomaketta: <порт туннеля>:<адрес назначения>:<порт назначения> .

Esimerkiksi:

$ ssh -L 1000:mail.google.com:25 192.168.0.100

käyttää SSH:ta kirjautumiseen ja komentotulkin avaamiseen 192.168.0.100:ssa ja luo myös tunnelin paikallisen koneen portista 1000 mail.google.comin porttiin 25. Tämän seurauksena yhteydet localhost:1000:aan ohjataan uudelleen porttiin Gmail SMTP. Googlelle näyttää siltä, ​​että kaikki tällaiset yhteydet (vaikkakaan eivät välttämättä yhteyden kautta välitetyt tiedot) ovat peräisin osoitteesta 192.168.0.100, ja kyseiset tiedot ovat suojattuja paikallisen koneen ja 192.168.0.100 välillä, mutta eivät 192.168.0.100 välillä, ellei muita toimenpiteitä ryhdytä.

$ ssh -L 2000:192.168.0.100:6001 192.168.0.100

hyväksyy yhteydet localhost:2000:een, joka välitetään etäisännän porttiin 6001. Tämä esimerkki on hyvä VNC-yhteyksien luomiseen vncserver-apuohjelmalla.

Etäohjauksen avulla etäisäntä voi muodostaa yhteyden mielivaltaiseen isäntään SSH-tunnelin ja paikallisen koneen kautta, mikä tarjoaa paikallisen edelleenlähetyksen käänteisen toiminnon. Tämä on hyödyllistä tilanteissa, joissa esimerkiksi etäisäntä on palomuurilla rajoitettu. Se otetaan käyttöön käyttämällä -R-kytkintä ja määrittämällä edelleenlähetysmääritykset seuraavassa muodossa:<порт туннеля>:<адрес назначения>:<порт назначения> .

Esimerkiksi:

$ ssh -R 3000:irc.freenode.net:6667 192.168.0.200

nostaa kuoren arvoon 192.168.0.200, ja yhteydet osoitteesta 192.168.0.200 omaan porttiin 3000 (toisin sanoen localhost:3000) lähetetään tunnelin kautta paikalliselle koneelle ja sitten irc.freenode.net-porttiin. 6667, mikä on tässä esimerkissä mahdollistaa IRC-ohjelmien käytön etäisäntä, vaikka portti 6667 olisi normaalisti estetty niiltä.

Molempia edelleenlähetystyyppejä voidaan käyttää tarjoamaan suojattu "yhdyskäytävä", jonka avulla muut tietokoneet voivat hyötyä siitä SSH tunneli ilman suoraan käynnissä olevaa SSH- tai SSH-demonia käyttämällä sidososoitetta tunnelin alussa osana edelleenlähetysspesifikaatiota, esim.<адрес туннеля>:<порт туннеля>:<адрес назначения>:<порт назначения> . <адрес туннеля>voi olla mikä tahansa koneen osoite, localhost , * (tai tyhjä), joka vastaavasti sallii yhteydet annetun osoitteen, paluuliittymän tai minkä tahansa liitännän kautta. Oletuksena edelleenlähetys on rajoitettu yhteyksiin tunnelin alussa olevasta koneesta,<адрес туннеля>asetettu localhostille. Paikallista edelleenlähetystä ei tarvita Lisäasetukset, sillä aikaa etälähetys rajoittaa SSH-daemonin kokoonpano etäpalvelin. Katso GatewayPorts-vaihtoehto sshd_config(5) -manuaalisivulta lisäinformaatio.

Lisää SSH-nopeutta

Voit saada kaikki istunnot käyttämään samaa yhteyttä, mikä lisää merkittävästi myöhempien kirjautumisten nopeutta. Voit tehdä tämän lisäämällä seuraavat rivit vaaditun isännän alle tiedostossa /etc/ssh/ssh_config:

Isäntä examplehost.com ControlMaster auto ControlPersist kyllä ​​ControlPath ~/.ssh/socket-%r@%h:%p

Katso ssh_config(5) -manuaalisivulta täysi kuvaus näitä vaihtoehtoja.

Toinen vaihtoehto nopeuden lisäämiseksi on ottaa pakkaus käyttöön -C-lipulla. Vielä parempi, lisää seuraava rivi vaaditun isännän alle tiedostossa /etc/ssh/ssh_config:

Kompressio kyllä

Tärkeä: SISÄÄN ssh(1) sanotaan, että" pakkaus auttaa käytettäessä modeemilinjoja ja muita hitaita yhteyksiä sekä verkoissa, joissa on suuri nopeus vain hidastaa työtä Verkkokokoonpanostasi riippuen tämä neuvo voi olla haitallinen

Kirjautumiseen tarvittavaa aikaa voidaan lyhentää käyttämällä lippua -4, joka estää IPv6-haun. Tämä voidaan saavuttaa myös lisäämällä seuraava rivi vaaditun isännän alle tiedostossa /etc/ssh/ssh_config:

OsoiteFamily inet

SSH:n käyttämien salausten vaihtaminen vähemmän prosessoriintensiivisiksi voi myös parantaa nopeutta. Tästä näkökulmasta paras valinta tulee arcfour ja blowfish-cbc.

Tärkeä:Älä tee tätä, ellet tiedä, mihin se johtaa; arcfourilla on heikkouksia

Jos haluat käyttää vaihtoehtoisia salauksia, suorita SSH -c-lipulla:

$ ssh -c arcfour,blowfish-cbc käyttäjä@käyttäjäosoite

Jos haluat käyttää niitä pysyvästi, lisää seuraava rivi vaaditun isännän alle tiedostossa /etc/ssh/ssh_config:

Salaukset arcfour,blowfish-cbc

Etätiedostojärjestelmien asennus SSHFS:n avulla

Esimerkkejä käytöstä:

$ autossh -M 0 -o "ServerAliveInterval 45" -o "ServerAliveCountMax 2" [email protected] $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,sh"sh_command käyttäjä[email protected]: /mnt/esimerkki

Yhteyden muodostaminen SOCKS-välityspalvelimen kautta, joka on määritetty välityspalvelimen asetuksilla:

$ autossh -M 0 -o "ServerAliveInterval 45" -o "ServerAliveCountMax 2" -NCD 8080 [email protected]

Käyttämällä -f vaihtoehtoa autossh voidaan käynnistää nimellä taustaprosessi. Tässä tapauksessa et kuitenkaan voi syöttää salasanaa interaktiivisesti.

Istunto lopetetaan heti, kun annat exit-komennon, muuten autossh-prosessi vastaanottaa SIGTERM, SIGINT of SIGKILL -signaalin.

Käynnistä Autossh automaattisesti järjestelmän käynnistyksen yhteydessä käyttämällä systemd

Jos haluat, että autossh käynnistyy automaattisesti, voit käyttää systemd. Voit esimerkiksi luoda yksikkötiedoston seuraavasti:

Description=AutoSSH-palvelu portille 2222 After=network.target Environment="AUTOSSH_GATETIME=0" ExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes [sähköposti suojattu] WantedBy=multi-user.target

Tässä AUTOSSH_GATETIME=0 on ympäristömuuttuja, joka ilmaisee, kuinka kauan ssh:n on oltava päällä ennen kuin autossh vakuuttaa yhteyden onnistuneen. Arvon asettaminen 0:ksi käskee autosshia ohittamaan epäonnistunut yhteys ssh. Tästä voi olla hyötyä, kun autossh lisätään käynnistykseen. Muut ympäristömuuttujat ovat saatavilla man-sivulla. Voit tietysti tehdä tästä yksiköstä kattavamman, jos tarvitset (katso lisätietoja järjestelmän dokumentaatiosta); Tietysti voit käyttää omia valintojasi autossh:lle, mutta huomaa, että -f-lippu, joka tarkoittaa AUTOSSH_GATETIME=0 , ei toimi systemd:n ​​kanssa.

Laita sitten kaikki esimerkiksi hakemistoon /etc/systemd/system/autossh.service. Nyt voit ottaa käyttöön autossh-tunnelit tällä komennolla:

$ systemctl käynnistä autossh

Jos autossh käynnistyy tämän jälkeen, voit ottaa sen käyttöön käynnistyksen yhteydessä suorittamalla

$ systemctl salli autossh

Tämän jälkeen autossh käynnistyy automaattisesti, kun järjestelmä käynnistyy.

On helppo tukea useita autossh-prosesseja eri tunneleille. Luo vain useita .service-tiedostoja eri nimillä.

SSH-portin numeron muuttaminen socketin aktivointia varten (sshd.socket)

Luo tiedosto /etc/systemd/system/sshd.socket.d/port.conf, jossa on seuraava sisältö:

# Poista käytöstä oletusportti ListenStream= # Aseta uusi portti ListenStream=12345

systemd kuuntelee automaattisesti uutta porttia uudelleenkäynnistyksen jälkeen:

Systemctl daemon-reload

Ongelmanratkaisu

Tutkimus

Tässä on luettelo asioista, jotka sinun on tarkistettava ennen kuin etsit ratkaisuja ongelmiisi. On suositeltavaa tarkistaa tässä kuvatut asiat ennen kuin katsot muita osia.

1. Asiakkaan ja palvelimen ~/.ssh-hakemistoilla sekä niiden sisällöllä on oltava asianmukaiset käyttöoikeudet:

$ chmod 700 /home/USER/.ssh $ chmod 600 /home/USER/.ssh/*

2. Varmista, että kaikki asiakkaan ja palvelimen ~/.ssh-hakemistoissa olevat tiedostot ovat oikeiden käyttäjien omistamia:

$ chown -R KÄYTTÄJÄ: ~/.ssh

3. Varmista, että asiakkaan julkisen avaimen merkkijono (esimerkiksi id_rsa.pub) on palvelimen authorised_keys-tiedostossa.

4. Tarkista, onko sinulla rajoitettu pääsy SSH:n kautta /etc/ssh/sshd_config-tiedoston AllowUsers-riville (erottele käyttäjänimet välilyönneillä)

Vanhentuneiden avainten poistaminen (valinnainen)

5. Poista vanhoja/virheellisiä avaimia sisältävät rivit ~/.ssh/authorized_keys-tiedostosta palvelimella

6. Poista vanhat/virheelliset yksityiset ja julkiset avaimet asiakkaan ~/.ssh-hakemistosta

7. Pidä mahdollisimman vähän avaimia palvelintiedostossa ~/.ssh/authorized_keys

SSH-yhteys jumissa sammutuksen/uudelleenkäynnistyksen jälkeen

SSH-yhteys katkeaa sammutuksen tai uudelleenkäynnistyksen jälkeen, kun systemd lopettaa verkkoyhteyden ennen sshd:tä. Voit estää tämän kommentoimalla ja muuttamalla After-riviä:

/usr/lib/systemd/system/systemd-user-sessions.service #After=remote-fs.target After=network.target

Yhteys evätty tai aikakatkaisuongelma

Onko reitittimesi määritetty portin edelleenlähetystä varten?

OHITTA TÄMÄ VAIHE, JOS KONEENI EI OLE NAT-MODEEMIN/ROOUTERIN TAKASSA. Useimmissa kodeissa ja pienissä yrityksissä on NAT-modeemi/reititin.

Ensimmäinen asia, joka sinun on tehtävä, on varmistaa, että reitittimesi välittää kaikki saapuvat ssh-yhteydet koneellesi. Internet-palveluntarjoaja antaa sinulle ulkoisen IP-osoitteesi, ja se liittyy kaikkiin reitittimeltäsi tuleviin pyyntöihin. Siksi reitittimesi on tiedettävä, että kaikki ulkoiseen IP-osoitteeseen päin tulevat ssh-yhteydet on välitettävä koneelle, jossa sshd on käynnissä.

Selvitä osoitteesi verkossa:

Etsi käyttöliittymäsi (jota käytetään yhteyden muodostamiseen verkkoon) ja siinä - inet-kenttä. Siirry reitittimen määritysten verkkokäyttöliittymään sen IP-osoitteen avulla. Aseta uudelleenohjaus inet-IP-osoitteeseen. Seuraa linkkiä saadaksesi lisätietoja tämän tekemisestä joillekin reitittimille.

Onko SSH käynnissä ja kuuntelee?

$ss-tnlp

Jos tämä komento ei näy avoin portti SSH, SSH EI ole käynnissä. Tarkista /var/log/messages virheiden varalta.

Onko olemassa palomuurisääntöjä, jotka estävät yhteydet?

Pääseekö liikenne tietokoneellesi?

Suorita liikennevedos tietokoneessa, jossa on ongelmia:

# tcpdump -lnn -i mikä tahansa portti ssh ja tcp-syn

Jotkut näytetään perustiedot. Odota ottelua. Yritä sen jälkeen muodostaa yhteys uudelleen. Jos et näe komentolähtöä, kun yrität muodostaa yhteyden, se tarkoittaa, että jokin tietokoneesi ulkopuolella estää liikenteen (tämä voi olla laitteiston palomuuri, NAT-reititin jne.).

Estääkö Internet-palveluntarjoajasi tai joku muu vaaditun portin?

Joissakin tapauksissa Internet-palveluntarjoajasi saattaa estää oletusportin (SSH-portin 22). Voit tarkistaa tämän luomalla palvelimen kaikkiin liitäntöihin (0.0.0.0) ja muodostamalla etäyhteyden.

Jos saat seuraavanlaisen virheilmoituksen:

Ssh: muodosta yhteys isäntään www.inet.hr portti 22: Yhteys estetty

Jos saat kuitenkin seuraavanlaisen virheilmoituksen:

Ssh: yhdistä isäntään 111.222.333.444 portti 22: Toiminnan aikakatkaisu

tämä tarkoittaa, että jokin hylkää TCP-liikennettäsi portille 22. Yleensä tämä portti on piilotettu joko palomuurisi tai kolmannen osapuolen toimesta (kuten Internet-palveluntarjoaja estää ja/tai hylkää saapuvan liikenteen portissa 22). Jos tiedät, että palomuuri ei ole käynnissä tietokoneessasi ja Gremlinit eivät kerro reitittimissäsi ja kytkimissäsi, tämä tarkoittaa, että palveluntarjoaja estää liikenteen.

Voit varmistaa tämän suorittamalla Wiresharkin palvelimella ja "kuuntelemalla" porttiin 22 suunnattua liikennettä. Koska Wireshark on tason 2 liikenneanalyysiapuohjelma ja TCP/UDP käyttää tasoa 3 ja uudempia (katso TCP/IP-artikkeli), jos et saa mitään luodessasi etäyhteys, on erittäin todennäköistä, että kolmas osapuoli estää palvelimesi tämän portin liikenteen.

Diagnostiikka Wiresharkin avulla

Suorita se sitten:

Tshark -f "tcp-portti 22" -i NET_IF

missä NET_IF - verkkoliitäntä WAN-yhteydelle (katso ip a tarkistaaksesi). Jos et saa paketteja, kun yrität muodostaa etäyhteyden, voit olla varma, että Internet-palveluntarjoajasi estää saapuvan liikenteen portissa 22.

Mahdollinen ratkaisu

Voit yksinkertaisesti käyttää toista porttia, jota Internet-palveluntarjoajasi ei ole estänyt. Avaa /etc/ssh/sshd_config ja määritä toinen portti. Lisää esimerkiksi:

Portti 22 Portti 1234

Varmista myös, että muut "Port"-rivit on kommentoitu. Pelkästään "Port 22" -rivin kommentointi ja "Port 1234" kirjoittaminen ei ratkaise ongelmaa, koska sshd kuuntelee vain porttia 1234. Käytä molempia rivejä ajaaksesi SSH-palvelinta molemmissa porteissa.

Käynnistä palvelin uudelleen systemctl restart sshd.service . Valmis! Nyt sinun on määritettävä asiakkaasi käyttämään toista porttia.

Luku pistorasiasta epäonnistui: vertaisverkko nollannut yhteyden

Openssh:n uusimmat versiot antavat joskus samanlainen viesti bugista johtuvasta virheestä. Lisää tässä tapauksessa seuraava rivi ~/.ssh/config-tiedostoosi:

HostKeyAlgoritms [sähköposti suojattu],[sähköposti suojattu],[sähköposti suojattu],[sähköposti suojattu],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss

Openssh 5.9:ssä tämä korjaus ei auta. Lisää tässä tapauksessa seuraava ~/.ssh/config:

Salaukset aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc MACs hmac-md5,hmac-sha1,hmac-ripemd160

Katso myös keskustelu openssh-foorumilla.

"[oma kuori]: Ei tällaista tiedostoa tai hakemistoa" / ssh_exchange_identification ongelma

Yksi mahdollisia syitä- tarve löytää absoluuttinen polku(jonka palauttaa whereis -b [sinun komentokuori] esimerkiksi) $SHELL:ssä, vaikka tulkitsisi binaaripaketti olisi jossakin $PATH-merkinnöistä.

Virheilmoitus "Terminaali tuntematon" tai "Virhe avattaessa päätettä"

Ssh:ssä on mahdollista saada sisäänkirjautumisen aikana virheitä, kuten "Terminal unknown". Ncurses-sovellusten (esimerkiksi nano) käynnistäminen epäonnistuu ja näyttöön tulee virheilmoitus "Virhe avattaessa päätettä". On kaksi tapaa korjata tämä ongelma: nopea tapa käyttää $TERM-muuttujaa ja vaikea tapa käyttää terminfo-tiedostoa.

Ratkaisu käyttämällä muuttujaa $TERM

Kun olet muodostanut yhteyden etäpalvelimeen, aseta $TERM-muuttujaksi "xterm" seuraavalla komennolla:

Tämä menetelmä on kiertotapa, ja sitä tulisi käyttää ssh-palvelimissa, joihin muodostat harvoin yhteyttä, koska se on ei-toivottu sivuvaikutukset. Lisäksi sinun täytyy toistaa tämän komennon kirjoittaminen jokaisen yhteyden jälkeen tai kirjoittaa tämä arvo ~.bashrc-kenttään.

Ratkaisu terminfo-tiedostolla

Paras ratkaisu on siirtää terminfo-tiedosto asiakkaalta palvelimelle. Tässä esimerkissä näytämme kuinka terminfo-tiedosto määritetään terminaalissa "rxvt-unicode-256color". Luo ssh-palvelimelle terminfo-tiedostoja sisältävä hakemisto, kun olet yhteydessä siihen:

mkdir -p ~/.terminfo/r/

Kopioi nyt päätteen terminfo-tiedosto kohteeseen uusi katalogi. Korvaa rxvt-unicode-256color arvollasi (asiakaskone) seuraavassa komennossa ja ssh-server sopivalla käyttäjänimellä ja palvelimen osoitteella.

$ scp /usr/share/terminfo/r/ rxvt-unicode-256color ssh-palvelin:~/.terminfo/r/

Kun olet kirjautunut sisään ja ulos ssh-palvelimelta, ongelman pitäisi ratkaista.

  • OpenSSH Key Management, osa 1 ja osa 2 IBM developerWorksissa

11. helmikuuta, 2015 klo 22:34

Secure Shell tai SSH on verkkoprotokolla, jonka avulla voit vaihtaa tietoja käyttämällä suojattua kanavaa kahden välillä verkkolaitteet. Protokollan kaksi pääversiota ovat SSH1 (tai SSH-1) ja SSH2 (tai SSH-2). Käytetään pääasiassa Linux- ja UNIX-järjestelmissä ja perustuu tilin komentorivikäyttöön]. Puhuminen yksinkertaisella kielellä, saat komentorivin] etätietokoneella ja voit tehdä kaiken, mitä voit tehdä tietokoneellasi päätteessä. SSH on kehitetty korvaamaan Telnet ja muut turvattomat etäshallit, jotka lähettävät tietoja (erityisesti salasanoja) avoin lomake, jolloin ne ovat alttiita hakkerointiin. SSH-salaus on suunniteltu varmistamaan tietojen luottamuksellisuus ja eheys siirrettäessä suojaamaton verkko kuten Internet.

SSH käyttää julkinen avain salaus todentaa etätietokoneen ja antaa sen todentaa käyttäjän. SSH:ta käytetään yleensä kirjautumiseen etäkone ja komentojen suorittamista, mutta se tukee myös tunnelointia, TCP- ja X11-yhteyksiä. Se voi myös siirtää tiedostoja SFTP:n tai SCP:n avulla. SSH-palvelimen oletusportti oli 22. SSH-asiakkaita käytetään yleensä yhteyden muodostamiseen SSH-palvelimeen. Molemmat ovat läsnä useimmissa nykyaikaisissa käyttöjärjestelmissä, mukaan lukien Mac OS X, Linux, FreeBSD, Solaris ja OpenVMS.

Vaihda salasana avaimeksi

Etäkomennon suoritus

ssh käyttäjä@palvelin isäntänimi

Luo Socks-välityspalvelin, jos sinulla on etäpalvelin turvallisempaa web-surffausta varten

Avaa socks-proxyn portti seuraavalla komennolla

ssh -D 8080 käyttäjä@palvelin

Nyt selaimessa määrittämällä localhost:8080 socks-välityspalvelimeksi voit selata suojattuja sivustoja (liikenne salataan ssh:n kautta)

Kuinka lopettaa ssh-istunto

Katsotaan kuka on järjestelmässä:

Etsi käyttäjän istunto ja sen pseudopääte (esimerkiksi pts/0) ja lopeta se:

kuinka sallia yhteys rootiin vain avaimilla

anna rootin kirjautua sisään (kokoonpanossa):

käynnistä SSHD uudelleen:

/etc/init.d/sshd käynnistyy uudelleen

luoda varmenteita pääkäyttäjälle

lähetämme todistuksia:

Nyt sallimme sen vain avaimella:

Salasanatodennus kyllä

PermitRootLogin ilman salasanaa

käynnistä SSHD uudelleen:

/etc/init.d/sshd käynnistyy uudelleen

Luomme konfiguraation SSH:n kautta työskentelyä varten oman mukavuuden vuoksi

Toiminta on yksinkertainen. Lisää ~/.ssh/config-tiedostoon

Isäntäpalvelin2 Isäntänimi 127.0.0.1 Portti 22 Käyttäjän juuri

rsync näyttäisi esimerkiksi tältä:

rsync -av --progress --partial /home/test/serv2:/home/test

Uudelleenohjaus koneelle, joka sijaitsee paikallisverkossa ja johon ei pääse ulkopuolelta

Syödä: ulkoinen palvelin serv ja sisäinen ws-kone. Sinun on voitava muodostaa yhteys ws-koneeseen ulkopuolelta.

Ratkaisu: sisäiseen ws-koneeseen luomme tunnelin ulkoiseen:

Jos jokin näistä vaihtoehdoista on käytettävissä, vaihda kyllä ​​arvoon ei

Istunnot epäonnistuvat Puttyssa hetken kuluttua lyhyen aikakatkaisun vuoksi.

Tämä tapahtuu, jos yhteys on epäaktiivinen jonkin aikaa. Anna Puttyn lähettää säännöllisesti tyhjiä paketteja yhteydenpidon ylläpitämiseksi. Tämä voidaan tehdä sisään

Yhteys - Sekuntia elämisen välillä

Aseta lähettämään 1 paketti 60 sekunnin välein, tämä on enemmän kuin tarpeeksi.

Pääkäyttäjän kirjautumisen sulkeminen

Luomme käyttäjän, joka kirjautuu palvelimelle ja lisää hänelle salasanan.

Kohdassa /ets/ssh/sshd_config asetamme arvon

Käynnistämme sshd:n uudelleen (poistumatta konsolista tarkistaaksemme uuden käyttäjän kirjautumisen. Jos jokin menee pieleen, takaisin sisäänkirjautuminen root-käyttäjänä on ongelmallista)

Kirjaudumme sisään uutena käyttäjänä erillisessä konsolissa käyttäen - kirjaudumme sisään root-käyttäjänä. Jos kaikki on kunnossa, voit sulkea konsolin root-käyttäjänä.

Kuinka kirjautua ulos SSH:sta

Vain! Klikkaus

katkeraan loppuun asti tai soittaa

samaan tarkoitukseen.

Kuinka asentaa SSHFS:n avulla

Meillä on siis kaksi tietokonetta, joissa on Linux-käyttöjärjestelmä. Ja kuten usein tapahtuu, sinun on siirrettävä useita tiedostoja tietokoneesta toiseen verkon kautta. Voit tietysti nostaa SAMBAa, mutta jotenkin tämä ei ole täysin kätevää ja vaarallista luoda ylimääräisiä avoimia portteja. Suosittelen käyttämään SSH:ta näihin asioihin. Turvallinen ja saatavilla lähes kaikissa Linux-koneissa.

Meillä on esimerkiksi 2 potilasta. Ensimmäinen on päätietokone. Toinen on kannettava tietokone. Kuvitellaan, että jokaisella on käyttäjäkäyttäjä ja meidän on siirrettävä file.avi-tiedosto käyttäjän kotihakemistosta tietokoneella samaan kannettavan tietokoneen hakemistoon. Mielestäni ehdot ovat selvät. Tietysti SSH:n käyttämiseksi voimme käyttää , mc:tä (midnight Commander) tai nautiluksessa "Tiedosto"-valikosta "Yhdistä palvelimeen...", mutta nämä ovat muiden artikkeleiden aiheita.

Joten meidän on ensin selvitettävä tietokoneiden IP-osoitteet. Jos tiedät, ohitamme vaiheen. Jos ei, kirjoita ifconfig komentoriville (päätteessä) ja katso eth0:n osoite (jos paikallinen verkko kopioi) tai wlan0 (jos Wi-Fi:n kautta). Oletetaan, että päätietokoneen osoite on 192.168.0.1, kannettavan tietokoneen osoite on 192.168.0.2

Loistava. Nyt päätetään - muodostammeko yhteyden kannettavasta tietokoneesta työtietokoneeseen vai työtietokoneesta kannettavaan tietokoneeseen? Ainoa ero on IP-osoitteen määrittelyssä, joten valitsemme vain ensimmäisen vaihtoehdon.

Yhdistämme kannettavasta tietokoneesta työpöydälle, jotta voimme "kommunikoida" arvokkaan tiedoston siellä. Päätetään nyt, onko olemassa a ssh-palvelin, johon haluamme muodostaa yhteyden. Joten annamme toimivalla tietokoneella komennon:

sudo netstat -antpu | grep ssh

Ja jos näemme linjan

tcp 0 0 0.0.0.0:22 0.0.0.0:* KUULU 2032/sshd

kaikki on hyvin, voimme jatkaa. Jos ei, sinun on asennettava ssh-server, jonka löydät turvallisesti samasta synapticista tai toisesta paketinhallinnasta. Asensimme sen, tarkistimme sen ja halutun rivin pitäisi ilmestyä. Jos rivejä on enemmän, sillä ei ole väliä, tärkeintä on, että niitä on vähintään yksi.

Joten päätietokoneessa on palvelin, joka odottaa yhteyttämme. Mennään nyt kannettavaan tietokoneeseen. Tarkista ensin, onko sinulla sshfs-komento. Kirjoita se vain terminaaliin. Jos ei, sinun on asennettava se.

Nyt juhlallinen hetki - asennamme etätietokoneen. Kirjoitamme komennon:

sshfs user@site:/ /home/user/computer

missä * käyttäjä on tietokoneen käyttäjä

    verkkosivusto - päätietokoneen osoite, kuten olemme aiemmin havainneet

    /home/user/computer - kansio, jonka loimme aiemmin erityisesti tätä asiaa varten

Jos teit kaiken oikein, sinun pitäisi nähdä /home/user/computer tiedostojärjestelmä kauko, eli päätietokone. Nyt voit avata minkä tahansa Tiedostonhallinta(Nautilus tai mc) ja kopioi tarvitsemasi tiedosto. Meidän tapauksessamme tämä voidaan tehdä komennolla:

cp -v /home/user/computer/home/user/file.avi /home/user/

Kiinnitysvaihtoehdot

Näet ne kaikki kirjoittamalla sshfs -h. Ilmoitamme useimmin tarvittavat. Jos tarvitset niitä, laita ne rivin loppuun:

    P PORTTI - tässä ilmoitat porttisi, jos se ei ole 22

    C - käytetäänkö pakkausta

    O yhdistä uudelleen - muodostaa yhteyden uudelleen, kun yhteys katkeaa

    O sshfs_sync - synkroninen tallennus

    O cache=KYLLÄ - käytä tai älä käytä välimuistia

    O follow_symlinks -seuraa symbolilinkkejä palvelimella

lähettänyt Aleksei Ubozhenko 11. helmikuuta, 2015 22:34 pehmeä

Oletuksena kaikki, joilla on käyttöoikeus komentojen tulkki, voi kirjautua palvelimelle. AllowGroups-, DenyGroups-, Allowllsers- ja Denyllsers-asetusten avulla voit määrittää käyttäjät ja ryhmät, jotka pääsevät tai eivät pääse käyttämään laitettasi.

Jos määrität nimenomaisesti, ketkä käyttäjät voivat kirjautua sisään SSH:n kautta, muut käyttäjät eivät voi tehdä niin.

Esimerkiksi AllowG groups -parametrin avulla voit rajoittaa SSH:n kautta kirjautuvia käyttäjiä määritettyihin ryhmiin, jotka on määritetty /etc/group-tiedostossa (luku 7). Jos tämä parametri on määritetty ja käyttäjä ei kuulu yhteenkään kelvollisista ryhmistä, käyttäjä ei voi kirjautua sisään. Luettelon ryhmät on erotettava välilyönnillä:

AllowGroups-pyörän webmaster dnsadmln

Jos et halua myöntää SSH-käyttöoikeutta koko käyttäjäryhmälle, voit määrittää sallittujen käyttäjien luettelon Allowllsers-parametrilla. Kun käytät Allowllsers-parametria, pääsy estetään automaattisesti kaikilta muilta käyttäjiltä, ​​jotka eivät ole luettelossa.

DenyGroups-vaihtoehto on AllowGroups-vaihtoehdon vastakohta. Tässä lueteltujen järjestelmäryhmien käyttäjät eivät voi kirjautua sisään. Tietyt ryhmät on oltava heidän pääryhmiään, eli niiden on oltava läsnä tiedostossa /etc/master.passwd, ei vain ryhmässä /etc/. Tämä rajoitus tekee DenyGroups-parametrista vähemmän hyödyllisen kuin se saattaa näyttää ensi silmäyksellä; Halutun vaikutuksen saavuttamiseksi ei riitä, että määritetään yleinen nossh-ryhmä ja lisätään siihen vain tämän ryhmän on oltava heille tärkein. Kelvollisten ryhmien nimenomainen luettelointi tarjoaa hyödyllisemmän suojauskäytännön.

Lopuksi Denyllsers-parametri sisältää luettelon käyttäjistä, joilta pitäisi evätä pääsy. Tämä parametri voidaan käyttää nimenomaisesti rajoittamaan pääsyä käyttäjille, jotka kuuluvat ryhmään, jolla on oikeus kirjautua sisään.

Miten nämä asetukset vaikuttavat useisiin ryhmiin kuuluvan käyttäjän käyttöoikeuksiin? Käyttäjä on esimerkiksi jäsen ryhmässä, joka on AllowGroups-luettelossa ja ryhmässä DenyGroups-luettelossa. Mitä tässä tapauksessa tapahtuu? SSH-daemon tarkistaa näiden parametrien arvot seuraavassa järjestyksessä: Denyllsers, Allowllsers, DenyGroups ja Allow-Groups. Ensimmäinen ottelu lasketaan. Oletetaan, että olen pyöräryhmän jäsen ja minulla on seuraava katkelma sshd_config-tiedostossani:

DenyUsers: mwlucas AllowGroups: pyörä

En voi kirjautua tähän järjestelmään SSH:n kautta, koska DenyUsers-parametrin arvo tarkistetaan ennen AllowGroups-parametrin arvoa.

SSH-asiakkaat

Tietenkin SSH-asiakas on jo olemassa FreeBSD:ssä, kuten myös useimmissa muissa UNIX-tyyppisissä käyttöjärjestelmissä. Aina kun mahdollista, yritä käyttää sisäänrakennettua SSH-asiakasta, koska se sisältyy OpenBSD-tiimin kehittämään OpenSSH-pakettiin ja ei ole vain suosituin, vaan myös paras toteutus. Jos sinun on käytettävä leikkaussalia Microsoftin järjestelmä Windows, suosittelen PuTTY ohjelma, joka on ilmainen käyttää sekä kaupallisiin että ei-kaupallisiin tarkoituksiin ja on erinomainen pääteemulaattori.

Tämä kirja käsittelee FreeBSD:tä, joten painopiste on kyseisen käyttöjärjestelmän OpenSSH-asiakkaassa. Voit mukauttaa asiakasta eniten eri tavoilla, mutta useimmissa tapauksissa asetukset rajoittuvat palvelimen tarjoamien toimintojen käytön kieltämiseen. Jos olet todella kiinnostunut asiakkaan toiminnan määrittämisestä, lue ssh_config(5) -man sivu.

Jos haluat muodostaa yhteyden toiseen isäntään SSH:n kautta, sinun on annettava komento ssh hostname. Sinun pitäisi nähdä vastauksena jotain tällaista:

# ssh sardines.blackhelicopters.org

Isännän "sardines.blackhelicopters.org (192.168.1.1)" aitoutta ei voida vahvistaa.

DSA-avaimen sormenjälki on a4:df:7c:7e:Oe:27:e5:21:b4:f4:Oe:2b:c9:10:5f:ea.

Oletko varma haluat yhteyden jatkaminen (kyllä/ei) 9 kyllä

(Käännös: Host authenticity 'sardines.blackhelicopters.org (192.168.1.1)'

ei voida asentaa.

DSA-avaimen sormenjälki a4:df:7c:7e:0e:27:e5:21:b4:f4:0e:2b:c9:10:5f:ea. Haluatko todella jatkaa yhteyden muodostamista (kyllä/ei) 9)

Asiakas vastaanottaa välittömästi sen isännän julkisen avaimen, johon se muodostaa yhteyden, ja tarkistaa sisäisen SSH-avainluettelonsa. Jos palvelimelta saatu avain on asiakkaan luettelossa, asiakas olettaa, että yhteyttä muodostetaan aidon isäntäkoneen kanssa. Jos isäntäavain ei ole asiakkaan luettelossa, se näyttää avaimen sormenjäljen, jotta voit hyväksyä tai hylätä sen.

Asiakkaan antaman sormenjäljen on vastattava palvelimella luotua sormenjälkeä. Jos sormenjäljet ​​eivät täsmää, olet muodostanut yhteyden väärään isäntään ja sinun tulee sulkea yhteys välittömästi. Jos sormenjäljet ​​täsmäävät, voit hyväksyä avaimen ja jatkaa yhteyttä. Kun olet vahvistanut, että haluat jatkaa, isäntäavain tallennetaan kotihakemistoosi luetteloon ssh/known_hosts.

Jos olet luomassa uusi palvelin paikallisessa verkossa henkilökohtainen käyttö, sinun ei ehkä tarvitse verrata avainten sormenjälkiä manuaalisesti. Sinun tulee kuitenkin kopioida avaimen sormenjälki, koska joskus saatat joutua muodostamaan yhteyden toisesta paikasta ja vahvistamaan avain. Jos monet käyttäjät muodostavat yhteyden palvelimeen, olisi hyvä idea sijoittaa sormenjälki verkkosivulle. Sinä päätät, minkä suojatason tarvitset. Henkilökohtaisesti olen sitä mieltä, että liian paljon varovaisuutta on parempi kuin liian vähän.

Hyväksy isäntäavain ja voit kirjautua sisään. Vaikka yksityisen avaimen ja salaisen lauseen käyttö on parempi kuin käyttää yksinkertainen salasana Salasana on kuitenkin suojattu paljon paremmin SSH:ssa kuin telnetissä.

Tiedostojen kopiointi SSH:n kautta

SSH-asiakas on hyvä komentorivikäyttöön, mutta entä tiedostojen siirtäminen järjestelmästä toiseen? SSH sisältää kaksi työkalua tiedostojen siirtämiseen verkon yli - scp(l) ja sftp(l).

Scp(l) (secure copy) -työkalu on ihanteellinen siirtämiseen erilliset tiedostot. Scp-komento ottaa kaksi argumenttia: ensimmäinen on tiedoston nykyinen sijainti ja toinen on sijainti, johon tiedosto tallennetaan. Paikka, johon tiedosto tulee kopioida, määräytyy muodossa olevalla rivillä<имя_полъзователя>@<имя_хос- та>:<имя_файла>. Oletetaan, että haluat kopioida tiedoston bookback-up.tgz paikallisesta järjestelmästä etäpalvelimeen bewilderbeast.blackhelicopters.org toisella nimellä. Voit tehdä tämän kirjoittamalla komennon:

#scpbookbackup.tgz [sähköposti suojattu]:bookbackup-january.tgz

Jos tiedosto kopioidaan samalla nimellä, toisen argumentin tiedostonimi voidaan jättää pois:

# scp bookbackup.tgz[sähköposti suojattu]:

Lisäksi scp(l) mahdollistaa tiedostojen kopioimisen etäjärjestelmästä paikalliseen:

# scp [sähköposti suojattu]:bookbackup-january.tgz bookbackup.tgz

Jos tiedoston kopiolla paikallisessa järjestelmässä pitäisi olla sama nimi, komennon kopion nimi voidaan korvata pisteellä:

# scp [sähköposti suojattu]:bookbackup.tgz.

Lopuksi, jos etäjärjestelmän käyttäjätunnukset ja paikalliset järjestelmät vastaa, niin voit jättää käyttäjänimen ja symbolin pois Esimerkiksi voin kopioida tiedostoni palvelimelle komennolla:

# scp bookbackup.tgz bewilderbeast.blackhelicopters.org:

Näennäisestä monimutkaisuudestaan ​​huolimatta tämä komento on erittäin kätevä yksittäisten tiedostojen nopeaan siirtämiseen verkossa.

Jos sinä suosit interaktiiviset järjestelmät tai kun etäjärjestelmästä kopioitavan tiedoston tarkkaa nimeä ei tiedetä etukäteen, sftp(l) tulee apuun. Sftp(l)-komento ottaa yhden argumentin, joka koostuu käyttäjänimestä ja palvelimen nimestä, muodossa, jota scp-komento käyttää etäpalvelimen tunnistamiseen:

# sftp mwlucas@bewilderbeast,blackhelicopters.org

Yhdistetään bewilderbeastiin… Salasana: sftp> Is

Sftp(l)-liitäntä on hyvin samanlainen kuin tavallinen FTP asiakas; se tukee tyypillistä FTP-komennot, kuten Is (luettelo), cd (muuta hakemistoa), get (lataa tiedosto) ja put (lataa tiedosto). Yksi merkittävä ero on se, että sftp(l) ei vaadi tyypin valitsemista siirretyt tiedostot– ASCII tai binääri; tiedostot yksinkertaisesti siirretään sellaisenaan.

OpenSSH suojaa kaikkea

monet verkko-ohjelmat sisältää SSH-tuen viestintään. Lisäksi OpenSSH voi luoda tunneleita eri koneiden TCP-porttien välille. OpenSSH:n ansiosta voit varmistaa, että kaikki tiedot välitetään verkon yli vain salatussa muodossa.

Käyttämällä scp- ja sftp-komentoja voit poistaa selkeät salasanat verkosta kokonaan.

Tämä opas kattaa yhteyden muodostamisen käynnissä olevaan VPS:ään käyttöjärjestelmä Linux-perhe SSH-avaimen avulla.

Mikä se on

SSH-avaimia käyttämällä voit muodostaa yhteyden ilman salasanaa. Lisäksi tämäntyyppinen valtuutus on paljon turvallisempaa kuin salasanalla kirjautuminen. Salasanat voidaan hakkeroida, ja avaimet ovat käytännössä mahdottomia. Secure SHell-avain koostuu julkisista ja yksityisistä avaimista, jotka ovat pitkiä sarjoja hahmoja. Voit laittaa julkisen avaimen tietokoneeseen ja avata sen lukituksen muodostamalla yhteyden siihen asiakassovelluksella, jolla on yksityinen avain. Kun ne vastaavat, muodostat yhteyden virtuaalinen palvelin(ei salasanaa). Voit myös lisätä turvallisuutta entisestään käyttämällä salalausetta yksityisen avaimen suojaamiseen.

Huomautus:
- oletusarvoinen Secure SHell -portti on 22;
- SSH-protokollan avulla voit hallita tiedostoja etänä SSHFS:n (Secure SHell FileSystem) ansiosta.

Palvelimen luominen

Jos valitsit konetta luodessasi yhteyden muodostamisen Secure SHell -avaimella, sinun on luotava se tai lisättävä olemassa oleva. Kun luot VPS:n, avain lisätään siihen automaattisesti.

Yhdistäminen palvelimeen Linux-käyttöjärjestelmää käyttävästä tietokoneesta

Voit muodostaa yhteyden VPS:ään ssh-komennolla ilman salasanaa. Jos määritit tunnuslauseen, sinua pyydetään antamaan se: ssh user@

Huomaa: niitä on erityisiä ohjelmia joka säästää käyttäjiä vaivalta syöttää avainlauseke joka kerta, esimerkiksi ssh-agent tai ssh-add. Voit lukea tästä lisää.

Yhdistäminen VPS:ään Windows-käyttöjärjestelmää käyttävästä tietokoneesta

Huomautus: Putty on ohjelma yhteyden muodostamiseen etäkoneisiin SSH-, TCP-, Rlogin- ja Telnet-protokollien kautta. Joukkueessa Windows-linja PowerShell, voit käyttää sarjaan sisältyvää plink.exe-apuohjelmaa.

Yhdistääksesi sinun on määritettävä Putty. Avaa sovellus, valitse Oletusasetukset ja paina Ladata.

Siirry vasemmalla olevaan valikkoon Yhteys -> SSH -> Auth, ja kenttään kirjoitamme polun luotuun yksityiseen avaimeen.


Kun olet muodostanut yhteyden, kirjoita tarvittaessa kirjautumistunnuksesi ja salasanasi.