Git говорит: «Предупреждение: постоянно добавлен в список известных хостов» - PullRequest
181 голосов
/ 15 февраля 2012

Каждый раз, когда я использую git для взаимодействия с пультом дистанционного управления, например, при вытягивании или нажатии, мне выводится следующее сообщение:

Предупреждение: постоянно добавляется '...' (RSA) ксписок известных хостов.

Как я могу предотвратить отображение этого надоедливого сообщения?Это только раздражение - все работает правильно.

Ответы [ 13 ]

223 голосов
/ 22 марта 2013

Решение: создайте файл ~/.ssh/config и вставьте строку:

UserKnownHostsFile ~/.ssh/known_hosts

Вы увидите сообщение при следующем обращении к Github, но после этого вы его больше не увидите, потому чтоХост добавлен в файл known_hosts.Это устраняет проблему, а не просто скрывает сообщение журнала.

Эта проблема вызывала у меня проблемы довольно долгое время.Проблема возникает из-за того, что клиент OpenSSH, скомпилированный для Windows, не проверяет файл known_hosts в ~/.ssh/known_hosts

ssh -vvvvvvvvvvvvvvvvvvvvvvvvvvv 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.
85 голосов
/ 18 июля 2012

Добавьте следующую строку в ваш файл конфигурации ssh ($ HOME / .ssh / config):

LogLevel=quiet

Если вы запускаете ssh из командной строки, добавьте следующую опцию в командную строку:

-o LogLevel=quiet

Например, следующий код выводит версию gcc, установленную на machine.example.org (и без предупреждения):

ssh -o UserKnownHostsFile=/dev/null \
    -o StrictHostKeyChecking=no \
    -o LogLevel=quiet \
    -i identity_file \
    machine.example.org \
    gcc -dumpversion
54 голосов
/ 01 ноября 2013

Установите LogLevel в ERROR (не QUIET) в файле ~/.ssh/config, чтобы избежать появления следующих ошибок:

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null
   LogLevel ERROR
4 голосов
/ 15 февраля 2012

Это сообщение от SSH, которое предупреждает вас о том, что вы подключаетесь к хосту, к которому ранее никогда не подключались.Я бы не рекомендовал его отключать, так как это может означать, что вы можете пропустить предупреждение об изменении ключа хоста, что может указывать на атаку MITM в вашем сеансе SSH.

3 голосов
/ 03 марта 2013

Чтобы подавить предупреждающие сообщения для ssh, вы можете добавить следующие строки в ~/.ssh/config:

Host *
LogLevel error

Это отключит предупреждения, но не сообщения об ошибках.Как и другие параметры в ~/.ssh/config, вы можете настроить LogLevel для каждого хоста, если вы хотите более детализированный элемент управления.

2 голосов
/ 08 мая 2013

Это в основном означает, что есть изменения для ключа для этого хоста ~/.ssh/known_hosts, и он не будет автоматически ОБНОВЛЯТЬ его.Поэтому каждый раз, когда вы получаете это предупреждающее сообщение.

Это часто случается при подключении к воссозданным виртуальным машинам, который меняет ключ с тем же IP-адресом

Решение

Если у вас есть только одна запись, вы можете удалить файл ~/.ssh/known_hosts, и после первого подключения ключ будет там, и после этого не появятся предупреждающие сообщения.

Еслиу вас есть несколько записей, затем вы можете использовать команду ниже, чтобы удалить

$ ssh-keygen -R <hostname>

Это прекрасно работает для меня

0 голосов
/ 12 июля 2019

В моем случае это было потому, что администратор, настроивший сервер, установил эти опции в ~/.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 голосов
/ 13 декабря 2018

Я столкнулся с той же ошибкой в ​​виртуальной машине Linux / Cent OS, и это произошло из-за того, что IP-адрес менялся после перезапуска.Чтобы обойти эту проблему, я определил статический IP в сети и добавил эту запись в файл / etc / hosts.Для статического IP упомяните немного более высокое значение диапазона.Например, если ваш текущий IP (ipconfig / ifconfig) равен 192.168.0.102, то в следующий раз после перезапуска это может стать 192.168.0.103.Поэтому определите свой статический IP-адрес в настройках IPV4 как 192.168.0.181, что должно помочь.

0 голосов
/ 03 декабря 2018

Добавить ключ 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

Затем добавьте ключ публикации и клонируйте свой репозиторий ... Готово .....

0 голосов
/ 23 февраля 2018

Я столкнулся с той же проблемой, когда начал использовать машину с 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...