SSH (Secure SHELL) je zabezpečený síťový protokol s otevřeným zdrojovým kódem, který uživatelům umožňuje bezpečné přihlášení ke vzdáleným systémům Linux a dalším síťovým zařízením. Kromě toho se protokol používá pro přenos souborů mezi systémy Linux pomocí protokolu Secure copy (SCP) .
SSH obvykle před přihlášením uživatele vyzve k zadání hesla. Můžete však nakonfigurovat přihlašování SSH bez hesla do jiného vzdáleného systému Linux z vašeho systému Linux. To zvyšuje důvěru a hodí se v úlohách cron, které vyžadují zálohování souborů na dálku pomocí protokolu SCP.
V této příručce se dozvíte, jak nastavit přihlašování SSH bez hesla pomocí klíčů ssh pro zvýšení důvěry mezi dvěma servery.
Nastavit prostředí
ssh client : 66.152.163.19 (Ubuntu 18.04)
ssh remote Host : 173.82.2.236 (CentOS 7)
Generovat klíče SSH na klientském systému ( 66.152.163.19 )
Prvním krokem při nastavování přihlášení bez hesla je vygenerování ověřovacích klíčů ssh v klientském systému. Klíče SSH jsou digitální klíče, které vytvářejí důvěru mezi systémy Linux.
Chcete-li vygenerovat klíče ssh, spusťte příkaz.
$ ssh-keygen
Budete vyzváni k zadání souboru, do kterého chcete klíč uložit. Stiskněte 'Enter' pro uložení do výchozího adresáře umístění ( /root/.ssh)
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Stiskněte Enter.
Dále budete vyzváni k zadání přístupové fráze. Toto nastavujeme přihlášení bez hesla, přeskočte dvakrát stisknutím klávesy Enter.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Při obou příležitostech stiskněte klávesu Enter.
Úplný výstup je uveden níže.
Ukázkový výstup
ssh-keygen
generuje veřejné i soukromé ssh klíče a ukládá je do /root/.ssh
adresář.
Pro ověření spuštění:
ls /root/.ssh
Ukázkový výstup
Veřejný klíč je označen id_rsa.pub
.
Soukromý klíč je označen id_rsa
.
Kopírování veřejného klíče ssh do vzdáleného systému (173.82.2.236)
Dalším krokem je zkopírování veřejného klíče na vzdálený server Linux. Toho lze dosáhnout pomocí ssh-copy-id
příkaz, jak je znázorněno níže.
ssh-copy-id remote_username@server_ip_address
V našem příkladu bude příkaz:
ssh-copy-id [email protected]
Budete dotázáni, zda jste si jisti, že chcete pokračovat v připojení. Zadejte yes
a stiskněte „Enter“
The authenticity of host '173.82.2.236 (173.82.2.236)' can't be established.
ECDSA key fingerprint is SHA256:U4aOk0p30sFjv1rzgh73uhGilwJ2xtG205QFqzB9sns.
Are you sure you want to continue connecting (yes/no)? yes
Dále budete vyzváni k zadání hesla vzdáleného systému. Zadejte heslo a stiskněte „Enter“
Heslo uživatele[email protected]'s password:
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.
Úplný výstup je uveden níže.
Veřejný klíč ssh bude uložen na adrese /root/.ssh/authorized_keys
soubor na vzdáleném systému.
Přihlášení do vzdáleného systému
Po zkopírování veřejného klíče ssh do vzdáleného systému se nyní můžete přihlásit, aniž byste byli vyzváni k zadání hesla, jak je znázorněno.
ssh server-ip-address
V našem případě to bude:
ssh 173.82.2.236
A takto nastavíte nastavení SSH bez hesla z klientského systému Linux na vzdálený server Linux.
- Odstranit veřejný klíč z klientského systému. Pokud se domníváte, že byl soukromý klíč prozrazen, odstraňte veřejný klíč ze vzdáleného serveru a znovu jej nastavte.
- Výše uvedený příkaz SSH funguje bez zadání ID uživatele, protože na obou serverech používáme uživatele root. Pokud jste nastavili přihlášení bez hesla pro jiného uživatele, uveďte to také v příkazu SSH.