96

Я хочу подключиться к хосту через SSH, но не хочу, чтобы имя хоста добавлялось в мои ~/.ssh/known_hosts .

Как я могу это сделать?

7 ответов7

85

Если вам нужно такое поведение, потому что вы работаете с облачными серверами (AWS EC2, Rackspace CloudServers и т.д.) Или вы постоянно предоставляете новые образы в Vagrant, вы можете обновить конфигурацию SSH вместо добавления псевдонимов bash или дополнительных параметров в командная строка.

Попробуйте добавить что-то вроде:

Host *.mydomain.com 
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User foo
  LogLevel QUIET
  • Используйте как можно более строгое регулярное выражение для обеспечения безопасности хоста.
  • Если для LogLevel задано значение QUIET, предупреждение, о котором упоминал Гийом, не появится.
83
-o "UserKnownHostsFile /dev/null"

должно сработать.

8

Я чувствую, что мне нужно добавить ключ хоста в ваших known_hosts (по моему опыту, люди, работающие с этими сервисами, по крайней мере достаточно умны, чтобы их ключи хостов были согласованными между машинами, обслуживающими одно и то же имя хоста), а затем включили StrictHostKeyChecking, отключили CheckHostIP и регистрация с LogLevel ERROR даст вам лучший опыт без ущерба для безопасности. (Хорошо, без CheckHostIP вам нужно доверять DNS, который представляет собой огромную зияющую дыру без широко распространенного DNSSEC или чего-то подобного; но мы просто покажем это под ковром.)

Я использую файл only_hosts только для чтения, поэтому мне нужно что-то делать, или я получаю бесконечные предупреждения о невозможности добавления записей в known_hosts.

Что я использую:

Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR

Мне бы хотелось, чтобы эти сервисы публиковали свои ключи хоста SSH на своих веб-сайтах через HTTPS, чтобы я мог их явно копировать без необходимости сначала подключаться и потенциально подвергать себя атаке MITM.

5

Я предлагаю

LogLevel ERROR

над

LogLevel QUIET

так что вы все еще получаете "Не удалось разрешить имя хоста" и другие подобные ошибки

4

Для одного сеанса SSH, используйте этот

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
2

Вы пытались отключить StrictHostKeyChecking? Вы можете сделать это с опцией -o или в файле конфигурации ~/.ssh/config .

0

Я нашел полезными следующие записи .ssh/config (LAN с DHCP и DNS):

 CheckHostIP no

 Host *.*
 CheckHostIP yes

Результатом является то, что имена локальных компьютеров "zora" или "goron" не будут проверяться по динамически назначенным IP-адресам, но www.mycompany.com или node42.planetlab.com будут по-прежнему подтверждать свои статические IP-адреса.

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