Kuinka määrittää mukautetut SSH-yhteydet etäkäytön yksinkertaistamiseksi


SSH (SSH-asiakas) on ohjelma koneen etäkäyttöön. Sen avulla käyttäjä voi suorittaa komentoja etäisännällä. Se on yksi suosituimmista tavoista kirjautua sisään etäisäntään, koska se on suunniteltu tarjoamaan suojattu salattu viestintä kahden epäluotettavan isännän välillä suojaamattoman verkon kautta.

SSH käyttää sekä järjestelmän laajuista että käyttäjäkohtaista (mukautettua) määritystiedostoa. Tässä opetusohjelmassa selitämme kuinka luodaan mukautettu ssh-määritystiedosto ja käytetään tiettyjä vaihtoehtoja yhteyden muodostamiseen etäisäntään.

Vaatimukset:

  1. Sinulla on oltava OpenSSH-asiakasohjelma asennettuna Linux-työpöydällesi.
  2. Ymmärrä yleiset asetukset, joita käytetään etäyhteyksissä ssh:n kautta.

SSH-asiakasasetustiedostot

Alla ovat ssh-asiakasasetustiedostojen sijainnit:

  1. /etc/ssh/ssh_config – tämä on oletusarvoinen koko järjestelmän määritystiedosto. Se sisältää asetukset, jotka koskevat kaikkia ssh-asiakaskoneen käyttäjiä.
  2. ~/.ssh/config tai $HOME/.ssh/config – on käyttäjäkohtainen/muokattu määritystiedosto. Siinä on tiettyä käyttäjää koskevat määritykset. Siksi se ohittaa oletusasetukset järjestelmän laajuisessa konfiguraatiotiedostossa. Tämä on tiedosto, jonka luomme ja käytämme.

Oletuksena käyttäjät todennetaan ssh:ssa salasanoilla, mutta voit määrittää salasanattoman ssh-kirjautumisen käyttämällä ssh keygeniä 5 yksinkertaisessa vaiheessa.

Huomaa: jos hakemistoa ~/.ssh ei ole työpöytäjärjestelmässäsi, luo se seuraavilla käyttöoikeuksilla.


mkdir -p ~/.ssh
chmod 0700 ~/.ssh   

Yllä oleva chmod-komento tarkoittaa, että vain käyttäjällä voi olla luku-, kirjoitus- ja suoritusoikeudet hakemistossa ssh-asetusten edellyttämällä tavalla.

Kuinka luoda käyttäjäkohtainen SSH-määritystiedosto

Tätä tiedostoa ei yleensä luoda oletuksena, joten sinun on luotava se vain käyttäjän luku-/kirjoitusoikeuksilla.


touch ~/.ssh/config
chmod 0700 ~/.ssh/config

Yllä oleva tiedosto sisältää isäntämääritysten määrittelemiä osia, ja osiota käytetään vain isännissä, jotka vastaavat yhtä määrityksessä määritetyistä malleista.

Tavanomainen muoto ~/.ssh/config on seuraava, ja kaikki tyhjät rivit sekä rivit, jotka alkavat kirjaimella '#', katsotaan kommentteiksi:


Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

Yllä olevasta muodosta:

  1. Host host1 – on otsikon määritelmä kohteelle isäntä1, tästä alkaa isäntämäärittely ja se päättyy seuraavaan otsikon määritelmään, Host2 making. osio.
  2. isäntä1, isäntä2 ovat yksinkertaisesti isäntäaliaksia, joita käytetään komentorivillä, ne eivät ole etäisäntien todellisia isäntänimiä.
  3. Määritysvaihtoehdot, kuten ssh_option1=value1, ssh_option2=value1 value2, koskevat vastaavaa isäntää, ja ne tulee sisentää hyvin järjestettyä muotoilua varten.
  4. Vaihtoehdoissa, kuten ssh_option2=arvo1 arvo2, arvo arvo1 otetaan huomioon ensin ja sitten arvo2.
  5. Otsikon määritelmä Host * (jossa * on kuvio – jokerimerkki, joka vastaa nollaa tai useampaa merkkiä) vastaa nollaa tai useampaa isäntäkonetta.

Silti yllä oleva muoto huomioon ottaen ssh lukee asetustiedoston tällä tavalla. Jos suoritat ssh-komennon päästäksesi etäkäyttöön isäntä1:


ssh host1

