引っ張ったり押したりするときなど、gitを使ってリモートと対話するたびに、次のようなメッセージが表示されます。
警告:既知のホストのリストに '...'(RSA)を恒久的に追加しました。
この迷惑なメッセージが表示されないようにするにはどうすればよいですか。それは煩わしいだけです - すべてが適切に機能しています。
解決策:~/.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.
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
これらのエラーが表示されないようにするには、~/.ssh/config
ファイルでLogLevel
をERROR
(QUIET
ではなく)に設定します。
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
そのメッセージはSSHからのもので、これまで接続したことのないホストに接続していることを警告しています。ホスト鍵の変更に関する警告を見逃す可能性があるため、これをオフにすることはお勧めしません。これは、SSHセッションに対するMITM攻撃を示している可能性があります。
ssh
の警告メッセージを表示しないようにするには、~/.ssh/config
に次の行を追加します。
Host *
LogLevel error
これは警告を無効にしますが、エラーメッセージは無効にしません。 ~/.ssh/config
の他の設定と同様に、もっときめ細かい制御が必要な場合は、ホストごとにLogLevel
を設定できます。
それは主にそのホストのキーに対する変更があることを意味します~/.ssh/known_hosts
、そしてそれは自動的にそれを更新しません。したがって、毎回この警告メッセージが表示されます。
これは、同じIPアドレスを持つキーを変更する、再作成された仮想マシンへの接続で頻繁に発生します。
解決策
エントリが1つしかない場合は、~/.ssh/known_hosts
ファイルを削除して、最初の接続後にキーが存在するようにし、それ以降は警告メッセージを表示しないようにすることができます。
複数のエントリがある場合は、以下のコマンドを使用して削除できます。
$ ssh-keygen -R <hostname>
それは私のためにうまくいきます
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キーを追加してリポジトリのクローンを作成します...完了.....
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と定義してください。
私は同じ質問をしています、そして私は私の.ssh
に~
ファイルがないのを発見しました。だから私は.ssh
パスの下に~
ディレクトリを作成するだけで問題は解決しました。
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に追加します/
私の場合、サーバーをセットアップした管理者が~/.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>
GitHubのリポジトリを使用している場合は、この問題を完全に回避するために、HTTPSバージョンのURLを使用することを検討してください。
Windows GitHubアプリケーション内からリポジトリのクローンを作成する場合、これがリモートURLに使用されるものです。たぶん彼らは私たちが知らない何かを知っています。