Weboldal keresés

Egyéni SSH-kapcsolatok konfigurálása a távoli hozzáférés egyszerűsítésére


Az SSH (SSH-kliens) egy számítógép távoli elérésére szolgáló program, amely lehetővé teszi a felhasználó számára, hogy parancsokat hajtson végre egy távoli gazdagépen. Ez az egyik leginkább ajánlott módszer a távoli gazdagépre való bejelentkezéshez, mivel biztonságos, titkosított kommunikációt biztosít két nem megbízható gép között egy nem biztonságos hálózaton keresztül.

Az SSH rendszerszintű, valamint felhasználóspecifikus (egyéni) konfigurációs fájlt is használ. Ebben az oktatóanyagban elmagyarázzuk, hogyan hozhat létre egyéni ssh-konfigurációs fájlt, és hogyan használhat bizonyos beállításokat a távoli gazdagépekhez való csatlakozáshoz.

Követelmények:

  1. Telepítette az OpenSSH-ügyfelet a Linux asztalára.
  2. Ismerje meg az ssh-n keresztüli távoli kapcsolatokhoz használt általános beállításokat.

SSH-kliens konfigurációs fájlok

Alább láthatók az ssh kliens konfigurációs fájlok helyei:

  1. /etc/ssh/ssh_config – ez az alapértelmezett, rendszerszintű konfigurációs fájl. Olyan beállításokat tartalmaz, amelyek az ssh kliens gép összes felhasználójára vonatkoznak.
  2. ~/.ssh/config vagy $HOME/.ssh/config – a felhasználóspecifikus/egyéni konfigurációs fájl. Olyan konfigurációkkal rendelkezik, amelyek egy adott felhasználóra vonatkoznak. Ezért felülírja az alapértelmezett beállításokat a rendszerszintű konfigurációs fájlban. Ez az a fájl, amelyet létrehozunk és használunk.

Alapértelmezés szerint a felhasználókat az ssh-ban jelszavakkal hitelesítik, azonban 5 egyszerű lépésben beállíthatja az ssh jelszó nélküli bejelentkezést az ssh keygen használatával.

Megjegyzés: Ha a ~/.ssh könyvtár nem létezik az asztali rendszeren, hozza létre a következő engedélyekkel.


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

A fenti chmod parancs azt jelenti, hogy csak a felhasználónak lehet olvasási, írási és végrehajtási engedélye a könyvtárban, ahogy azt az ssh-beállítások megkövetelik.

Felhasználóspecifikus SSH konfigurációs fájl létrehozása

Ez a fájl általában nem alapértelmezés szerint jön létre, ezért csak a felhasználó olvasási/írási jogosultságával kell létrehoznia.


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

A fenti fájl a gazdagép specifikációi által meghatározott szakaszokat tartalmazza, és egy szakasz csak azokra a gazdagépekre vonatkozik, amelyek megfelelnek a specifikációban megadott minták egyikének.

A ~/.ssh/config hagyományos formátuma a következő, és minden üres sor, valamint a #' karakterrel kezdődő sor megjegyzésnek minősül:


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

A fenti formátumból:

  1. Host host1 – a host1 fejlécdefiníciója, itt kezdődik a gazdagép-specifikáció, és a következő fejlécdefinícióval végződik: Host2 making egy szakaszt.
  2. A host1, host2 egyszerűen a parancssorban használható gazdagép-álnevek, nem a távoli gazdagépek tényleges nevei.
  3. Az olyan konfigurációs beállítások, mint az ssh_option1=value1, ssh_option2=value1 value2, az egyező gazdagépre vonatkoznak, és a jól szervezett formázás érdekében be kell őket behúzni.
  4. Egy olyan beállításnál, mint például az ssh_option2=value1 value2, a rendszer először az érték1 értéket veszi figyelembe, majd az érték2 értéket.
  5. A Host * fejlécdefiníció (ahol a * egy minta – helyettesítő karakter, amely nulla vagy több karakternek felel meg) nulla vagy több gazdagépnek felel meg.

A fenti formátumot figyelembe véve az ssh így olvassa be a konfigurációs fájlt. Ha ssh parancsot hajt végre a host1 távoli eléréséhez, például:


ssh host1

A fenti ssh parancs a következő dolgokat teszi:

  1. egyezik a konfigurációs fájlban található host1 gazdagép-aliassal, és alkalmazza a Host host1 definíciófejlécben megadott beállításokat.
  2. majd átlép a következő gazdagép szakaszra, a Host2re, és azt tapasztalja, hogy a parancssorban megadott név nem egyezik, ezért innen nem lesz semmilyen beállítás.
  3. Továbblép az utolsó Host * részre, amely megfelel az összes gazdagépnek. Itt az ebben a szakaszban található összes beállítást alkalmazza a gazdagép kapcsolatra. De nem bírálhatja felül az előző szakasz(ok)ban már használt opciókat.
  4. Ugyanez vonatkozik a host2-re is.

Felhasználóspecifikus SSH konfigurációs fájl használata

Miután megértette, hogyan működik az ssh-kliens konfigurációs fájlja, a következőképpen hozhatja létre. Ne felejtse el használni a kiszolgálókörnyezetre vonatkozó beállításokat és értékeket (hoszt álnevek, portszámok, felhasználónevek és így tovább).

Nyissa meg a konfigurációs fájlt kedvenc szerkesztőjével:


vi ~/.ssh/config

És határozza meg a szükséges szakaszokat:


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

A fenti ssh konfigurációs lehetőségek részletes magyarázata.

  1. HostName – megadja a valós gazdagépnevet, amelyre bejelentkezik, vagy használhat numerikus IP-címeket, ez is megengedett (mind a parancssorban, mind a HostName specifikációkban) .
  2. Felhasználó – meghatározza a bejelentkezéshez szükséges felhasználót.
  3. Port – beállítja a távoli gazdagép csatlakozási portszámát, az alapértelmezett 22. Használja a távoli gazdagép sshd konfigurációs fájljában konfigurált portszámot.
  4. Protokoll – ez az opció meghatározza, hogy az ssh-nek milyen protokollverziókat kell támogatnia, preferencia sorrendben. A szokásos értékek az '1' és '2', több verziót vesszővel kell elválasztani.
  5. IdentityFile – olyan fájlt ad meg, amelyből a felhasználó DSA, Ed25519, RSA vagy ECDSA hitelesítési azonosítóját olvassa ki.
  6. ForwardX11 – meghatározza, hogy az X11 kapcsolatok automatikusan át legyenek-e irányítva a biztonságos csatornán és a KIJELZŐ-készleten. Két lehetséges értéke van: "igen" vagy "nem".
  7. Tömörítés – a távoli kapcsolat során a tömörítés beállítására szolgál az „igen” értékkel. Az alapértelmezett érték a „nem”.
  8. ServerAliveInterval – beállít egy időtúllépési intervallumot másodpercben, amely után, ha nem érkezett válasz (vagy adat) a szervertől, az ssh üzenetet küld a titkosított csatornán keresztül, hogy választ kérjen a szervertől. Az alapértelmezett érték 0, ami azt jelenti, hogy a rendszer nem küld üzenetet a szervernek, vagy 300, ha a BatchMode beállítás meg van adva.
  9. ServerAliveCountMax – beállítja a szerver életben lévő üzeneteinek számát, amelyek elküldhetők anélkül, hogy az ssh választ kapna a szervertől.
  10. LogLevel – meghatározza az ssh-ből érkező üzenetek naplózásakor használt bőbeszédűségi szintet. A megengedett értékek a következők: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 és DEBUG3. És az alapértelmezett az INFO.

A fenti konfigurációs fájl második szakaszában meghatározott bármely távoli Linux-állomáshoz (az én esetemben CentOS 7-hez) való csatlakozás szokásos módja, általában az alábbi parancsot írjuk be:


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

Az ssh-kliens konfigurációs fájljának használatával azonban egyszerűen beírhatjuk a következő parancsot:


ssh centos7 

További lehetőségeket és használati példákat találhat az ssh-kliens konfigurációs kézikönyvében:


$man ssh_config

Egyelőre ennyi, ebben az útmutatóban elmagyaráztuk, hogyan kell használni egy felhasználóspecifikus (egyéni) ssh-kliens konfigurációs fájlt Linuxon. Használja az alábbi visszajelzési űrlapot, és írjon nekünk erről a cikkről.