Gitによると「警告:既知のホストのリストに永続的に追加されています」


192

プルやプッシュなど、gitを使用してリモートとやり取りするたびに、次のメッセージが表示されます。

警告:既知のホストのリストに「...」(RSA)が永久に追加されました。

この迷惑なメッセージが表示されないようにするにはどうすればよいですか?それは単なる煩わしさです。すべてが適切に機能します。


1
毎回本当に意味ですか?それThe authenticity of host '...' can't be established. RSA key fingerprint is .... Are you sure you want to continue connecting (yes/no)?はあなたにフォームのプロンプトを与えていますか、それともあなたはそれを抑制しましたか?もしそうなら、それは毎回同じ指紋ですか?そうでなければ、それは本当に怖いです。それほど怖くないオプションは、どういうわけかそれが実際にホストファイルへの書き込みを管理していないため、毎回再試行することです。見て~/.ssh/known_hostsください?
カスカベル

1
はい。<i>毎回</ i>。ただし、「Are you sure ...」というメッセージは表示されません。おそらく抑制しました。
ドナルドテイラー

ホストはにリストされてい~/.ssh/known_hostsますか?(5000回リストされていますか?)~/.ssh/config何かが含まれている/含まれていますか(特にの値StrictHostKeyChecking)?
Cascabel

ホストはそのファイルに1回リストされ、それが唯一のエントリーです。
ドナルドテイラー

2
known_hostsファイルの内容が悪いと思います。非常に長い1行のホストキーである必要があります。そこにホスト名しかない場合(たとえば)は機能しません。このファイルを削除し(実際にこの単一ホストの情報のみが含まれている場合)、次に接続したときにSSHでファイルを作成できるようにすることをお勧めします。その後は沈黙するはずです。
tripleee

回答:


240

解決策:~/.ssh/configファイルを作成し、次の行を挿入します。

UserKnownHostsFile ~/.ssh/known_hosts

次にGithubにアクセスしたときにメッセージが表示されますが、その後、ホストがknown_hostsファイルに追加されているため、メッセージは表示されなくなります。これにより、ログメッセージを非表示にするだけでなく、問題が修正されます。

この問題はかなり長い間私を悩ませていました。この問題は、Windows用にコンパイルされたOpenSSHクライアントがknown_hostsファイルをチェックしないために発生します。~/.ssh/known_hosts

ssh -vvvvvvvvvvvvvvvvvvv git@github.com

debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.

9
ええ、私は警告やエラーを抑制することは問題の適切な解決策とは考えていません。;)
エレミヤゴーディ2013年

1
最近、ubuntuマシンで同じ問題に直面しました。別の(デフォルトの~/.ssh/id_rsa)キーを使用してサーバーに接続した後、このように動作し始めました。@JeremiahGowdyが述べたように、私はを持っていdebug3: load_hostkeys: loading entries for host "172.16.3.101" from file "/dev/null"ます。/dev/nullキーを変更した後、SSHがknown_hostsとして使用を開始するのはなぜですか?
m-ric 2013年

6
よく働く!最後に愚かな警告が停止しました。ところでWindowsでは、~in ~/.ssh/configはユーザーのホームフォルダーです。簡単にそれを開くには、プレス勝利-Rは、タイプがcmd 入力します。コマンドプロンプトは、ホームフォルダーで既に開いているはずです。タイプcd .ssh 入力し、次にstart . 入力し、Windowsエクスプローラでフォルダを開くために。次に、あなたが作成することができます設定(なしメモ帳でファイル.txtの保存拡張子)。(プロユーザーは、コマンドプロンプト自体で新しいファイルに直接エコーできます;))。リモートを含むgitコマンドを2回(などgit fetch)実行すると、完了です。
ADTC

1
sshに20のvがあるのはなぜですか?
ブバカゾウバ2016年

3
@bubakazouba vが多いほど、ログが冗長になります。ドキュメントを確認してください。3人で十分だろう、20人でやりすぎだ:D
PetrMánek16年

90

ssh構成ファイル($ HOME / .ssh / config)に次の行を追加します。

LogLevel=quiet

コマンドラインからsshを実行する場合は、コマンド文字列に次のオプションを追加します。

-o LogLevel=quiet

たとえば、次はmachine.example.orgにインストールされているgccバージョンを出力します(警告はありません)。

ssh -o UserKnownHostsFile=/dev/null \
    -o StrictHostKeyChecking=no \
    -o LogLevel=quiet \
    -i identity_file \
    machine.example.org \
    gcc -dumpversion

1
「LogLevel = quiet」を「config」ファイルに追加すると機能しました。ありがとうございました。
ドナルドテイラー

3
セキュリティを維持するには、「Host」セクション内に「LogLevel = quiet」を配置することをお勧めします。
Joe

39
LogLevel=quiet彼は悪い考えです、彼はすべてのエラーが表示されることを望んでいます、彼はこの特定の厄介なエラーを避けたいだけです。おそらく、彼がファイル/dev/nullとして使用するようにsshをだましていたためかknown_hosts、おそらくknown_hosts指紋チェックをオフにしたかったのでしょうが、できませんでした。
Elazar Leibovich、2012年

@bukzor loglevel=errorは、接続が終了したときにも「<サーバー>への接続が閉じられました」と表示しますが、これもスクリプトの作成には非常に煩わしいものです。
Guss

