Назад | Перейти на главную страницу

Автоматическое сохранение ключа хоста сервера в кеше с помощью plink

Я пытался вводить команды с помощью plink для получения информации с моего внешнего сервера. Обратите внимание, что эти команды plink запускаются из двоичного файла, который не ожидает ввода от пользователя. Есть ли флаг, который позволит мне отменить это сообщение об ошибке и продолжить вывод программы?

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 **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
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)

Спасибо!

Попробуйте добавить в сценарий:

echo y | plink -ssh root@REMOTE_IP_HERE "exit"

Это потянет y характер через stdin к plink когда вы получите Хранить ключ в кеше? (да / нет) подсказка, позволяющая все дальше plink команды для прохождения без необходимости ввода пользователем. В exit команда закроет сеанс SSH после того, как он был установлен, позволяя следующее plink команды для запуска.

Вот пример сценария, который записывает время Unix внешнего сервера в локальный файл:

echo y | plink -ssh root@REMOTE_IP_HERE "exit"
plink -ssh root@REMOTE_IP_HERE "date -t" > remote_time.tmp

Справочник по конвейерной обработке: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html

Принято - ответ "приемлемый", но небезопасный. Лучшим способом было бы указать ключ хоста для подключения, чтобы предотвратить любые Человек посередине атака.

plink -hostkey aa:bb:cc... root@REMOTE_IP_HERE [...]

PuTTY и plink.exe совместно использовать один и тот же кеш «приемлемых ключей сервера» на хосте, на котором они установлены.

Итак, если ваш сценарий интерактивный (и, следовательно, ваше разочарование не слышно, когда вы нажимаете «y» или «n»), обходной путь - сначала попытаться установить соединение с PuTTY.

При этом:

  • Вы откроете PuTTY и сделайте вид, что запускаете интерактивный сеанс SSH на сервере
  • Вы получите диалоговое окно Windows с ключом, спрашивающим, хотите ли вы ему доверять.
  • Вы проверите представленный ключ, чтобы защитить MITM, затем нажмите OK
  • Отныне plink.exe не потрудится спросить, доверяете ли вы серверу или нет - он уже знает, что вы доверяете

возможно, поможет:

plink -auto_store_sshkey -batch 192.211.158.256 -l user -pw password command