コマンドラインからのrsaキーフィンガープリントの自動受け入れ


15

私が試したyes | ssh root@10.x.x.xRSAキーのフィンガープリントを受け入れるようにしようとするが、それでも私は必ず私が接続したいんだ場合はプロンプトが表示されています。これを自動化する方法はありますか?

回答:


8

これらをbashスタートアップファイルなどに追加します。

 #
 #  ssh + scp without storing or prompting for keys.
 #
 function sshtmp
 {
     ssh -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
              "$@"
 }
 function scptmp
 {
     exec scp -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
         "$@"
 }

次に使用sshtmp、またはscptmpの代わりに、sshscp

この道を進んでも、ホストキーが変更されてセキュリティが失われるという警告は表示されません。


4
おかげでssh -o "StrictHostKeyChecking no" root@10.x.x.x私のために働いた
VenomFangs

16
これはどうですか?問題は、キーを無視するのではなく、自動的に受け入れることでした!ここで質問と回答が行われた場合、「キーを自動的に受け入れる」という実際の質問への回答を見つけるにはどうすればよいですか?反対票を投じるのが嫌いですが、来たる人々、これはスタック交換がそうあるべきではない方法です!
JohnnyB、2015年

@JohnnyBが私の答えを見てください。これは最もクリーンなソリューションではありませんが、実際にはキーを自動的に受け入れることができます
RDP

13

OpenSSH 7.6ではStrictHostKeyChecking=accept-new、まさにこの目的のための新しい設定が導入されています。

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 "n", 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".

OpenSSH 7.6リリースノート


10

既知のホストキーでのプログラムによるSSHの使用

プログラムで使用でき、中間者攻撃を回避したい場合は、コマンドを使用して既知のフィンガープリントを取得することをお勧めしますssh-keyscan。例:

$ ssh-keyscan -t rsa,dsa github.com 2>/dev/null
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==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

次に、スクリプトを偽造して一時ファイルに保存し、UserKnownHostsFileオプションを使用できます。以下の例はスクリプトであり、呼び出すことができますssh_github

#!/bin/bash

HOSTKEY='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==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+                                                                                                                                      PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+    2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=='

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

ssh -o "UserKnownHostsFile $TEMPFILE" $@

rm $TEMPFILE

これにより、ssh_github代わりに実行することができ、スクリプトを配置するファイルsshがない場合でも接続されknown_hostsます。


0

私は次のように使用します: 'ssh -o StrictHostKeyChecking = no user @ host'、これはpssh: 'pssh -O StrictHostKeyChecking = no -h list.text -l user -A -i "cmd"'でも使用できます

よろしく、


これは私にとってはうまくいきました、反対票が投じられた理由はありますか?OpenSSH 7.6以降も必要
Xenocide8998

-3

-yオプションを使用できます:つまり、

ssh -y root@10.x.x.x

-y 不明な場合は常にリモートホストキーを受け入れる


サーバー障害へようこそ!使用してくださいMarkdownを正しく入力し、設定するためにあなたの記事を自分の読みやすさを向上させるために、および/または編集メニューの書式設定オプションを。コマンドは " code" としてフォーマットするのが慣例です。
HBruijn 2016

奇妙ですが、男性では次のように見えます-y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha

私も同じように見ています。
キラリーイシュト

これは有効なsshオプションではありませんか?これをどこからコピー/貼り付けましたか?
Flo Woo

2
このオプションは、OpenSSHではなく、dropbear SSHにのみ存在します。
Jeremy Visser 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.