Typ klucza PubkeyAcceptedKeyTypes i ssh-dsa

12

Próbuję przetestować kolejność, w jakiej klucze są wypróbowywane. Jeden z użytkowników systemu używa DSA, więc próbuję go przetestować jako opcję. Dostaję Bad key types.

$ ssh -vv -p 1522 [email protected]
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /Users/jwalton/.ssh/config
/Users/jwalton/.ssh/config line 2: Bad key types 'ssh-ed25519,ecdsa-sha2-nistp256,ssh-dsa,ssh-rsa'.

Zawęziłem to do ssh-dsa. Zgodnie z ssh_config(5) (faktycznie jest częścią sshd_config(5), ale jest wymieniony jako nowa ssh_configfunkcja w uwagach do wydania OpenSSH 7.0):

 The -Q option of ssh(1) may be used to list supported key types.

Wydaje mi się jednak, że nie mogę go uruchomić:

riemann::~$ ssh -Q 
/usr/local/bin/ssh: option requires an argument -- Q
riemann::~$ ssh -Q dsa
Unsupported query "dsa"
riemann::~$ ssh -Q ssh-dsa
Unsupported query "ssh-dsa"
riemann::~$ ssh -Q ed25529
Unsupported query "ed25529"
riemann::~$ ssh -Q ssh-ed25529
Unsupported query "ssh-ed25529"
riemann::~$ ssh -Q PubkeyAcceptedKeyTypes
Unsupported query "PubkeyAcceptedKeyTypes"

Jak skorzystać z ssh -Qopcji?

Jaki jest typ klucza dla ssh-dsa?

jww
źródło

Odpowiedzi:

14

Czytanie stron podręcznika powinno ci pomóc:

 -Q cipher | cipher-auth | mac | kex | key | protocol-version

Zapytania sshdotyczące algorytmów obsługiwanych dla określonej wersji 2. Dostępne funkcje to: cipher(obsługiwane szyfrowanie symetryczne), cipher-auth(obsługiwane szyfrowanie symetryczne, które obsługują uwierzytelnianie szyfrowane), mac(obsługiwane kody integralności wiadomości), kex(algorytmy wymiany kluczy), key(typy kluczy) i protocol-version(obsługiwane wersje protokołu SSH).

Dzwonienie ssh -Q keydaje Ci to, czego chcesz:

ssh -Q key
ssh-ed25519
[email protected]
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

Jest to nowa funkcja w openssh-7.0, więc pamiętaj, że nie musi działać w starszych wersjach.

ssh-dsatyp klucza to ssh-dssi jest domyślnie wyłączony w tej wersji.

Jakuje
źródło
Dzięki. W której stronie man byłeś?
jww
2
„Typ klucza ssh-dsa to ssh-dss i jest domyślnie wyłączony w tej wersji.” - Ok dzięki. Czy istnieje powód, dla którego jest domyślnie wyłączony? DSA2 ma 112 bitów bezpieczeństwa (odpowiednik 2048-bitowego RSA), więc nie jest słaby / zraniony jak moduły 512-bitowe lub 768-bitowe. Ponadto DSS obejmuje RSA i ECDSA, więc wyraźnie wyłącza DSA, a nie DSS.
jww
1
Nie ma tu stron podręcznika z Fedorą 23 beta; ale klawisz ssh -Q działa. Niestety klucze na moim komputerze nie są teraz obsługiwane.
mikebabcock
3
@ PavelŠimerda Jak to się wiąże z DNS? Masz na myśli DSA? To jest dokładnie taka PubkeyAcceptedKeyTypesopcja. Jeśli dodasz go do +ssh-dsswartości ssh_config , powinieneś być w stanie zaakceptować klucze DSA na serwerze. Na serwerze można używać HostKeyAlgorithmszgodnie z opisem w informacjach o wersji: openssh.com/txt/release-7.0
Jakuje
1
@DavidFaure To nie wyjaśnia, dlaczego to zostało wyłączone po prostu mówi, że był wyłączony, a jak go obsłużyć
Jakuje
0

Dla porównania, odpowiedź opublikowana w unix.stackexchange.com pomogła nam rozwiązać problem:

Nowa wersja openssh (7.0+) wycofała klucze DSA i domyślnie nie używa kluczy DSA (nie na serwerze ani kliencie). Klucze nie są już używane, więc jeśli możesz, zalecam używanie kluczy RSA tam, gdzie to możliwe.

Jeśli naprawdę potrzebujesz używać kluczy DSA, musisz jawnie zezwolić na ich użycie w konfiguracji klienta

PubkeyAcceptedKeyTypes + ssh-dss Powinno wystarczyć, aby wstawić ten wiersz do ~ / .ssh / config, jak mówi pełna wiadomość.

/unix//a/247614/39540

Meetai.com
źródło