Рейтинг:0

Why is this SSH handshake failing?

флаг sa

The server logs this

2021-12-07 21:57:29.889029102  Server listening on 0.0.0.0 port 2222.
2021-12-07 21:57:29.889033114  Server listening on :: port 2222.
2021-12-07 21:57:30.635958078  Connection from 172.17.0.1 port 56406 on 172.17.0.3 port 2222 rdomain ""
2021-12-07 21:57:30.636572922  kex_exchange_identification: Connection closed by remote host
2021-12-07 21:57:30.637124145  Connection closed by 172.17.0.1 port 56406
2021-12-07 21:57:30.653516584  Connection from 172.17.0.1 port 56408 on 172.17.0.3 port 2222 rdomain ""
2021-12-07 21:57:30.656432406  Unable to negotiate with 172.17.0.1 port 56408: no matching host key type found. Their offer: ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 [preauth]

This shows the client offers ecdsa-sha2-nistp384

The server configuration is as follows

> cat /etc/ssh/sshd_config | grep -v "#" | grep -v -e '^$'
AuthorizedKeysFile  .ssh/authorized_keys
PasswordAuthentication yes
AllowTcpForwarding no
GatewayPorts no
X11Forwarding no
PidFile /config/sshd.pid
Subsystem   sftp    /usr/lib/ssh/sftp-server -u 022
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
HostKeyAlgorithms ecdsa-sha2-nistp384
KexAlgorithms diffie-hellman-group-exchange-sha1
MACs hmac-sha2-512,hmac-sha2-256,hmac-sha1
LogLevel VERBOSE

This shows that HostKeyAlgorithms ecdsa-sha2-nistp384 is enabled on the server. Why can't they perform the handshake?

флаг vn
На сервере существует `/etc/ssh/ssh_host_ecdsa_key`? Это 384 бита (`ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key`)? Разве это не доступно группе/всему миру (`ls -l /etc/ssh/ssh_host_ecdsa_key`)
Brandon Xavier avatar
флаг us
Вы также можете попробовать добавить немного детализации на стороне клиента, чтобы увидеть фактические детали того, что происходит. Например: `sftp -vvv ваши-обычные-параметры. . .`. Чем больше v вы добавляете, тем больше деталей получаете, хотя, по моему опыту, больше 2 или 3 — это излишество.
флаг sa
@MarkWagner, ты прав, ключи всего 256 бит. Итак, если я хочу, чтобы этот сервер поддерживал 256/384/521-битные ключи, нужно ли мне иметь три отдельных ключа в каталоге `/etc/ssh`? Есть ли соглашение об именах, которому я должен следовать?
флаг vn
`/etc/ssh/ssh_host_ecdsa_key` `/etc/ssh/ssh_host_ed25519_key` и `/etc/ssh/ssh_host_rsa_key` являются именами по умолчанию, но вы можете называть ключи как хотите и добавлять их в файл `sshd_config`, используя `HostKey blah `.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.