回答:
このプロンプトでは、 ssh
使用しません 標準入力 & 標準出力 streams - プロンプトがリモートコマンドの入出力と混同されないようにします。 (ランニングを想像してみてください ssh host cat something.tar | tar x
そして突然 tar x
その入力のゴミについて文句を言う。)
代わりに、 ssh
特別な装置を開く /dev/tty
これは常にその「制御端末」を指し、そこにプロンプトを書き、そこから答えを読みます。
特にあなたの問題のために、OpenSSHはと来ます ssh-keyscan
、一度に多くのサーバーの公開鍵を取得するためのツール。
ssh-keyscan host1 host2 host3 >> ~/.ssh/known_hosts
(私があなたが意味したのかどうかわからない known_hosts
または実際に必要 authorized_keys
ここに。)
一般的なケースでは、 expect
utilityは、通常はttyを介して入出力を行うプログラムを自動化するために使用できます。
known_hosts
、すみません。私はこれがに関係しているかもしれないと疑った/dev/tty
説明を明確にし、そして非常に包括的な答えを得て、特別な場合と一般的な場合の両方に対処してくれてありがとう。