У меня работает Linux сервер sshd
.
Как предоставить hostkey
с сервера Linux на plink.exe
в Windows?
например: для бега plink.exe -ssh -batch -m plink.tmp -hostkey ...
Вы можете использовать сам plink для получения ключа хоста:
c:\> plink -v -batch host
Connecting to 1.2.3.4 port 22
We claim version: SSH-2.0-PuTTY_Release_0.68
Server version: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1
Using SSH protocol version 2
Doing ECDH key exchange with curve Curve25519 and hash SHA-256
Server also has ssh-ed25519/ecdsa-sha2-nistp256 host keys, but we don't know any of them
Host key fingerprint is:
ssh-rsa 2048 c6:e7:49:ec:07:5b:30:02:d9:57:dd:7f:39:e3:f3:35
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA-256 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA-256 server->client MAC algorithm
Disconnected: Unable to authenticate
Параметр -v
(подробный) требуется для дополнительной информации, -batch
гарантирует, что plink выходит напрямую без входа в систему (если также не указаны имя пользователя и пароль).
На выходе вы найдете Host key fingerprint is:
, за которым следует отпечаток пальца в шестнадцатеричном формате, в данном случае:
c6:e7:49:ec:07:5b:30:02:d9:57:dd:7f:39:e3:f3:35
Это строка, которую вы должны предоставить plink -hostkey
чтобы подтвердить, что целевой хост на самом деле является хостом, за который он претендует.
Вы можете получить отпечаток ключа от самого целевого хоста, запустив:
$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /etc/ssh/ssh_host_rsa_key.pub (RSA)
Более поздние версии ssh-keygen
по умолчанию SHA-256, поэтому вы можете получить исходное поведение MD5 с помощью:
$ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_rsa_key.pub
2048 MD5:00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /etc/ssh/ssh_host_rsa_key.pub (RSA)
Просто сними MD5:
префикс. Отрегулируйте путь к ключу в зависимости от значения вашего HostKey
директивы в /etc/ssh/sshd_config
.