SSH: Too many authentication failures for i autoryzacja za pomocą kluczy

Opublikowano: 05.04.2012 | Kategoria: Linux | Tagi: | Brak komentarzy »

Logując się na różne serwery poprzez SSH często korzystam z kluczy. Ustawienia dostępu do poszczególnych serwerów trzymam w pliku konfiguracyjnym klienta SSH ~/.ssh/config. Wygląda on w przybliżeniu tak:

Host 12.34.56.111
     user pucybut
     hostname serwer1.example.com
     port 22
     identityfile ~/.ssh/serwer1_example_com
Host 184.11.14.14
     user kataryniarz
     hostname serwer2.example.org
     port 2222
     identityfile ~/.ssh/serwer2_example_org

Wszystko pięknie działało, kolejne wpisy w konfiguracji działały, aż któregoś dnia serwer, na który loguję się za pomocą hasła, przywitał mnie komunikatem:

SkarMacBookPro: skar $ ssh skar@serwer_z_haslem.example.com
Received disconnect from 112.51.29.77: 2: Too many authentication failures for skar

Domyślnie logi serwera nic nie wykazywały. Po zmianie poziomu logowania ze standardowego na DEBUG (ewentualnie: "ssh -vvv skar@serwer_z_haslem.example.com"), okazało się, że klient próbuje autoryzować się wielokrotnie z wykorzystaniem wszystkich znanych jemu kluczy. Rozwiązanie? Dodać na końcu pliku ~/.ssh/config 3 linijki + 2 przy każdym hoście:

Host 12.34.56.111
     user pucybut
     hostname serwer1.example.com
     port 22
     identityfile ~/.ssh/serwer1_example_com
     RSAAuthentication yes
     PubkeyAuthentication yes
Host 184.11.14.14
     user kataryniarz
     hostname serwer2.example.org
     port 2222
     identityfile ~/.ssh/serwer2_example_org
     RSAAuthentication yes
     PubkeyAuthentication yes
Host *
  RSAAuthentication no
  PubkeyAuthentication no

Logownie bez hasła w ssh/sshfs

Opublikowano: 26.07.2008 | Kategoria: Linux | Tagi: , , , , | 2 komentarze »

Rozwiązanie oparte na wymianie klucza pomiędzy zaufanymi hostami. Proste i szybkie w implementacji, bardzo przydatne zwłaszcza, gdy korzystamy z sshfs (zobacz: Instalacja sshfs na Ubuntu).

1. Generujemy klucz RSA na maszynie lokalnej (kliencie):

ssh-keygen -t rsa

2. Eksportujemy wygenerowany klucz publiczny na zdalną maszynę (serwer):

ssh-copy-id -i .ssh/id_rsa.pub mojlogin@jakisserwer.pl

Zostaniemy poproszeni o podanie hasła i powinniśmy otrzymać podobny komunikat:

skar@skar-laptop:~$ ssh-copy-id -i .ssh/id_rsa.pub mojlogin@jakisserwer.pl
mojlogin@jakisserwer.pl password: 
Now try logging into the machine, with "ssh 'mojlogin@jakisserwer.pl'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

skar@skar-laptop:~$

3. Od tego momentu logujemy się na wskazany serwer bez hasła.

ssh mojlogin@jakisserwer.pl