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

Автоматическое сохранение ключа хоста сервера в кэше с помощью 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)

Спасибо!

решение1

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

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

Это перенаправит yперсонажа stdin, когда plinkвы получитеСохранить ключ в кэше? (да/нет)prompt, позволяя всем дальнейшим 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

решение2

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

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

решение3

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

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

При этом:

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

решение4

опция auto_store_sshkeyсуществует вКлинк, который является частьюКитти, он может пропустить запрос на сохранение ключа.

klink -auto_store_sshkey -batch 192.211.158.256 -l user -pw password 

Связанный контент