Android

Ssh-asetustiedoston käyttäminen

Sisällysluettelo:

Anonim

Yksi vaihtoehto olisi luoda bash-alias jokaiselle etäpalvelinyhteydelle. Tälle ongelmalle on kuitenkin toinen, paljon parempi ja yksinkertaisempi ratkaisu. OpenSSH antaa sinun asettaa käyttäjäkohtaisen määritystiedoston, johon voit tallentaa erilaisia ​​SSH-asetuksia jokaiselle etälaitteelle, johon yhdistät.

Tämä opas kattaa SSH-asiakasmääritystiedoston perusteet ja selittää joitain yleisimmistä määritysvaihtoehdoista.

edellytykset

Oletamme, että käytät Linux- tai macOS-järjestelmää, johon OpenSSH-asiakas on asennettu.

SSH-määritystiedoston sijainti

OpenSSH-asiakaspuolen määritystiedosto on nimeltään config , ja se tallennetaan .ssh hakemistoon käyttäjän kotihakemistoon.

~/.ssh hakemisto luodaan automaattisesti, kun käyttäjä ajaa ssh komentoa ensimmäistä kertaa. Jos hakemistoa ei ole järjestelmässäsi, luo se alla olevan komennon avulla:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

Oletuksena SSH-määritystiedostoa ei välttämättä ole, joten joudut ehkä luomaan sen kosketuskomennolla:

touch ~/.ssh/config

Tämän tiedoston on oltava luettavissa ja kirjoitettavissa vain käyttäjän toimesta, eikä muiden saa käyttää sitä:

chmod 600 ~/.ssh/config

SSH Config-tiedostorakenne ja -mallit

SSH-määritystiedosto on seuraava rakenne:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

SSH-asiakasohjelman konfigurointitiedoston sisältö on jaettu osiin (osiot). Jokainen stanssi alkaa isäntädirektiivillä ja sisältää erityiset SSH-asetukset, joita käytetään muodostettaessa yhteyttä etä-SSH-palvelimeen.

Leimausta ei tarvita, mutta sitä suositellaan, koska se helpottaa tiedoston lukemista.

Host voi sisältää yhden kuvion tai välilyönnillä erotetun luettelon kuvioista. Jokainen kuvio voi sisältää nollan tai useamman ei-välilyönnin tai yhden seuraavista kuvioiden määrittelyistä:

  • * - vastaa nollaa tai enemmän merkkejä. Esimerkiksi Host * vastaa kaikkia isäntiä, kun taas 192.168.0.* Vastaa isäntiä 192.168.0.0/24 . ? - Vastaa tarkalleen yhtä merkkiä. Kuvio, Host 10.10.0.? vastaa kaikkia isäntiä 10.10.0. alue. ! - Kun sitä käytetään kuvion alussa, se mitätöi ottelun. Esimerkiksi Host 10.10.0.* !10.10.0.5 vastaa mitä tahansa isäntä 10.10.0.0/24 paitsi 10.10.0.5 .

SSH-asiakas lukee konfigurointitiedoston stanza by stanza, ja jos useampia kuin yksi malli vastaa, ensimmäisestä vastaavasta stanzasta tulevat asetukset ovat etusijalla. Siksi isäntäkohtaisempia ilmoituksia tulisi antaa tiedoston alussa, ja yleisempi ohitus tiedoston lopussa.

Löydät täydellisen luettelon käytettävissä olevista ssh-asetuksista kirjoittamalla terminaaliin man ssh_config tai käymällä ssh_config man-sivulla.

SSH-konfigurointitiedostoa lukevat myös muut ohjelmat, kuten scp , sftp ja rsync .

SSH-määritystiedostoesimerkki

Nyt kun olemme kattaneet SSH-määritystiedoston perustiedot, katsotaanpa seuraavaa esimerkkiä.

Yleensä, kun muodostat yhteyden etäpalvelimeen SSH: n kautta, määrität etäkäyttäjän nimen, isäntänimen ja portin. Esimerkiksi, jos haluat kirjautua sisään komentoriviltä john nimisen käyttäjän nimellä dev.example.com nimeltä dev.example.com portissa 2322 , kirjoita:

ssh [email protected] -p 2322

Jos haluat muodostaa yhteyden palvelimeen käyttämällä samoja vaihtoehtoja kuin yllä olevassa komennossa yksinkertaisesti kirjoittamalla ssh dev , lisää seuraavat rivit "~/.ssh/config tiedostoon:

~ /.Ssh / config

Host dev HostName dev.example.com User john Port 2322

Kun kirjoitat ssh dev , ssh-asiakas lukee kokoonpanotiedoston ja käyttää ssh dev isäntälle määritettyjä yhteydetietoja:

ssh dev

Jaettu SSH-määritystiedosto-esimerkki

Tämä esimerkki antaa yksityiskohtaisempia tietoja isäntämalleista ja asetusten tärkeysjärjestyksestä.

Otetaan seuraava esimerkitiedosto:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • Kun kirjoitat ssh targaryen , ssh-asiakas lukee tiedoston ja käyttää vaihtoehtoja ensimmäisestä ottelusta, joka on Host targaryen . Sitten se tarkistaa seuraavat stanzat yksitellen sopivan kuvion suhteen. Seuraava vastaava on Host * !martell (tarkoittaa kaikkia isäntiä paitsi martell ), ja se käyttää tämän vaihtoehdon yhteysvaihtoehtoa. Viimeinen määritelmä Host * vastaa myös, mutta ssh-asiakas käyttää vain Compression vaihtoehtoa, koska User asetus on jo määritetty Host targaryen .

    Täysi luettelo käytetyistä vaihtoehdoista, kun kirjoitat ssh targaryen :

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    Kun ajaa ssh tyrell , vastaavat isäntämallit ovat: Host tyrell , Host *ell , Host * !martell ja Host * . Tässä tapauksessa käytetyt vaihtoehdot ovat:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Kaikissa muissa yhteyksissä ssh-asiakas käyttää Host * !martell ja Host * -osiossa määritettyjä vaihtoehtoja.

Ohita SSH-määritystiedostovaihtoehto

Ssh-asiakas lukee kokoonpanonsa seuraavassa tärkeysjärjestyksessä:

  1. Komentoriviltä määritetyt asetukset.Valinnat, jotka on määritelty ~/.ssh/config -sovelluksessa.Valinnat, jotka on määritetty hakemistossa /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

ja haluat käyttää kaikkia muita vaihtoehtoja, mutta muodostaaksesi yhteyden käyttäjän root sijasta, määritä käyttäjä komentorivillä:

ssh -o "User=root" dev

-F ( configfile ) -asetuksen avulla voit määrittää vaihtoehtoisen käyttäjäkohtaisen määritystiedoston.

Pyydä ssh asiakasohjelmaa jättämään huomioimatta kaikki ssh-määritystiedostossa määritetyt asetukset:

ssh -F /dev/null [email protected]

johtopäätös

Olemme osoittaneet, kuinka käyttäjän ssh-konfigurointitiedosto määritetään. Voit myös määrittää SSH-avainpohjaisen todennuksen ja muodostaa yhteyden Linux-palvelimiin antamatta salasanaa.

Oletuksena SSH kuuntelee porttia 22. Oletus SSH-portin muuttaminen lisää ylimääräistä suojaustasoa palvelimelle vähentämällä automatisoitujen hyökkäysten riskiä.

SSH-pääte