Android

Az ssh konfigurációs fájl használata

Számítógép hálózatok 5. gyakorlat (2017): LAN szegmentálás, VLAN, Broadcast üzenet

Számítógép hálózatok 5. gyakorlat (2017): LAN szegmentálás, VLAN, Broadcast üzenet

Tartalomjegyzék:

Anonim

Az egyik lehetőség egy bash álnév létrehozása minden távoli szerverkapcsolathoz. Van azonban egy másik, sokkal jobb és egyszerűbb megoldás erre a problémára. Az OpenSSH lehetővé teszi egy felhasználói konfigurációs fájl beállítását, ahol különféle SSH-beállításokat tárolhat minden egyes távoli géphez, amelyhez csatlakozik.

Ez az útmutató ismerteti az SSH kliens konfigurációs fájljának alapjait és ismerteti a leggyakoribb konfigurációs beállításokat.

Előfeltételek

Feltételezzük, hogy Linuxot vagy macOS rendszert használ, telepítve van az OpenSSH kliens.

SSH konfigurációs fájl helye

Az OpenSSH ügyféloldali konfigurációs fájl neve config , és a .ssh könyvtárban található, a felhasználó otthoni könyvtárában.

A ~/.ssh könyvtár automatikusan létrejön, amikor a felhasználó az ssh parancsot először futtatja. Ha a könyvtár nem létezik a rendszeren, hozza létre az alábbi paranccsal:

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

Alapértelmezés szerint az SSH konfigurációs fájl nem létezik, ezért a touch paranccsal kell létrehoznia:

touch ~/.ssh/config

Ennek a fájlnak csak a felhasználó számára olvashatónak és írhatónak kell lennie, és mások számára nem hozzáférhetőnek kell lennie:

chmod 600 ~/.ssh/config

SSH Config fájlszerkezet és minták

Az SSH konfigurációs fájl a következő szerkezetet használja:

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

Az SSH kliens konfigurációs fájljának tartalma szakaszokra (szakaszokra) van osztva. Minden stanza a Host irányelvvel kezdődik, és konkrét SSH opciókat tartalmaz, amelyeket a távoli SSH szerverrel való kapcsolat létrehozásakor használnak.

A behúzás nem szükséges, de ajánlott, mivel megkönnyíti a fájl olvashatóságát.

A Host irányelv tartalmazhat egy mintát vagy szóközökkel elválasztott minták listáját. Minden minta tartalmazhat nullát vagy több nem szóköz karaktert, vagy a következő mintázat-meghatározók egyikét:

  • * - Nulla vagy több karakternek felel meg. Például a Host * összes gazdagépet egyezi, míg a 192.168.0.* A 192.168.0.0/24 alhálózatban található gazdagépeket. ? - Pontosan egy karakternek felel meg. A minta, Host 10.10.0.? az összes házigazdának megfelel a 10.10.0. hatótávolság. ! - Ha a minta elején használják, az érvényteleníti a mérkőzést. Például a Host 10.10.0.* !10.10.0.5 megfelel a 10.10.0.0/24 alhálózat bármely gazdagépének, kivéve a 10.10.0.5 .

Az SSH kliens a stanza konfigurációs fájlt stanza szerint olvassa el, és ha egynél több minta egyezik, akkor az első egyező stanza lehetőségei élveznek elsőbbséget. Ezért a gazdagép-specifikusabb nyilatkozatokat kell a fájl elején adni, az általánosabb felülbírálást pedig a fájl végén.

Az elérhető ssh-lehetőségek teljes listáját megtalálhatja a man ssh_config parancs beírásával a terminálon, vagy az ssh_config man oldalán.

Az SSH konfigurációs fájlt más programok, például az scp , sftp és rsync .

SSH konfigurációs fájl példa

Most, hogy lefedtük az SSH konfigurációs fájl alapjait, nézzük meg a következő példát.

Általában, ha SSH-n keresztül távoli szerverhez csatlakozik, meg kell adnia a távoli felhasználónevet, gazdagépnevet és portot. Például, ha john nevű felhasználóként jelentkezik be a dev.example.com nevű gazdagépbe a 2322 -es porton a parancssorból, írja be:

ssh [email protected] -p 2322

Ahhoz, hogy a fenti parancsban megadott lehetőségekkel csatlakozzon a kiszolgálóhoz az ssh dev gépelésével, tegye a következő sorokat a "~/.ssh/config fájlba:

~ /.Ssh / config

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

Az ssh dev az ssh kliens elolvassa a konfigurációs fájlt, és a dev host számára megadott kapcsolat részleteit használja:

ssh dev

Megosztott SSH konfigurációs fájl példa

Ez a példa részletesebb információt nyújt a gazdagép mintáiról és az opciók prioritásáról.

Vegyük a következő példafájlt:

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

  • Az ssh targaryen az ssh ügyfél elolvassa a fájlt és alkalmazza az első egyezés opcióit, azaz a Host targaryen . Ezután egyenként ellenőrzi a következő stanzákat, hogy nem megfelelő-ea minta. A következő egyező a Host * !martell (az összes gazdagépet jelenti, kivéve a martell ), és a csatlakozási opciót alkalmazza ebből a martell . Az utolsó definíció Host * szintén megegyezik, de az ssh kliens csak a Compression beállítást fogja használni, mivel a User beállítást már definiálja a Host targaryen stanza.

    Az ssh targaryen használt beállítások teljes listája a következő:

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

    Az ssh tyrell futtatásakor a megfelelő host minták: Host tyrell , Host *ell , Host * !martell és Host * . Ebben az esetben a következő lehetőségek közül választhat:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Az összes többi kapcsolathoz az ssh-kliens a Host * !martell és a Host * szakaszokban megadott beállításokat fogja használni.

Az SSH konfigurációs fájl opció felülbírálása

Az ssh-kliens a következő prioritási sorrendben olvassa be a konfigurációt:

  1. A parancssorból megadott opciók. Opciók, amelyeket a ~/.ssh/config Opciók definiálnak az /etc/ssh/ssh_config fájlban.

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

és az összes többi opciót használni szeretné, de ha a felhasználónévként csatlakozik a john helyett, akkor egyszerűen adja meg a felhasználót a parancssorban:

ssh -o "User=root" dev

Az -F ( configfile ) opció lehetővé teszi egy alternatív felhasználói konfigurációs fájl megadását.

Ha azt szeretné, hogy az ssh ügyfél figyelmen kívül hagyja az ssh-konfigurációs fájlban megadott összes lehetőséget, használja:

ssh -F /dev/null [email protected]

Következtetés

Megmutattuk, hogyan kell konfigurálni a felhasználói ssh konfigurációs fájlt. Érdemes beállítani egy SSH-alapú hitelesítést, és jelszó megadása nélkül csatlakoznia kell a Linux-kiszolgálókhoz.

Alapértelmezés szerint az SSH meghallgatja a 22. portot. Az alapértelmezett SSH port megváltoztatása extra biztonságot nyújt a szerver számára az automatikus támadások kockázatának csökkentésével.

ssh terminál