Tymczasowo wyłącz uwierzytelnianie klucza publicznego ssh od klienta

37

Czy istnieje sposób na tymczasowe wyłączenie uwierzytelniania za pomocą klucza publicznego podczas ssh'ing i zamiast tego używać uwierzytelniania za pomocą hasła?

Obecnie chcę uzyskać dostęp do zdalnego serwera, ale używam innego laptopa, nie mojego.

Przeglądając ten link , odkryłem, że polecenie ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no host1.example.orgnie działa wszędzie. I tak, to nie działa dla mnie. Używam: OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 marca 2012

Edycja: Próbowałem także pisać, ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no ale nadal mam „Odmowa dostępu (publickey)”.

Czy jest więc określona konfiguracja na zdalnym serwerze, aby to polecenie działało? Lub kiedy to polecenie zadziała zgodnie z oczekiwaniami?

Wielkie dzięki za porady.

Nsukami _
źródło
30
Jeśli ponownie użyjesz linku, ktoś stwierdził, że twoja metoda nie działa, ale tak się ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no
stało
@NikW Wielkie dzięki, może powinienem o tym wspomnieć, wypróbowałem również zaproponowane przez ciebie polecenie, nadal mam opcję „Odmowa zezwolenia (publickey)”.
Nsukami _
1
Właśnie trafiłem w ten problem, ponieważ mój laptop miał TONĘ kluczy, a ssh wypróbował je wszystkie, a ja zostałem odrzucony nawet przed szansą na wprowadzenie hasła. Dzięki, że pytasz.
Dallaylaen,
3
@NickW Jeśli podasz swój komentarz jako odpowiedź, głosuję za nim.
labirynt

Odpowiedzi:

9

To brzmi jak problem z konfiguracją po stronie serwera.

Jeśli serwer zezwala zarówno na uwierzytelnianie za pomocą klucza publicznego, jak i hasła, to nawet jeśli spróbujesz połączyć się bez pliku klucza prywatnego na kliencie, powinien poprosić o podanie hasła.

Jeśli "Permission denied (publickey)" pojawia się komunikat o błędzie, oznacza to, że uwierzytelnianie hasła nie jest obsługiwane na serwerze.

Nie widząc pliku / etc / sshd_config, trudno jest wiedzieć, ale zgaduję, że musisz upewnić się, że istnieje następujący wiersz:

PasswordAuthentication yes

Zrestartuj serwer ssh, a kiedy łączysz się z klientem, powinieneś zostać poproszony o podanie hasła, jeśli nie ma klucza prywatnego lub jeśli klucz prywatny nie pasuje do klucza publicznego na serwerze.

Bardziej bezpieczną alternatywą dla tego byłoby oczywiście skopiowanie klucza prywatnego na używanego laptopa lub wygenerowanie nowego klucza prywatnego do użycia na tym laptopie i dodanie klucza publicznego do .ssh/authorized_keys

wersja 25
źródło
6

Po prostu stwórz pusty plik identyfikatora.

touch $HOME/.ssh/blank

Jeśli zostawisz pozwolenie 640 lub 644, ssh będzie narzekać, że uprawnienia nie są wystarczająco bezpieczne i nie będą z niego korzystać. Jeśli przeskoczysz na 600, wyświetli się 3 razy hasło i zakończy się niepowodzeniem, ponieważ nie ma hasła. Więc zostaw to 640 lub 644.

Następnie, gdy używasz ssh, użyj tego polecenia.

ssh -i $HOME/.ssh/blank servername-or-ip

Możesz użyć .ssh / config i ustawić wpis hosta, aby nie używał klucza, ale jest to mniej tymczasowe lub możesz utworzyć aliasy dla serwera i nokey serwera, ale robi się to długo i jest trudne do utrzymania.

Shane
źródło
5
-i /dev/nulldziała również i nie wymaga sprawdzania uprawnień.
svvac,
Pliki puste / zerowe nie działają, sshmówi Load key "/dev/null": invalid format, to i tak używa innych skonfigurowanych kluczy, a następnie nie może się zalogować z powodu zbyt wielu błędów uwierzytelnienia.
Malvineous
Dla mnie to nie działało. Może moje poświadczenia były przechowywane w breloczku do gnoma.
Jarosław Nikitenko