RACインストール用にOracleノードのインストールを高速化しようとしています。これには、sshをインストールして構成し、パスワードの入力を求めないようにする必要があります。
問題は:最初の使用時に、
RSA key fingerprint is 96:a9:23:5c:cc:d1:0a:d4:70:22:93:e9:9e:1e:74:2f.
Are you sure you want to continue connecting (yes/no)? yes
それを回避する方法はありますか、またはすべてのサーバーからすべてのサーバーに少なくとも1回は手動で接続する運命にありますか?
2019年12月の更新:
Chris Adamsが以下で指摘しているように、この回答が書かれてから6.5年の間に、Openshにかなり大きな変更があり、以下の元のアドバイスよりもはるかに安全な新しいオプションがあります。
* ssh(1): expand the StrictHostKeyChecking option with two new
settings. The first "accept-new" will automatically accept
hitherto-unseen keys but will refuse connections for changed or
invalid hostkeys. This is a safer subset of the current behaviour
of StrictHostKeyChecking=no. The second setting "off", is a synonym
for the current behaviour of StrictHostKeyChecking=no: accept new
Host keys, and continue connection for hosts with incorrect
hostkeys. A future release will change the meaning of
StrictHostKeyChecking=no to the behaviour of "accept-new". bz#2400
したがって、StrictHostKeyChecking no
ファイルにssh_config
を設定する代わりに、StrictHostKeyChecking accept-new
を設定します。
StrictHostKeyChecking no
ファイルに/etc/ssh/ssh_config
を設定します。これは、サーバー上のすべてのユーザーが使用するグローバルオプションになります。または、~/.ssh/config
ファイルに設定します。このファイルは、現在のユーザーのみのデフォルトになります。または、コマンドラインで使用できます。
ssh -o StrictHostKeyChecking=no -l "$user" "$Host"
これが man ssh_config
からどのように機能するかについての説明は次のとおりです(または この最新バージョン を参照):
StrictHostKeyChecking
このフラグが「はい」に設定されている場合、sshはホストキーを
$HOME/.ssh/known_hosts
fileに自動的に追加せず、そのホストへの接続を拒否しますホストキーが変更されました。これにより、トロイの木馬攻撃に対する最大限の保護が提供されますが、/etc/ssh/ssh_known_hosts
fileのメンテナンスが不十分である場合や、新しいホストへの接続が頻繁に行われる場合は、煩わしい場合があります。このオプションにより、ユーザーはすべての新しいホストを手動で追加する必要があります。このフラグが「いいえ」に設定されている場合、sshは自動的に新しいホストキーをユーザーの既知のホストファイルに追加します。このフラグが「ask」に設定されている場合、ユーザーが本当にやりたいことを確認した後にのみ、新しいホストキーが既知のホストファイルに追加され、sshHostキーが変更されたホストへの接続を拒否します。既知のホストのホストキーは、すべての場合に自動的に検証されます。引数は、「はい」、「いいえ」、または「質問」でなければなりません。デフォルトは「質問」です。
ssh-keyscan
-SSH公開鍵を収集します
接続するホストのリストがすでにわかっている場合は、次のコマンドを発行できます。
ssh-keyscan Host1 Host2 Host3 Host4
-H
オプションを指定すると、sshのデフォルトのように結果をハッシュ化できます。
また、-t keytype
was keytype is dsa
、rsa
、またはecdsa
を指定できます。デフォルトの代わりに取得するキー。
ssh-keyscan
を実行すると、既知のホストファイルが事前に入力されているため、sshで新しいキーを追加する許可を求める必要はありません。
各サーバーのknown_hostsにフィンガープリントを追加できます。シングルユーザーの場合:
cat ~/.ssh/known_hosts
echo "$SERVER,$PORT ssh-rsa $SERVER_KEY_FINGERPRINT" >> ~/.ssh/known_hosts
HostKeyCheckingは無視してください。このために私は使用します:
ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null [email protected]
最初の接続の前に、ホスト/サーバーのフィンガープリントを.ssh/known_hosts
に追加します。これがより安全な方法です。
試す前に次のスニペットを実行してください。
mkdir -p ~/.ssh
echo "Host *" > ~/.ssh/config
echo " StrictHostKeyChecking no" >> ~/.ssh/config
ps:運用サーバーには厳密に適用されません。ManInMiddleに注意してください
試す前に次のスニペットを実行してください。
mkdir -p ~/.ssh && echo "Host *" > ~/.ssh/config && echo " StrictHostKeyChecking no" >> ~/.ssh/config
ps:運用サーバーには厳密に適用されません。ManInMiddleに注意してください
私は1回限りのタイプのTimの回答が好きですが、これが定期的に接続する予定のホストである場合は、〜/ .ssh/configにエントリを作成します(ファイルが存在しない場合は作成します)。
# this example shows wildcard for IP
# you can even use more than one wildcard 10.0.*.* for example
Host 192.168.56.*
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
# you can even alias it, which is really useful when scp'ing/rsyncing foo:/path/to/remote
Host foo
HostName foo-long-192-10-135-55.hostname.not-going-to-remember.doh
StrictHostKeyChecking no
UserKnownHostsFile /dev/null