SSH:ホスト<host>の信頼性を確立できません


83

このメッセージはどういう意味ですか?これは潜在的な問題ですか?チャンネルは安全ではありませんか?

または、これは単に新しいサーバーに接続するときに常に表示されるデフォルトのメッセージですか?

過去にSSHを使用していたときにこのメッセージが表示されていました:いつもの方法でパスワードを使用してログインを入力しましたが、秘密/公開キーを使用していないので(それははるかに安全です)短いパスワードよりも)。しかし、今回は、bitbucketへの接続用にsshで公開鍵を設定しましたが、それでもメッセージが表示されます。最後のパスフレーズプロンプトは、秘密キーの復号化のための別の補足的なセキュリティ手段であることを認識しています。

この「真正性を確立できません」というメッセージが何を意味するかについて、誰かが良い説明をしてくれることを望んでいます。

The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established.

RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,207.223.240.181' (RSA) to the list of
known hosts.
Enter passphrase for key '/c/Users/Steven/.ssh/id_rsa':

2
これは、実際には「正確に言っていることを意味する」メッセージの1つです。それはsshあなたが本当に話していると言う方法がないということですbitbucket.org。何らかの方法で認識できるように構成した場合、機能しません。あなたがそうしなかったなら、それはあなたがそうしなかったことをあなたに告げています。
デビッドシュワルツ

回答:


71

これは、このサーバーに接続したことがないことを示しています。あなたがそれを期待していた場合、それは完全に正常です。妄想している場合は、代替チャネルを使用してキーのチェックサム/指紋を確認してください。(ただし、ssh接続をリダイレクトできるユーザーは、Webブラウザーセッションもリダイレクトできることに注意してください。)

このsshのインストールからこのサーバーに接続したことがある場合は、サーバーが新しいキーで再構成されているか、誰かがサーバーのIDをスプーフィングしています。中間者攻撃の深刻さのため、可能性について警告しています。

いずれにせよ、あなたは誰かに安全な暗号化されたチャネルを持っています。指紋に対応する秘密鍵がないと、97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40送信したものを解読できません。

自分自身を認証するために使用するキーは無関係です...認証情報を盗む可能性のある不正なサーバーに送信したくないため、パスフレーズを使用するか、またはログインする秘密鍵。あなたはまだその過程でまだそこまで進んでいません。


だから、たとえ悪意のある第三者がいて、私がメッセージを却下したとしても、私がやろうとしていることは彼に私の公開鍵を送ることだけであり、彼はまだ私のデータを解読することができないでしょうか?したがって、データが侵害される唯一の方法は、(1)秘密鍵が侵害された場合、(2)bitbucketのサーバーが侵害された場合、または(3)bitbucketアカウントが侵害された場合です。ログイン試行を制限している限り(そうしないと本当に驚かされるでしょう)、この時点で妄想的である理由はそれほど多くありません。
スティーブンルー

10
@スティーブン:あなたは彼にあなたの公開鍵を送っていない、彼はすでにそれを持っています。あなたがしているのは、秘密鍵を使用してチャレンジを認証することです...彼があなたであると主張している本当の bitbucket.org に接続し、本当のチャレンジを受け取り、挑戦するときにそのチャレンジを使用すると、彼はあなたをだますことができます有効な応答を送信してから、実際のbitbucket.orgのアカウントにアクセスするために使用します。彼はまだあなたの秘密鍵を持っていないので、将来、または鍵がロック解除する他のリソースにログインすることはできませんが、彼は1つのログインセッションを持っています。
ベンフォークト

「不正なサーバーに認証情報を送信したくない」と答えたときの答えです。
ベンフォークト

2
「あなたが妄想している場合は、代替チャネルを使用してキーのチェックサム/指紋を確認してください。」偏執(および記録用)の場合は、githubのの指紋は、上でhelp.github.com/articles/generating-ssh-keysとビットバケットのがに記載されているconfluence.atlassian.com/display/BITBUCKET/...
サンダー

1
@BenVoigtええ、私は、真の妄想はもちろん、別の無関係なネットワークを介してそれらのページに到達するか、GitHub本社に飛んで直接指紋を取得することを理解しています:)
sundar

21

ビジネス上の秘密を交換するために誰かに会ったとしましょう。あなたのアドバイザーは、あなたがその人に会ったことがなく、それが詐欺師になり得ることをあなたに伝えます。さらに、彼との次の会議のために、あなたのアドバイザーはもうあなたに警告するつもりはありません。それがメッセージの意味です。人はリモートサーバーであり、アドバイザーはsshクライアントです。

彼女と秘密を共有する前に、その人の身元を再確認することは妄想的ではないと思います。たとえば、彼女の写真を含むWebページを開き、目の前の顔と比較できます。または彼女の身分証明書を確認してください。

bitbucketサーバーの場合、より信頼性の高い別のコンピューターを使用してその顔画像を取得し、現在使用しているコンピューターで取得したものと比較できます。つかいます:

 ssh-keyscan -t rsa bitbucket.org | ssh-keygen -lv -f -

顔が一致する場合、次のようにしてファイルにキーを追加できます~/.ssh/known_hosts(多くのLinuxディストリビューションの標準の場所)。

