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?

2 ответа2

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 и в этой версии он по умолчанию отключен.

0

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

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

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

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

https://unix.stackexchange.com/a/247614/39540

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .