Как пропустить вопрос «known_host» при первом подключении к машине через SSH с открытыми / закрытыми ключами? [Дубликат]


16

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


Почему это было отмечено как дубликат, когда оно предшествовало другому вопросу?
Джейсон Аксельсон

Ответы:


31

Все остальные текущие ответы отсутствуют 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


2
Я искал отфильтровать подсеть в течение нескольких месяцев (не активно), это именно то, что я хотел. У нас есть небольшая сеть разработки с dhcp, и наши устройства всегда получают новый IP-адрес, что значительно облегчает подключение к ним. Благодарность!
Адам Льюис

13

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


/ etc / ssh / ssh_config или ~ / .ssh / config --- или любой другой эквивалент в windows, если это ваша клиентская платформа
Даг Харрис

3

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

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

2
$ ssh -o StrictHostKeychecking=no hostname

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


2
Мне также нравится использовать UserKnownHostsFile, чтобы подпись не запоминалась в моей системе. Хороший трюк:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
Метавида

2

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

Опция, в которой я нуждался, была:

NoHostAuthenticationForLocalhost yes

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


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

0

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


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

Бинго


1
Вы знаете, какую атаку должен предотвратить этот вопрос?
vonbrand
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.