ルートのKnown_hostsファイルに指定されたホストを追加するPerlプログラムを作成しています。このプログラムはAIXとLinuxで実行されますが、Solarisでは実行されません。残念ながら、それに対応するコマンドが見つかりません。
サンプルライン:
system("ssh-keyscan -H www.myserver.domain >> /.ssh/known_hosts");
出力:
ssh-keyscan:無効なオプション--H使用法:ssh-keyscan [-v46] [-pポート] [-Tタイムアウト] [-fファイル] [ホスト|ポート] アドレス一覧] [...]
アップデート1:
次のコマンドを試しましたが、依然として真偽かどうかを尋ねます。
system("ssh-keyscan -t rsa www.myserver.domain >> /.ssh/known_hosts");
アップデート2: Perl外部出力:
# ssh-keyscan -t rsa www.myserver.domain >> /.ssh/test123.text
# www.myserver.domain SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3
# less test123.text
# www.myserver.domain ssh-rsa KEY
# ssh www.myserver.domain
# The authenticity of host 'www.myserver.domain (IP)' can't be established. RSA key fingerprint is FINGERPRINT. Are you sure you want to continue connecting (yes/no)?
答え1
Solaris 10/11のssh-keyscanのマニュアルページを見ると、このスイッチはサポートされていないようです。
引用:ssh-keyscan のマニュアルページssh-keyscan [-v46] [-p port] [-T timeout] [-t type]
[-f file] [-] [host... | addrlist namelist] [...]
ssh-keyscan <hostname>
キーを検索してファイルに書き込むことができると思います~/.ssh/known_hosts
。この方法はまだ機能しますが、次のようにホストが使用するすべての名前を1行に表示するわけではありません。
hostname1, hostname1.fqdn.com .....
したがって、生成されたファイルをいくつかのクリーンアップする必要があるかもしれませんknown_hosts
。
ホストの真正性
ファイルにまだ存在しないホストをスキャンできないcatch 22と同じ状況が発生した場合known_hosts
:
ホスト「www.myserver.domain(IP)」の信頼性を確認できません。 RSAキー指紋はFINGERPRINTです。引き続き接続しますか(Y/N)?
次を一時的に無効にすることでこの問題を解決できますStrictHostKeyChecking
。
$ cat ~/.ssh/config
...
StrictHostKeyChecking no
...
その後、コマンドを再実行してくださいkeyscan <host> ...
。完了したらStrictHostKeyChecking
から削除する必要があります~/.ssh/config
。