autentizace klíčem sftp

Sftp Key Authentication



1 Přehled

Přihlašování pomocí klíče nevyžaduje, aby uživatel nastavil heslo. Prostřednictvím šifrování a dešifrování páru klíčů rsa je navázáno zabezpečené spojení mezi klientem a serverem. Jednoduše řečeno, veřejný klíč je umístěn na straně serveru, tj. Níže nakonfigurované autorizované_klíče a soukromý klíč je umístěn na straně klienta. Na druhou stranu klient iniciuje požadavek na připojení. Server identifikuje odpovídající veřejný klíč klienta podle požadovaného uživatelského jména. Služba sshd generuje náhodné číslo, které je šifrováno veřejným klíčem a odesláno zpět klientovi. Klient dešifruje náhodné číslo pomocí soukromého klíče. „Klient odešle dešifrované náhodné číslo zpět na server a server provede párování, párování je úspěšné a ověření je předáno, což umožňuje přihlášení. Tato metoda zabrání nebezpečí pokusů o prolomení hesla hrubou silou. Samozřejmě, protože ověřování pomocí klíče má proces šifrování a dešifrování a ověřování přenosu náhodných čísel, je doba připojení přirozeně delší než metoda hesla.



2. Realizujte přihlašovací údaje pro ověřování klíčů



IP vzdáleného serveru: 192.168.191.128, název hostitele je catyuan
IP lokálního klienta: 192.168.191.131, název hostitele je localhost



2.1 Vytvořte lokálně pár klíčů

[root@xxxxx ~]# ssh-keygen -t rsa #Create a key pair Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): #My default path here is this, or you can enter the key storage path by yourself Enter passphrase (empty for no passphrase): #Enter, do not encrypt the key Enter same passphrase again: #Enter, confirm again Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: bc:fa:ba:a0:70:41:50:64:3a:a4:99:41:d7:a9:44:fe root@xxxxx The key's randomart image is: +--[ RSA 2048]----+ |+==o. . | |oBo. o | |* o.. | | o .. . | | . E S | | . . | |. . . . | | o . . . | | . ++. | +-----------------+

2.2 Zobrazte veřejný klíč (id_rsa.pub) a soukromý klíč (id_rsa) vygenerovaný v adresáři

[root@xxxxx ~]# ls /root/.ssh/ id_rsa id_rsa.pub known_hosts

2.3 Zkopírujte veřejný klíč do souboru ~ / .ssh / authorized_keys vzdáleného serveru

[root@xxxxx ~]# ssh-copy-id root@xxxxx This service allows sftp connections only. #The server only allows sftp connections [root@xxxxx ~]# ssh-copy-id root@xxxxx # First pass to root, then cp [root@xxxxx ~]# mkdir /data/sftp/test/.ssh [root@xxxxx ~]# cp .ssh/authorized_keys /data/sftp/test/.ssh/

Několik metod kopírování

1. Zkopírujte veřejný klíč na server pomocí scp a poté jej připojte k souboru ~ / .ssh / authorized_keys, což je problematičtější. scp -P 22 ~ / .ssh / id_rsa.pub root @ xxxxx: ~ /.
2. Prostřednictvím programu ssh-copy-id, což je metoda, kterou jsem demonstroval, je ssh-copy-id root @ xxxxx v pořádku
3. Můžete použít cat ~ / .ssh / id_rsa.pub | ssh -p 22 root @ xxxxx'cat >> ~ / .ssh / authorized_keys ', což je také běžněji používaná metoda. Protože číslo portu lze změnit.

2.4 Upravit oprávnění

Oprávnění k adresáři .ssh je 700 a oprávnění souboru authorized_keys a soukromého klíče pod ním je 600. Jinak se z důvodu oprávnění nebudete moci přihlásit bez hesla. Vidíme, že soubor known_hosts bude vygenerován po přihlášení.

[root@xxxxx ~]# chown -R test:sftp /data/sftp/test/.ssh/ [root@xxxxx ~]# chmod 600 /data/sftp/test/.ssh/authorized_keys [root@xxxxx ~]# chmod 700 /data/sftp/test/.ssh/

2.5 Upravte konfigurační soubor

Pokud uživatelům povolíte přihlášení pouze pomocí ověřování pomocí klíče, můžete nastavit / etc / ssh / sshd_config
HesloAuthentication no
Pokud jej nezměníte, jsou povoleny metody přihlašování pomocí klíče i ověřování pomocí klíče.

[root@xxxxx ~]# vim /etc/ssh/sshd_config PermitRootLogin yes #Allow root user to log in RSAAuthentication yes #Allow RSA security authentication PubkeyAuthentication yes #Allow key login AuthorizedKeysFile /data/sftp/test/.ssh/authorized_keys #Point out the location of the public key. This item is included in the configuration file, so comment it out.

Osvědčení o bezpečnosti RSA
Poté, co je veřejný klíč v RSA znám třetí stranou, použije třetí strana veřejný klíč k šifrování a odesílání dat
Například:
A chce napsat B:
1. B odešle veřejný klíč A
2. A získá obsah šifrovaného dopisu veřejného klíče a odešle obsah B
3. Jakmile B dostane písmeno A, dešifrujte ho soukromým klíčem.
Pak nastává problém:
Otázka 1: Když B dá A veřejný klíč, je to známé třetí stranou C, může C také psát do B? ?
Otázka 2: Jak ví A, že B dal tento klíč? ?
Otázka 3: Jak B ví, že dopis napsal A? ?

2.6 restartujte službu

[root@xxxxx ~]# systemctl restart sshd`

2.7 Přihlášení pomocí testovacího klíče

[root@xxxxx ~]# sftp root@xxxxx Connected to 192.168.191.128. #At this time, no password is required to log in, use the secret key to log in sftp>