Yllä oleva ssh-komento tekee seuraavat asiat:

  1. vastaa isäntäaliasta host1 konfiguraatiotiedostossa ja käyttää määrittelyotsikon Host host1 alla asetettuja asetuksia.
  2. siirtyy sitten seuraavaan isäntäosioon Host host2 ja huomaa, että komentorivillä annettu nimi ei täsmää, joten vaihtoehtoja ei käytetä täältä.
  3. Se etenee viimeiseen osioon Host *, joka vastaa kaikkia isäntiä. Tässä se soveltaa kaikkia tämän osan asetuksia isäntäyhteyteen. Mutta se ei voi ohittaa mitään valintojen arvoja, joita on jo käytetty edellisissä osissa.
  4. Sama koskee host2:ta.

Käyttäjäkohtaisen SSH-määritystiedoston käyttäminen

Kun olet ymmärtänyt, kuinka ssh-asiakasasetustiedosto toimii, voit luoda sen seuraavasti. Muista käyttää palvelinympäristöäsi koskevia valintoja ja arvoja (isäntäaliaksia, porttinumeroita, käyttäjänimiä ja niin edelleen).

Avaa asetustiedosto suosikkieditorillasi:


vi ~/.ssh/config

Ja määrittele tarvittavat osat:


Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

Yksityiskohtainen selitys yllä olevista ssh-asetusvaihtoehdoista.

  1. HostName – määrittää oikean isäntänimen, johon kirjaudut, vaihtoehtoisesti voit käyttää numeerisia IP-osoitteita, se on myös sallittu (sekä komentorivillä että HostName-määrityksessä) .
  2. Käyttäjä – määrittää käyttäjän, jolla kirjaudutaan sisään.
  3. Portti – määrittää etäisännän portin numeron, jonka oletusarvo on 22. Käytä etäisännän sshd-asetustiedostossa määritettyä porttinumeroa.
  4. Protokolla – tämä vaihtoehto määrittää protokollaversiot, joita ssh:n tulee tukea mieltymysjärjestyksessä. Tavalliset arvot ovat '1' ja '2', useat versiot on erotettava pilkuilla.
  5. IdentityFile – määrittää tiedoston, josta käyttäjän DSA-, Ed25519-, RSA- tai ECDSA-todennusidentiteetti luetaan.
  6. EteenpäinX11 – määrittää, ohjataanko X11-yhteydet automaattisesti suojatun kanavan ja NÄYTTÖ-joukon yli. Sillä on kaksi mahdollista arvoa "kyllä" tai "ei".
  7. Pakkaus – sitä käytetään määrittämään pakkaus etäyhteyden aikana kyllä-arvolla. Oletusasetus on "ei".
  8. ServerAliveInterval – asettaa aikakatkaisuvälin sekunneissa, jonka jälkeen jos palvelimelta ei ole saatu vastausta (tai tietoja), ssh lähettää viestin salatun kanavan kautta ja pyytää vastausta palvelimelta. Oletusarvo on 0, mikä tarkoittaa, että viestejä ei lähetetä palvelimelle, tai 300, jos BatchMode-vaihtoehto on määritetty.
  9. ServerAliveCountMax – määrittää palvelimen elossa olevien viestien määrän, jotka voidaan lähettää ilman, että ssh saa vastausta palvelimelta.
  10. LogLevel – määrittää monisanaisuustason, jota käytetään kirjattaessa viestejä ssh:sta. Sallittuja arvoja ovat: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 ja DEBUG3. Ja oletus on INFO.

Vakiotapa muodostaa yhteys mihin tahansa Linux-etäisäntään (CentOS 7 - minun tapauksessani), joka on määritelty yllä olevan konfigurointitiedoston osiossa kaksi, kirjoitamme tavallisesti alla olevan komennon:


ssh -i ~/.ssh/id_rsa -p 22 [email 

Kuitenkin käyttämällä ssh-asiakasasetustiedostoa voimme yksinkertaisesti kirjoittaa seuraavan komennon:


ssh centos7 

Löydät lisää vaihtoehtoja ja käyttöesimerkkejä ssh-asiakkaan konfigurointimanuaalisivulta:


$man ssh_config

Siinä se nyt, tässä oppaassa selitimme sinulle, kuinka käyttäjäkohtaista (mukautettua) ssh-asiakasasetustiedostoa käytetään Linuxissa. Käytä alla olevaa palautelomaketta kirjoittaaksesi meille tästä artikkelista.