ssh-keyscan -t rsa -H bitbucket.org >> ~/.ssh/known_hosts

そして、sshクライアントはすでに彼女の顔を知っているのであなたに警告しません。接続するたびにを比較ます。それは非常に重要です。なりすまし(中間者攻撃など)の場合、sshクライアントはが変わったため接続を拒否します。


この回答は非常に役立ちます
-010110110101

4
これは受け入れられた答えであるはずssh-keyscan -t rsa -H bitbucket.org >> ~/.ssh/known_hosts です: ありがとうイヴァン!
ロッド

1
@Rod:まったく不要なコマンド(known_hosts質問に既に示されているように、元の警告に「yes」と入力するだけで変更できます)と危険(コマンドに追加したキー)に基づいて、受け入れられた回答を選択します。ファイルは2回取得したため、必ずしも見たものと同じではありません!)?
ベンフォークト

@BenVoigtこのソリューションが「yes」とタイプしないと提供するのは、このソリューションが完全にスクリプト可能であるということです。ほとんどの人は「(はい/いいえ)?」への対応方法を理解できると思います。促す。(サーバーセットアップスクリプトの場合)人の介入なしでこの問題を解決する方法を見つけようとしたときに、このQ&Aに出会いました。私の興奮の中で、私はOPの質問が私のものと少し違うことに気づかなかったと思いますが、IMOはまだスレッドで最も有用/非自明の答えです。
ロッド

1
@ロッド:いいえ、それは有用ではありません。セキュリティを下げるのは悪いことです。セキュリティを低下させるより高速な方法を見つけることは、有用とは正反対です。
ベンフォークト

5

known_hostsテキストファイルを作成する必要がありました~/.ssh

sudo vim ~/.ssh/known_hosts
sudo chmod 777 ~/.ssh/known_hosts

これを実行した後、ホストが追加され、メッセージが表示されなくなりました。


私はそれが本当に何も変えるとは思わない。サーバー自体が変更されると、警告が表示されます。たとえば、初めて接続する新しい仮想マシンをプロビジョニングする場合。known_hosts(正しいアクセス許可を持つ)ファイルがあるかどうかにかかわらず、新しいサーバーの信頼性についての質問を停止することはできませんknown_hosts。 (単にチェックに「はい」と言っては同じことを達成するために、多くの場合、より高速であるが)チェックをスキップする1つの通常の方法これは
スティーブン・呂

ありがとう。known_hostsがありましたが、警告が表示され続けました。警告を停止するには、known_hostsの権限を変更する必要がありました。
-ArcaneDominion

6
これをしないでください。深刻なセキュリティ上の危険があります。ホストファイルは自分だけが書き込み可能である必要があります。2番目のコマンドは、基本的に、コンピューター内のだれでもサーバーIDを偽装することを許可します。
シュトルツ

「サーバー自体が変更されたときに警告が表示されます。」または、以前にサーバーにアクセスしたことがない場合。
ロッド

2

もう1つの簡単な方法があります。/root/.sshの下の「config」ファイルをタッチし、パラメーターStrictHostKeyChecking noを追加するだけです。真正性確認のため


3
これは推奨されません。それは簡単ですが、状況に対処する正しい方法ではありません。
ビカス

1

このメッセージは、この特定のホストキーを見たことがないことを伝える単なるSSHであるため、自分が考えているホストに接続していることを真に確認することはできません。「はい」と言うと、sshキーがknown_hostsファイルに追加され、その後の接続で、ホストから取得したキーとknown_hostsファイルのキーが比較されます。

この警告を無効にする方法を示すスタックオーバーフローに関する関連記事https://stackoverflow.com/questions/3663895/ssh-the-authenticity-of-host-hostname-cant-be-establishedがありました


10
ただし、警告を無効にすることはお勧めしません -目的のためにあり、非常に有用なセキュリティ情報を提供します。
ロリーアルソップ

0

すでに与えられた回答(以前にこのホストに接続したことはない)とは別に、現在のホストから(そのホストに)以前に接続したことがないという明確な可能性もあります。これは心理的に異なるだけです。ホストAから(Bに)接続していると思いますが、実際にはホストXから(Bに)接続しようとしています。これは、たとえば、最初にAからXにsshしてから、同じ端末からまだAにいると思ってBにsshしようとしたときに発生します。


ホストAがBについて知っているがXが知らない場合、sshエージェント転送を使用すると警告も抑制できるのではないかと思いますが、エージェント転送はAとXの間で行われsshます。エンドデバイスだけに管理する必要があるsshキーの数を減らします。
スティーブンルー

0

私の場合、デフォルト設定を変更したため、ホームディレクトリのアクセス権のためにパスワードレスログインが機能しませんでした。最後に、ここに私のために働いたものがあります。私のホームディレクトリの許可は

/ home / username

drwxr----x. 18 username     groupname  4096 May 11 11:52 username

/home/username/.ssh

268823097 drwx------   2 username groupname     29 May 11 11:53 .ssh

/home/username/.ssh/authorized_keys

-rw-r----- 1 username groupname 402 May 11 11:53 authorized_keys
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.