PubkeyAcceptedKeyTypes и тип ключа ssh-dsa


12

Я пытаюсь проверить порядок, в котором пробуются ключи. Один из пользователей системы использует DSA, поэтому я пытаюсь протестировать его в качестве опции. Я получаю Bad key types.

$ ssh -vv -p 1522 jwalton@192.168.1.11
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'.

Я сузил это до ssh-dsa. Согласно ssh_config(5) (на самом деле это часть sshd_config(5), но она указана как новая ssh_configфункция в заметках о выпуске OpenSSH 7.0):

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

Тем не менее, я не могу заставить его работать:

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"

Как использовать эту ssh -Qопцию?

Какой тип ключа для ssh-dsa?

Ответы:


14

Чтение справочных страниц должно помочь вам:

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

Запросы sshна алгоритмы, поддерживаемые для указанной версии 2. Доступны следующие функции: cipher(поддерживаемые симметричные шифры), cipher-auth(поддерживаемые симметричные шифры, поддерживающие аутентифицированное шифрование), mac(поддерживаемые коды целостности сообщений), kex(алгоритмы обмена ключами), key(типы ключей) и protocol-version(поддерживаемые версии протокола SSH).

Звонок ssh -Q keyдает вам то, что вы хотите:

ssh -Q key
ssh-ed25519
ssh-ed25519-cert-v01@openssh.com
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com

Это новая функция в openssh-7.0, поэтому помните, что она не должна работать в старых версиях.

ssh-dsaТип ключа ssh-dssи по умолчанию он отключен в этой версии.


Благодарю. На какой странице вы были?
jww

2
msgstr "тип ключа ssh-dsa - ssh-dss, и в этой версии он по умолчанию отключен." - Хорошо спасибо. Есть ли причина, по которой он отключен по умолчанию? DSA2 имеет 112-битную защиту (эквивалентную 2048-битному RSA), поэтому он не слабый / раненый, как 512-битные или 768-битные модули. Кроме того, DSS включает в себя RSA и ECDSA, поэтому он явно отключает DSA, а не DSS.
jww

1
Не на страницах руководства здесь с Fedora 23 beta; но ключ ssh -Q работает. К сожалению, ключи на моей машине не поддерживаются.
Майкбабкок

3
@ PavelŠimerda Как это связано с DNS? Вы имеете в виду DSA? Это именно то, что PubkeyAcceptedKeyTypesвариант для. Если вы добавите его в свой ssh_config со +ssh-dssзначением, вы сможете принимать ключи DSA на сервере. На сервере вы можете использовать, HostKeyAlgorithmsкак описано в примечаниях к выпуску: openssh.com/txt/release-7.0
Jakuje

1
@DavidFaure Он не объясняет почему, он был отключен, он просто говорит, что он был отключен и как с ним справиться
Jakuje

0

Для справки, опубликованный на unix.stackexchange.com ответ помог нам решить эту проблему:

В новой версии openssh (7.0+) ключи DSA устарели и по умолчанию ключи DSA не используются (не на сервере или клиенте). Ключи больше не используются, поэтому, если вы можете, я бы рекомендовал использовать ключи RSA, где это возможно.

Если вам действительно нужно использовать ключи DSA, вам нужно явно разрешить их в конфигурации клиента, используя

PubkeyAcceptedKeyTypes + ssh-dss Должно быть достаточно, чтобы поместить эту строку в ~ / .ssh / config, как вам пытается сказать подробное сообщение.

/unix//a/247614/39540

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.