GNU/Linux >> Znalost Linux >  >> Linux

Jak funguje SSH bez hesla v systému Linux / UNIX

SSH je protokol pro bezpečný přenos dat mezi různými počítači. Protokol SSH používá kryptografii veřejného klíče, která klientovi umožňuje ověřit server a v případě potřeby umožnit serveru autentizovat klienta bez zasílání hesel tam a zpět.

Kryptografie s veřejným klíčem používá pár veřejného a soukromého klíče. Soukromý klíč je uchováván v tajnosti a nikdy se nepřenáší po síti. Veřejný klíč může být distribuován všem peerům. Zprávy zašifrované pomocí veřejného klíče lze dešifrovat pouze pomocí soukromého klíče.

V době připojení SSH klient obdrží veřejný klíč serveru a ověří, zda se shoduje s uloženým veřejným klíčem v $HOME/.ssh/known_hosts . Pokud je tento test úspěšný a server nemá klientský veřejný klíč, je vyžadováno heslo. V opačném případě server odešle zprávu zašifrovanou klientským veřejným klíčem a pokud se klientovi podaří zprávu úspěšně dešifrovat pomocí svého soukromého klíče, spojení je navázáno.

Existují dvě verze protokolu SSH, verze 1 a 2. Šifrování je vázáno na verzi protokolu. Verze 1 trpí bezpečnostními chybami, kdykoli je to možné, měla by být použita verze 2. Většina SSH serverů používá verzi 2 protokolu kvůli omezením verze 1.

Existují 2 algoritmy pro šifrování párů veřejného a soukromého klíče, RSA a DSA .

Nastavení klienta

Protokol Typ Příkazový řádek
Verze 1 RSA1 -t rsa1
Verze 2 RSA -t rsa
Verze 2 DSA -t dsa

Po určení, jaký typ identity chcete/potřebujete, je prvním krokem vygenerování páru veřejného a soukromého klíče a zkopírování veřejné části na příslušné místo na straně serveru. V domovském adresáři uživatele na klientském počítači spusťte (měli byste mít adresář $HOME/.ssh, pokud jej nevytvoříte):

# ssh-keygen -t dsa -f ~/.ssh/id_dsa 
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:Qmd9iBOzx02n4DvDiBwRoGbGGC12X9i41QtbBxznHZc root@geeklab
The key's randomart image is:
+---[DSA 1024]----+
|..  ..*.=o+......|
|.=.o o * %o*.ooE |
|o.B . * X O.+.   |
| +   = * * o     |
|      + S =      |
|       .   o     |
|                 |
|                 |
|                 |
+----[SHA256]-----+

Tady,
-t – používá se pro typ šifrování.
-f – kam uložit páry veřejného/soukromého klíče. V tomto případě adresář .ssh na domovské stránce uživatele.

Po provedení výše uvedeného příkazu budete požádáni o přístupové heslo. Nechte tuto část prázdnou, pokud nechcete zadávat tuto přístupovou frázi při každém připojení, stiskněte [enter]. Alternativně je možné nastavit ssh-agenta pro zpracování přístupových frází.

Výše uvedený příkaz vytvoří dva soubory v ~/.ssh:

# ls -lrt ~/.ssh/id_dsa*
-rw-r--r--. 1 root root 602 Apr 12 14:45 /root/.ssh/id_dsa.pub
-rw-------. 1 root root 668 Apr 12 14:45 /root/.ssh/id_dsa

Nastavení serveru

Soubor id_dsa.pub obsahuje veřejný klíč klienta, který je třeba připojit k souboru $HOME/.ssh/authorized_keys na serveru:

1. Zkopírujte soubor id_dsa.pub na server:

client$ scp ~/.ssh/id_dsa.pub user@server:~/.ssh/id_dsa.pub

Tentokrát budete samozřejmě muset zadat heslo pro uživatele.

2. Nyní se přihlaste na server a přejděte do adresáře .ssh na straně serveru

client$ ssh user@server
server$ cd .ssh

3. Nyní přidejte veřejný klíč klienta do seznamu známých veřejných klíčů na serveru:

server$ cat id_dsa.pub >> authorized_keys
server$ chmod 640 authorized_keys
server$ rm id_dsa.pub
server$ exit

to je vše.

Testování

Chcete-li otestovat, zda funguje ssh bez hesla, použijte níže uvedenou syntaxi:

$ ssh -l [user] [server]
Last login: Tue Apr 12 15:20:07 2007 from 192.168.0.100

nebo alternativně

$ ssh [user]@[server]
Last login: Tue Oct 12 15:20:07 2007 from 192.168.0.100

Pokud vás systém nepožádal o heslo, vše funguje správně.

Upozornění

Ujistěte se, že uchováváte svůj soukromý klíč (~/.ssh/id_dsa) v tajnosti! I když je bezpečné dát svůj veřejný klíč (~/.ssh/id_dsa.pub) světu, měli byste být velmi opatrní, aby nikdo jiný nemohl přečíst váš soukromý klíč (~/.ssh/id_dsa). Každý, kdo má přístup k soukromému klíči, se může přihlásit k libovolnému počítači, kde je nainstalován odpovídající veřejný klíč.


Linux
  1. Jak nastavit klíče SSH

  2. Jak nastavit Rsync s SSH na UNIX / Linux (rsync bez hesla)

  3. Jak nastavit přihlášení SSH bez hesla v Linuxu

  1. Jak změnit port SSH v Linuxu

  2. Jak nakonfigurovat ověřování na základě klíče SSH v systému Linux

  3. Jak používat příkaz ssh-keygen ke konfiguraci ssh bez hesla

  1. Jak nastavit přihlášení k SSH bez hesla

  2. Jak vygenerovat klíč SSH ve Windows 10

  3. Jak nastavit klíče SSH pro přihlášení k ssh „bez hesla“ v systému Linux