Я пытался вводить команды с помощью 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 на сервереOK
plink.exe
не потрудится спросить, доверяете ли вы серверу или нет - он уже знает, что вы доверяетевозможно, поможет:
plink -auto_store_sshkey -batch 192.211.158.256 -l user -pw password command