15

Как пропустить вопрос "known_host" при первом подключении к машине через SSH с открытыми / закрытыми ключами?

8 ответов8

28

Во всех других текущих ответах отсутствует UserKnownHostsFile =/dev/null

Если вы просто хотите сделать это один раз, вы можете использовать:

ssh -o StrictHostKeychecking=no hostname

Если вы хотите сделать это несколько раз, вы должны добавить что-то вроде следующего в ваш ~/.ssh/config

Host 192.168.0.*
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

Чтобы настроить это в OpenSSH для Windows, просто замените /dev/null на NUL .

Хорошее объяснение от:http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

13

Выключите StrictHostKeyChecking с помощью ssh_config или параметров командной строки.

2
$ ssh -o StrictHostKeychecking=no hostname

Это приведет к пропуску проверки и автоматическому добавлению ключа удаленного хоста при первом входе в систему. (Существует также опция CheckHostIP, но, похоже, она фактически не отключает проверку на наличие ключа вообще).

2

Это заняло у меня некоторое время, чтобы найти. Наиболее распространенный вариант использования, который я видел, это когда у вас есть ssh-туннели к удаленным сетям. Все решения, приведенные здесь, генерировали предупреждения, которые нарушали мои сценарии (нагиос).

Вариант, который мне был нужен, был:

NoHostAuthenticationForLocalhost yes

Который, как следует из названия, относится только к localhost.

1

Вы можете получить открытый ключ, добавить его в файл known_hosts и затем перефразировать его:

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old
0

Если вы просто хотите временно отключить проверку хоста, чтобы вы могли войти в систему LiveCD, например, переименуйте ~/.ssh/known_hosts во что-то другое, а затем измените его, когда вы закончите.

0

Вы можете отключить проверку, но, конечно, это менее безопасно. В идеальной ситуации вам нужно получить кого-то, у кого уже есть доступ к компьютеру, чтобы получить его открытый ключ хоста и сказать ssh использовать его. т.е.: взять вывод:

cat /etc/ssh/ssh_host_rsa_key.pub

добавьте имя хоста машины и добавьте эту строку в файл ~/.ssh/known_hosts на вашей машине. Вы получите что-то похожее на:

myhost.example.com ssh-rsa AAAAB3Netc ...

В качестве альтернативы, если вы просто хотите захватить отпечаток ключа, который может быть легче передать по каналу с ограниченной пропускной способностью (например, телефонный звонок), вы можете запустить помощника:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
-2
  1. Добавьте "StrictHostKeyChecking no" в /etc /ssh /ssh_config
  2. cd ~ /.ssh
  3. рм известные_хосты
  4. ln -s /dev /null known_hosts

Бинго

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .