plinkを使用してキャッシュにサーバーホストキーを自動保存する


21

私は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)

ありがとうございました!


本当の問題は、gitがplinkに入力を適切に渡さないか、逆にplinkが適切に入力を受け取らないことです。git clone「git bash」などで起動すると、入力(Y / n)がbashプロンプトに入り、bashは通常で応答しbash: y: command not foundます。
-andrybak

kittyのプロジェクトの klinkを使用できます。これがパテの分岐点です。キーがあります:-auto-store-sshkey。
paxlo

回答:


20

スクリプトの先頭に次を追加してみてください:

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

これyにより、キャッシュにストアキーを取得stdinするplinkときにキャラクターがパイプされますか?(y / n)プロンプト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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.