web-dev-qa-db-ja.com

sshコマンドラインでサーバーのホストキーのフィンガープリントを指定する

sshコマンドライン(OpenSSH)を使用して、サーバーのホストキーフィンガープリントを指定できますか?

これはwinscp.comで可能です(例:-hostkey="ssh-rsa 2048 AA:BB:CC...etc)。

マニュアルページを数回読んだことがありますが、そこに明らかな説明を見逃してしまった場合はお詫び申し上げます。

ホストキーを自動的に受け入れるだけではなく、ユーザーにknown_hostsの更新を要求せず、コマンドラインでなんらかの形でホストキーを指定します。

15
payo

OpenSSHには、ホストキーのフィンガープリントを渡すコマンドラインオプションはありません。

一時ファイル(known_hostsと同じ形式)を使用して、ssh-o UserKnownHostsFileを使用して一時ファイルを使用させることもできますが、

ssh -o "UserKnownHostsFile my_temp_known_Host" Host.example.com

ssh-oの場合)および ssh_configUserKnownHostsFileの場合)のマニュアルページを参照してください。 。


StrictHostKeyChecking yesの使用も検討してください。


コマンドラインからのrsaキーフィンガープリントの自動受け入れ で提案されているように、それを可能にする小さなスクリプトを書くことができます。

#!/bin/bash

TEMPFILE=$(mktemp)
echo "$1" > $TEMPFILE

ssh -o "UserKnownHostsFile $TEMPFILE" ${@:2}

rm $TEMPFILE

スクリプトssh_known_Hostを呼び出す場合は、最初の引数としてキーを渡してスクリプトを使用できます。

ssh_known_Host 'github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==' [email protected]
16
Martin Prikryl