web-dev-qa-db-ja.com

Gitは「警告:既知のホストのリストに永久に追加された」と言っています

引っ張ったり押したりするときなど、gitを使ってリモートと対話するたびに、次のようなメッセージが表示されます。

警告:既知のホストのリストに '...'(RSA)を恒久的に追加しました。

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

178
Donald Taylor

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

UserKnownHostsFile ~/.ssh/known_hosts

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

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

ssh -vvvvvvvvvvvvvvvvvv [email protected]

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.
221
Jeremiah Gowdy

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
85
Kyle Kloepper

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

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null
   LogLevel ERROR
54
user1193229

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

4
Jason Carreiro

sshの警告メッセージを表示しないようにするには、~/.ssh/configに次の行を追加します。

Host *
LogLevel error

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

3
Stefan Schmidt

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

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

解決策

エントリが1つしかない場合は、~/.ssh/known_hostsファイルを削除して、最初の接続後にキーが存在するようにし、それ以降は警告メッセージを表示しないようにすることができます。

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

$ ssh-keygen -R <hostname>

それは私のためにうまくいきます

2
Larry Cai

SSHキーを追加

ssh-keygen -t rsa -b 4096 -C "[email protected]"

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/bitbucket_rsa

クレート設定ファイル

crate ~/.ssh/config

以下の行を追加してください。

UserKnownHostsFile ~/.ssh/known_hosts

それからpubキーを追加してリポジトリのクローンを作成します...完了.....

0
Thanuja

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と定義してください。

0
Vignesh Menon

私は同じ質問をしています、そして私は私の.ssh~ファイルがないのを発見しました。だから私は.sshパスの下に~ディレクトリを作成するだけで問題は解決しました。

0
Kris Roofe

Windowsマシンを使い始めたときも同じ問題に遭遇しました。私の場合、それは私のSSH設定が行われていなかったためです。 GithubにはSSHの設定に関する非常に正確なドキュメントがあります。それが大事にされれば、問題は解決しました。

https://help.github.com/articles/checking-for-existing-ssh-keys/https://help.github.com/articles/generating-a-new -sshキーを押してssh-agentに追加します/

0
Narita

私の場合、サーバーをセットアップした管理者が~/.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>
0
wisbucky

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

Click the HTTP button and clone that URL instead

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

0
Ricket