それは本当に問題を解決しないので、私はこれに反対しました。隠すだけです。
alaboudi

60

これらのエラーが表示されないようにするには、ファイルで(ではない)に設定LogLevelします。ERRORQUIET~/.ssh/config

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null
   LogLevel ERROR

2
これは私の場合に最もよく機能しました-または、コマンドラインで "-oLogLevel = ERROR"を指定できます
Brad

5

そのメッセージはSSHからのもので、これまでに接続したことがないホストに接続していることを警告しています。SSHキーへのMITM攻撃を示している可能性があるホストキーの変更に関する警告を見逃してしまう可能性があるため、オフにすることはお勧めしません。


1
しかし、毎日10〜15回接続していますが、それでもこの警告が表示されます。
ドナルドテイラー

@JackB。見て~/.ssh/known_hosts、あなたのホストがそこにあるかどうかを確認します。
Borealid

何らかの理由でキーが変更されていますか?ファイルのフィンガープリントとsshが出力したフィンガープリントを確認します。また、.sshディレクトリのモードは0700に設定されていますか?
Jason Carreiro

2
@JasonCarreiro、私は大きな男の子です、私はラック内にMITM攻撃を引っ張る人がいないことを知っています、セキュリティはトレードオフです、そしてCAを管理する必要なしに新しいコンピューターが事前共有キーで箱から出して動作することを望みますssh-keyscan
Elazar Leibovich、2012年

4

警告メッセージを抑制するsshには、次の行をに追加できます~/.ssh/config

Host *
LogLevel error

警告は無効になりますが、エラーメッセージは無効になりません。より細かい制御が必要な場合は、他の設定と同様に、ホストごとにを~/.ssh/config設定できますLogLevel


2

これは主に、そのホストのキーに変更があることを意味し、~/.ssh/known_hosts自動的には更新されません。したがって、この警告メッセージが表示されるたびに。

これは、再作成された仮想マシンへの接続で頻繁に発生し、同じIPアドレスでキーが変更されます

解決

エントリが1つしかない場合は、~/.ssh/known_hostsファイルを削除できます。最初の接続後、キーはそこにあり、その後警告メッセージは表示されません。

複数のエントリがある場合は、以下のコマンドを使用して削除できます

$ ssh-keygen -R <hostname>

私にとってはうまくいきます


0

GitHubのリポジトリを使用している場合は、代わりにURLのHTTPSバージョンを使用して、この問題を完全に回避することを検討してください。

HTTPボタンをクリックして、代わりにそのURLを複製します

Windows GitHubアプリケーション内からリポジトリのクローンを作成する場合、これがリモートURLに使用されます。多分彼らは私たちが知らない何かを知っています。


注:秘密鍵認証を使用する場合、HTTP(S)は使用できません。
qwertzguy 2015年

0

同じ質問があり.sshますが、にファイルがありません~。パスの.ssh下にディレクトリを作成するだけ~で、問題は解決しました。


0

Windowsマシンを使い始めたときにも同じ問題が発生しました。私の場合は、SSHのセットアップが行われていないためです。Githubには、SSHセットアップに関する非常に正確なドキュメントがあります。問題が解決されれば、問題は解決しました。

https://help.github.com/articles/checking-for-existing-ssh-keys/ https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it- to-the-ssh-agent /


0

SSHキーを追加

ssh-keygen -t rsa -b 4096 -C "abc@abc.com"

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/bitbucket_rsa

クレート設定ファイル

crate ~/.ssh/config

行の下に追加します。

UserKnownHostsFile ~/.ssh/known_hosts

次にpubキーを追加してリポジトリを複製します...完了...


0

Linux / Cent OS VMでも同じエラーに直面していましたが、これは再起動後にIPが変化していたためです。この問題を回避するために、ネットワークに静的IPを定義し、そのエントリを/ etc / hostsファイルに追加しました。静的IPの場合は、少し高い範囲の値を指定します。たとえば、現在のIP(ipconfig / ifconfig)が192.168.0.102の場合、次回の再起動後、これは192.168.0.103になる可能性があります。そのため、IPV4設定で静的IPを192.168.0.181として定義します。


キーワードを強調し、他の人にあなたの答えを出すのに役立つフォーマットで明確にしよう
Agilanbu

0

私の場合、サーバーを設定した管理者がこれらのオプションを ~/.ssh/config

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

ほとんどの場合、~/.ssh/known_hostsファイルを使用しないことで問題なく動作しました。しかし、エンタープライズgitlabリポジトリでは、「警告:既知のホストのリストに永続的に追加されました...」と表示されるたびに。

私の解決策はUserKnownHostsFile /dev/null、を作成できるようにする行をコメント化することでした~/.ssh/known_hosts。その後、それ以上の警告は出されませんでした。

に古い/無効なエントリがある場合もありますknown_hosts

# find entry in ~/.ssh/known_hosts
ssh-keygen -F <hostname>

# delete entry in ~/.ssh/known_hosts
ssh-keygen -R <hostname>

-1

継続的な反対投票のため、私は自分の解決策を取り下げています。
これは、SSHクライアント自体のソースコードを実際にハッキングすることなく、最良のソリューションでした。
誰かが興味を持っている場合は、編集履歴を確認してください。

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