Mam konfigurację serwera 12.10 na maszynie wirtualnej z ustawionym mostkiem sieci (w zasadzie będzie to komputer podłączony do mojego przełącznika).
Zainstalowałem opensshd przez apt-get
i byłem w stanie połączyć się z serwerem używając putty z moją nazwą użytkownika i hasłem.
Następnie postanowiłem spróbować użyć uwierzytelniania za pomocą klucza publicznego / prywatnego. Zrobiłem następujące:
- Wygenerowano klucze za pomocą PuttyGen.
- Przeniesiono klucz publiczny do
/etc/ssh/myusername/authorized_keys
(korzystam z zaszyfrowanych katalogów domowych). Skonfiguruj
sshd_config
tak:PubkeyAuthentication yes AuthorizedKeysFile /etc/ssh/%u/authorized_keys StrictModes no PasswordAuthentication no UsePAM yes
Kiedy łączę się przy użyciu putty lub WinSCP, pojawia się komunikat o błędzie Brak dostępnych obsługiwanych metod uwierzytelniania (serwer wysłał klucz publiczny).
Jeśli działam sshd
w trybie debugowania, widzę:
PAM: initializing for "username"
PAM: setting PAM_RHOST to "192.168.1.7"
PAM: setting PAM_TTY to "ssh"
userauth-request for user username service ssh-connection method publickey [preauth]
attempt 1 failures 0 [preauth]
test whether pkalg/pkblob are acceptable [preauth[
Checking blacklist file /usr/share/ssh/blacklist.RSA-1023
Checking blacklist file /etc/ssh/blacklist.RSA-1023
temporarily_use_uid: 1000/1000 (e=0/0)
trying public key file /etc/ssh/username/authorized_keys
fd4 clearing O_NONBLOCK
restore_uid: 0/0
Failed publickey for username from 192.168.1.7 port 14343 ssh2
Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]
do_cleanup [preauth]
monitor_read_log: child log fd closed
do_cleanup
PAM: cleanup
Dlaczego tak się dzieje i jak mogę to naprawić?
Odpowiedzi:
Problem rozwiązany:
Wygląda na to, że wystąpił problem z moim plikiem klucza publicznego. PuttyGen utworzy plik klucza publicznego, który wygląda następująco:
Jednak to nie zadziała, więc musisz otworzyć klucz w PuttyGen, a następnie skopiować go stamtąd (powoduje to, że klucz ma odpowiedni format i 1 linię):
Wklej to do,
authorized_keys
to powinno działać.źródło
authorized_keys
w vi i usunąłem wszystkie zerwania linii i zadziałało./etc/ssh/sshd_config
plik.PasswordAuthentication
iChallengeResponseAuthentication
nayes
.3a. Uruchom ponownie ssh
/etc/init.d/ssh restart
.LUB
3b. lepiej użyj
service sshd restart
źródło
PasswordAuthentication
sięno
.ChallengeResponseAuthentication
, rozwiązało to problem na Debianie 10.0Tylko wskazówka, mam nadzieję, że może pomóc komuś innemu z bólami głowy, które miałem. F21 ma rację, że musisz skopiować klucz z okna PuTTYGen zamiast zapisywać plik, ale po skopiowaniu sposób wklejenia może mieć znaczący wpływ na to, czy klucz zadziała, czy nie. Niektórzy redaktorzy zmieniają tekst podczas wklejania lub robią coś z nowymi wierszami lub coś, co powoduje, że plik autoryzowanych_kluczy jest nieprawidłowy.
To, co według mnie jest najmniej prawdopodobne, do złamania, to echo pełnego łańcucha i przekierowanie wyjścia do pliku. Kliknięcie prawym przyciskiem myszy w PuTTY, aby wkleić ciąg klucza do wiersza poleceń, działa w następujący sposób (w powyższym przykładzie):
Skończysz z tym:
Kolejną zaletą tej metody jest to, że możesz dodać wiele kluczy w ten sposób, używając >>, aby dodać zamiast>, aby zastąpić, np .:
Mam nadzieję, że komuś pomoże.
źródło
Używaliśmy już odpowiedniego rodzaju klucza (ppk zamiast pem) ..
W naszym przypadku wystąpił problem z uprawnieniami do plików dla kluczy autoryzowanych w folderze użytkownika serwera. To musi być -rw-r - r-- ... To było -rw-rw-r--
ssh jest bardzo wybredny jeśli chodzi o perms plików.
źródło
ROZWIĄZANY:
źródło
W moim przypadku przyczyną było to, że plik klucza prywatnego (.ppk) został usunięty w agencie uwierzytelniającym Putty, tj. Pageant. Właśnie zaktualizowałem go do Pageant, a potem połączenie działało idealnie.
źródło