Chcę skonfigurować tunel ssh do serwera mysql, który jest na komputerze z maszyną wirtualną. Również tunel musi działać, jeśli maszyna zostanie ponownie uruchomiona.
Powiedzmy, że A to komputer z oprogramowaniem linux. B - maszyna wirtualna na komputerze A.
MySQL znajduje się w B.
C - to maszyna wirtualna na komputerze A, która chce połączyć się z MySQL w B.
Teraz ten artykuł: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
Próbuję skopiować klucz publiczny na zdalny serwer. Chyba muszę go skopiować na komputer A.
ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
Teraz próbowałem wprowadzić hasło pliku id_rsa.pub.bak. Zaprzeczył.
Potem widzę, że używa klucza w /home/[user]/.ssh/id_rsa, który jest inny niż klucz publiczny, który próbuję skopiować, oczywiście klucz prywatny jest inny, ale mam na myśli, że kopiuję klucz publiczny innego prywatny klucz. Więc próbowałem użyć tego hasła. Również odmówiono.
Jak mogę debugować, dlaczego hasło jest odrzucane?
Aktualizacja
Na podstawie komentarzy stworzyłem nowy plik publiczny o nazwie id_rsa.pub, w którym wszystko jest teraz w jednej linii
i uruchom i nadal pojawia się błąd.
ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
Aktualizacja
Sprawdzono uprawnienia do folderu .ssh i pliku autoryzowanych_kluczy na komputerze A - są to 700 i 600, więc komentarz mówi, że są dobre.
Aktualizacja
Próbowałem ustawić uwierzytelnianie hasła tak na komputerze i ponownie uruchomić usługę. Ponowne uruchomienie, ponieważ odpowiedź nie zadziałała, napisano, że sshd nie został rozpoznany, więc uruchomiłem ponownie używając:
sudo /etc/init.d/ssh restart
Następnie spróbowałem ponownie na komputerze C, aby skopiować na komputer A.
ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v
i wciąż to samo:
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
Jeśli idę ręcznie skopiować klucz do uprawnionych kluczy, widzę, że klucz publiczny już istnieje, taki sam, który chcę skopiować. Zapytałem mojego współpracownika, który powiedział, że go nie skopiował. Więc nawet nie rozumiem, jak może tam być.
Ok, jeśli tak, byłoby dobrze, ale pozostanie tam nie pozwala mi połączyć się z ssh bez wpisywania hasła. Ale udało mi się połączyć z wprowadzeniem hasła. Więc coś jest nadal wyraźnie nie tak. A klucz, który próbuję skopiować, to puste hasło. Kiedy połączyłem się z ssh - wprowadziłem hasło, które nie było puste.
Ten sam klucz publiczny nie może zaakceptować pustego hasła i niepustego hasła, co ma sens. Ale dlaczego klucz publiczny, który próbuję przesłać, jest taki sam, jak klucz w pliku Author_keys, jeśli hasła są różne? Nie sprawdzałem każdej postaci, ale jest mało prawdopodobne, aby klucze były tak podobne, że początek i koniec byłyby takie same, nawet jeśli hasło jest inne.
id_rsa
od? Spodziewałbymssh-copy-id
się niepowodzenia z komunikatem o błędzie w sposób, w jaki go nazwiesz, ponieważ oczekuje on pliku kończącego się na.pub
. Jak twój koniec z.bak
tym prawdopodobnie skorzystałbyid_rsa.pub.bak.pub
.Odpowiedzi:
Musisz się zalogować, aby skopiować klucz, nie masz dostępu do zdalnego komputera (wyłączone uwierzytelnianie nieprawidłowego klucza i hasła):
Ponownie włącz uwierzytelnianie passwd w / etc / ssh / sshd_config:
Następnie uruchom ponownie usługę:
Skopiuj swój klucz publiczny:
Spróbuj zalogować się ponownie, hasło nie powinno być wymagane.
Następnie wyłącz uwierzytelnianie za pomocą hasła.
źródło
Permission denied (publickey)
jest zdalnym serwerem SSH mówiącym: „Akceptuję tylko klucze publiczne jako metodę uwierzytelniania, odejdź”.To jest twoje główne wyzwanie: dostanie się do zdalnego systemu. Gdy to zrobisz, możesz przesłać swój klucz:
ssh-copy-id
- pozwoli ci określić inny klucz, jeśli na przykład jesteś w trakcie wymiany starego.~/.ssh/authorized_keys
aby ręcznie dodać klucz.źródło
W końcu znalazłem problem.
Właściwie nie musiałem kopiować klucza publicznego. Ten sam klucz publiczny jest dla obu kluczy prywatnych - z hasłem i bez hasła. Myślałem, że mam klucz prywatny bez hasła, ale tak naprawdę nie miałem. Miałem tylko .ppk bez hasła. To była brak komunikacji. Więc współpracownik stworzył klucz prywatny bez hasła i teraz mogłem się zalogować używając ssh bez hasła. Czytałem, że posiadanie bez hasła jest złe, ale współpracownik mówi, że jest w porządku. Potrzebowałem bez hasła, ponieważ muszę uruchamiać skrypt powłoki przy ponownym uruchomieniu - chcę uruchomić autossh po ponownym uruchomieniu komputera.
Tak więc tym razem rozwiązaniem jest - jeśli chcesz się zalogować bez hasła - sprawdź, czy naprawdę twój klucz prywatny nie ma hasła.
źródło