Как заставить SSH дать ключ RSA вместо ECDSA?

Существует еще один расширенный dd, называемый dcfldd, который делает много забавных вещей, поскольку это вы запрашиваете для http://dcfldd.sourceforge.net/

sudo apt-get install dcfldd Вместо dd вы напишите dcfldd
1
задан 2 August 2017 в 13:19

5 ответов

Удалив алгоритмы ECDSA из конфигурационной переменной HostKeyAlgorithms.

ssh -o HostKeyAlgorithms=ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss user@server

Я просто удалил все алгоритмы ECDSA из списка по умолчанию.

Вы можете, конечно, поместите это в свой .ssh/config для этой машины:

Host: server
    HostKeyAlgorithms ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss
14
ответ дан 25 May 2018 в 11:45

Да, OK переключитесь на ECDSA в ближайшее время, но тем временем попробуйте это:

ssh -o HostKeyAlgorithms=ssh-rsa -o FingerprintHash=md5 user@example.com
3
ответ дан 25 May 2018 в 11:45
  • 1
    Это дает «Плохая конфигурация: fingerprinthash» в моей системе (OpenSSH_6.6.1p1). – Soren Bjornstad 5 November 2016 в 18:46
  • 2
    @SorenBjornstad, опция FingerprintHash не нужна, просто оставьте эту целую часть. – Lucas 7 January 2017 в 01:54

Я добавил эту строку

HostKeyAlgorithms ssh-rsa

в

/etc/ssh/sshd_conf

, и она отлично работает в этой версии.

OpenSSH_7.7p2 ubuntu-4ubuntu2.2
1
ответ дан 25 May 2018 в 11:45

Просто для того, чтобы улучшить ответ на перепалку, в котором есть мертвая ссылка для поиска старого списка алгоритмов.

Сначала определите список алгоритмов. Чтобы найти старый список, используйте ssh -vv:

ssh -vv somehost

И ищите 2 строки, такие как «алгоритмы ключей хоста: ...», где первым представляется предложение сервера, а второе является клиентом. Или, чтобы выбрать эти 2 строки автоматически, попробуйте это (и выйдите из ctrl + d):

ssh -vv somehost 2>&1 | grep "host key algorithms:"

Теперь отфильтруйте его ... вы должны удалить все dss / dsa, так как они долгое время устарели, и вы также хотели удалить ecdsa (как и я), например, если бы у вас было:

ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

В итоге вы должны:

ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Now отредактируйте свой конфиг. Для вашей собственной конфигурации:

vim ~/.ssh/config

Для системной конфигурации:

sudo vim /etc/ssh/ssh_config

Добавить новую строку либо глобально:

HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

, либо для определенного хоста (не идеально для конфигурации сервера):

Host somehost
    HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Вместо введенного списка вставьте список, который вы получили из выхода ssh -vv, не включив «алгоритмы главного ключа: "часть.

0
ответ дан 25 May 2018 в 11:45

Или, если вы настаиваете на использовании ключа RSA-ключа, вы можете набрать ssh-keygen -t rsa на сервере, который вы собираетесь использовать для SSH.

Это должно генерировать общедоступные и закрытые ключи RSA в разделе «~ / .ssh / id_rsa. Теперь все, что вам нужно сделать, - скопировать открытый ключ в $HOME/.ssh/authorized_keys всех тех машин, из которых вы собираетесь на ssh, на машину, на которой вы создали ключи RSA.

А потом расслабьтесь и расслабьтесь!

-5
ответ дан 25 May 2018 в 11:45
  • 1
    Вы понимаете, что речь идет не о ключе клиента, а о ключе сервера? – 0xC0000022L 30 July 2015 в 01:47

Другие вопросы по тегам:

Похожие вопросы: