SSH je klientský a serverový protokol a pomáhá nám přistupovat ke vzdálenému systému přes síť přes šifrovaný tunel. Kdykoli klientský počítač přistupuje k serveru se spuštěným SSH, klient si stáhne zabezpečený klíč ze serveru a zároveň si server stáhne klíč také od klienta. Tyto dva klíče vytvářejí šifrovaný tunel mezi serverem a klientem, takže přenos dat po síti je velmi bezpečný.
Pokud má organizace velký počet serverů, musí správce pokaždé zadat heslo pro přístup ke vzdálenému systému. Je bolestné zadávat heslo vícekrát; SSH přichází s novou funkcí nazvanou přihlašování bez hesla, která pomáhá přistupovat ke vzdálenému počítači bez zadávání hesla.
Předpoklady
Zde máme dva stroje se dvěma různými uživatelskými jmény.
Název hostitele | IP adresa | Uživatel | OS | Účel |
---|---|---|---|---|
server.itzgeek.local | 192.168.1.10 | raj | CentOS 7 / RHEL 7 | Zdrojový stroj |
client.itzgeek.local | 192.168.1.20 | ram | CentOS 7 / RHEL 7 | Cílový stroj |
Zde budu místo IP adresy používat název hostitele.
Postupujte podle pokynů k vytvoření přihlašovacího jména bez hesla.
Nastavte přihlášení SSH bez hesla na CentOS 7
Abychom povolili přihlašování bez hesla, musíme vložit položku veřejného klíče klientského počítače do souboru ~/.ssh/authorized_keys (~ představuje domovský adresář uživatele).
SSH přihlášení bez hesla můžeme nastavit dvěma způsoby. Vyberte kteroukoli z metod.
- Automaticky – (doporučeno)
- Manuální
Metoda 1:(Automaticky)
Tato metoda zahrnuje vygenerování páru klíčů SSH na zdrojovém počítači a jeho umístění na cílový počítač pomocí jediného příkazu.
Přihlaste se ke zdrojovému počítači a vytvořte pár klíčů SSH pomocí následujícího příkazu ssh-keygen.
[raj@server ~]$ ssh-keygen
Výstup:
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): << Press Enter Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): << Press Enter Enter same passphrase again: << Press Enter Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0oqVhWQzIV+hFFHkquVCTihmORqtt+vXHIXhhXoIosI [email protected] The key's randomart image is: +---[RSA 2048]----+ | . XB=. | |. . *oB. | |o. . +++o | |oE..o +=. | |+=o o.*.S | |++.+ *.o | |o . =oo. | | . ...o | | .+o | +----[SHA256]-----+
Jakmile vytvoříte, najdete v adresáři .ssh dva soubory id_rsa a id_rsa.pub. Pro přihlášení bez hesla budeme používat id_rsa.pub.
[raj@server ~]$ ls -al ~/.ssh/
Výstup:
total 8 drwx------. 2 raj raj 38 Sep 6 00:37 . drwx------. 3 raj raj 74 Sep 6 00:37 .. -rw-------. 1 raj raj 1675 Sep 6 00:37 id_rsa -rw-r–r–. 1 raj raj 406 Sep 6 00:37 id_rsa.pub
Použijte příkaz ssh-copy-id se vstupním souborem id_rsa.pub.
[raj@server ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]Příkaz ssh-copy-id vytvoří ~/.ssh/authorized_keys na cílovém počítači, pokud tomu tak není. Jinak ssh-copy-id připojí nový klíč k existujícím klíčům.
Výstup:
The authenticity of host 'client.itzgeek.local (192.168.1.20)' can't be established. ECDSA key fingerprint is SHA256:sueTz6FURcKDbeyGkpE7lUHOaosW/rkkvlG18v98T7Y. ECDSA key fingerprint is MD5:f7:39:52:7e:2e:a4:20:84:ff:d7:72:21:20:36:91:76. Are you sure you want to continue connecting (yes/no)? yes << Type Yes and Press Enter /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: << Enter password of destination machine user (ram) Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Metoda 2:(ručně)
Tato metoda zahrnuje vygenerování páru klíčů SSH na zdrojovém počítači a jeho umístění na cílový počítač tak, že se do něj ručně přihlásíte.
Nejprve se přihlaste do zdrojového počítače a pomocí následujícího příkazu vytvořte pár klíčů SSH.
[raj@server ~]$ ssh-keygen
Výstup:
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): << Press Enter Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): << Press Enter Enter same passphrase again: << Press Enter Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0oqVhWQzIV+hFFHkquVCTihmORqtt+vXHIXhhXoIosI [email protected] The key's randomart image is: +---[RSA 2048]----+ | . XB=. | |. . *oB. | |o. . +++o | |oE..o +=. | |+=o o.*.S | |++.+ *.o | |o . =oo. | | . ...o | | .+o | +----[SHA256]-----+
Jakmile vytvoříte, najdete v adresáři .ssh dva soubory id_rsa a id_rsa.pub. Pro přihlášení bez hesla budeme používat id_rsa.pub.
[raj@server ~]$ ls -al ~/.ssh/
Výstup:
total 8 drwx------. 2 raj raj 38 Sep 6 00:37 . drwx------. 3 raj raj 74 Sep 6 00:37 .. -rw-------. 1 raj raj 1675 Sep 6 00:37 id_rsa -rw-r--r--. 1 raj raj 406 Sep 6 00:37 id_rsa.pubPomocí příkazu scp můžete zkopírovat soubor id_rsa.pub do cíle nebo zkopírovat obsah souboru id_rsa.pub a vložit jej do cílového počítače (soubor ~/.ssh/authorized_keys).
Metoda kopírování:1
Přihlaste se k cílovému počítači a vytvořte adresář .ssh v domovském adresáři uživatele, pokud neexistuje.
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
Použijte scp příkaz ke zkopírování souboru id_rsa.pub do /tmp cílového počítače adresář.
[raj@server ~]$ scp -pr ~/.ssh/id_rsa.pub [email protected]:/tmp
Budete muset zadat heslo pro cíl, protože ještě musíme nakonfigurovat přihlášení bez hesla.
Vložte zdrojový klíč do souboru autorizovaných klíčů pro přihlášení bez hesla.
[ram@client ~]$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
Aktualizujte oprávnění souboru.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Způsob kopírování:2
Přihlaste se k cílovému počítači a vytvořte adresář .ssh v domovském adresáři uživatele, pokud neexistuje.
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
Upravte soubor author_keys.
[ram@client ~]$ vi ~/.ssh/authorized_keys
Na zdrojovém počítači zobrazte obsah souboru id_rsa.pub pomocí příkazu cat. Zkopírujte obsah jeho výběrem (za předpokladu, že používáte PUTTY).
[raj@server ~]$ cat ~/.ssh/id_rsa.pub
Výstup: (Ukázka)
Umístěte výše uvedený obsah do souboru Authorized_keys na cílovém místě a uložte jej. Potom aktualizujte oprávnění souboru.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Otestujte přihlášení bez hesla
Nyní přistupujte ke vzdálenému počítači pomocí SSH. Přenese vás přímo do shellu, aniž byste požadovali heslo.
[raj@server ~]$ ssh [email protected] [ram@client ~]$ uname -a
Závěr
To je vše. Toto přihlášení bez hesla šetří čas a energii správcům systému. Podělte se o svůj názor v sekci komentářů.