
外部サーバーから情報を取得するために、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
キーをキャッシュに保存しますか? (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
答え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
サーバーを信頼するかどうかを尋ねる必要はありません。サーバーはすでに信頼していることを知っています。