PSCP Не приймає хост-ключ


1

Я запускаю pscp у Windows із сценарію. Якщо я додам

echo y | pscp.exe...

Це працює. Однак я не можу змусити його прийняти хост-ключ

pscp.exe -hostkey aa:bb:cc...

Я також пробував

pscp.exe -hostkey "ssh-rsa 2048 aa:bb:cc..."

і це не працює. Кожен раз, коли я отримую таку помилку:

Fatal: Host key did not appear in manually configured list

Я неправильно зрозумів, як це працює? Це потрібно повністю автоматизувати, я не можу вручну додати ключ, оскільки він зберігається в контексті реєстру користувачів. Цей сценарій потрібно виконувати як заплановане завдання, використовуючи обліковий запис служби, можливо на кількох машинах.

Яке правильне використання -hostkey?

Щоб уникнути сумнівів, так, це правильний алгоритм і довжина ключа, і так, я використовую фактичний відбиток пальців, а не "aa: bb: cc ...", який був використаний для прикладу.


1
Так, відбиток пальців, що складається з 16 пар шістнадцяткових цифр, розділених двокрапками (як OpenSSH використовувався до 6,8 в 2015 році), є правильним значенням і працює для мене (використовуючи 0,67 і 0,70 на двох машинах). Якщо ви включаєте інші слова, розділені пробілом, такі як ssh-rsa 2048вони ігноруються (не завдають шкоди). Спробуйте додати -vі порівняти зареєстрований фактичний відбиток пальців із тим, який ви вказуєте.
dave_thompson_085

Тут сама проблема ... сервер, до якого я підключаюсь, був налаштований за допомогою RSA та DSA-ключів. Коли я підключаюсь до сервера без параметра -Hostkey, Putty Відображає ключ RSA як очікуваний ключ. Коли я підключаюсь до сервера за допомогою ключа RSA для -Hostkey, він підключається. Коли я підключаюсь до сервера за допомогою клавіші DSA для -Hostkey, він повертає Fatal Error.
kttii

Відповіді:


1

Це правильне використання:

C:\>plink -pw password -hostkey 01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16 username@hostname

І це працює:

C:\>plink -pw password -hostkey "RSA 2048 01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16" username@hostname

Але як заявив @ dave_thompson_085 ... програма, здається, ігнорує будь-які додаткові слова, розділені пробілом, оскільки це також працює:

C:\>plink -pw password -hostkey "ASDF 01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16 ASDF" username@hostname

Я виявив, що ключ повинен відповідати тому, що очікується в рукостисканні (знайдене не наданням опції -Hostkey):

C:\>plink hostname
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)

Ця команда відобразить, які ключі були створені на сервері:

$ ls -1 /etc/ssh/ssh_host_*.pub
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_key.pub
/etc/ssh/ssh_host_rsa_key.pub

Ці команди будуть відображати відбиток ключа (використовуючи імена файлів, показані в попередній команді вище):

$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
2048 01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16 /etc/ssh/ssh_host_rsa_key.pub (RSA)
$ ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key
1024 01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16 /etc/ssh/ssh_host_dsa_key.pub (DSA)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.