Как пропустить вопрос "known_host" при первом подключении к машине через SSH с открытыми / закрытыми ключами?
8 ответов
Во всех других текущих ответах отсутствует 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
Выключите StrictHostKeyChecking
с помощью ssh_config
или параметров командной строки.
$ ssh -o StrictHostKeychecking=no hostname
Это приведет к пропуску проверки и автоматическому добавлению ключа удаленного хоста при первом входе в систему. (Существует также опция CheckHostIP, но, похоже, она фактически не отключает проверку на наличие ключа вообще).
Это заняло у меня некоторое время, чтобы найти. Наиболее распространенный вариант использования, который я видел, это когда у вас есть ssh-туннели к удаленным сетям. Все решения, приведенные здесь, генерировали предупреждения, которые нарушали мои сценарии (нагиос).
Вариант, который мне был нужен, был:
NoHostAuthenticationForLocalhost yes
Который, как следует из названия, относится только к localhost.
Вы можете получить открытый ключ, добавить его в файл known_hosts и затем перефразировать его:
ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old
Если вы просто хотите временно отключить проверку хоста, чтобы вы могли войти в систему LiveCD, например, переименуйте ~/.ssh/known_hosts
во что-то другое, а затем измените его, когда вы закончите.
Вы можете отключить проверку, но, конечно, это менее безопасно. В идеальной ситуации вам нужно получить кого-то, у кого уже есть доступ к компьютеру, чтобы получить его открытый ключ хоста и сказать 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
- Добавьте "StrictHostKeyChecking no" в /etc /ssh /ssh_config
- cd ~ /.ssh
- рм известные_хосты
- ln -s /dev /null known_hosts
Бинго