blog.nayma.pl


Dla miłośników HTML5, CSS3, JS, WordPress oraz systemu macOS

Dariusz Nayma.pl
Autor Wpisu

Podziel się


Tagi


SeoHost.pl

Logowanie SSH bez hasła

Dariusz Nayma.plDariusz Nayma.pl

Logowanie SSH bez hasła za pomocą ssh-keygen i ssh-copy-id

Jeśli często korzystasz z połączeń SSH ze swoim serwerem to warto przyspieszyć łączenie się z nim. Dzięki poleceniu ssh-keygen wygenerujemy nasz klucz publiczny ssh a następnie poleceniem ssh-copy-id skopiujemy go na serwer. Po tych dwóch prostych operacjach będziemy mogli łączyć się z naszym serwerem bez użycia hasła.

W pierwszej kolejności generujemy klucz publiczny poleceniem ssh-keygen. Enterem potwierdzamy wszystkie pytania aż do uzyskania randomart image:

nayma@nayma:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nayma/.ssh/id_rsa): 
Created directory '/home/nayma/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/nayma/.ssh/id_rsa.
Your public key has been saved in /home/nayma/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:PRNu1ccBBsb/K8EiS+J1MfMXL8iqaqPzkmK86aVRpvA naymaeu@naymaeu
The key's randomart image is:
+---[RSA 2048]----+
|          .o.o.. |
|          .... ..|
|          . o . o|
|         o * . o |
|.   o   S *.*.. o|
| o +   . = =o+.o.|
| .E ... + +.. o..|
|  +=+ o. ..  . . |
| o=o.*oo..    .  |
+----[SHA256]-----+

Instalujemy ssh-copy-id:

brew install ssh-copy-id

Następnie musimy skopiować nasz klucz na nasz serwer. Robimy to poleceniem ssh-copy-id -i ~/.ssh/id_rsa.pub uzytkownik@nazwahosta.pl. Jeśli wszystko wykonamy ok powinniśmy otrzymać informację, że 1 klucz został dodany poprawnie.

nayma@nayma:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub nayma@host.pl
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/nayma/.ssh/id_rsa.pub"
The authenticity of host 'nayma.host.pl (111.111.111.111)' can't be established.
ECDSA key fingerprint is SHA256:NWHqobYvpYndNQ3uSCwARoPy3u7q53pfLvjVUgPXMLU.
Are you sure you want to continue connecting (yes/no)? yes
/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
naymaeu@host.pl's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh nayma@host.pl"
and check to make sure that only the key(s) you wanted were added.

Jak sam widzisz powyżej od teraz możemy używać polecenia ssh nayma@host.pl i nie musimy podawać hasła do logowania.

Szybkie aliasy

Tak naprawdę jeśli mamy wiele serwerów i dziennie łączymy się kilka razy zdalnie z serwerem przez SSH to warto zadbać o dorobienie aliasów, dzięki którym jeszcze łatwiej i szybciej wykonamy połączenie. Można to zrobić na dwa sposoby. Pierwszy to dodanie skrótu do pliku ./.ssh/config poniższego kodu:

Host nayma
 HostName host.pl
 User nayma

Mając zainstalowane OHMYZSH możemy również dodać alias do pliku konfiguracyjnego zsh .zshrc poniższy alias:

alias sshnayma="ssh nayma@host.pl"

UWAGA !! Pamiętamy, że alias musi być ciągiem znaków bez spacji. W innym przypadku alias nie będzie działać.

Chciałbym na koniec bardzo podziękować Tomaszowi Szulborskiemu z Atthost.pl za pomoc i podpowiedź jak korzystać z polecenia ssh-copy-id.

Komentarze