Ответы:
-o "UserKnownHostsFile /dev/null"
должно сработать.
grep
слияния stdout и stderr; также статус выхода может измениться. При использовании bash
, будет лучше использовать замену процесса , чтобы избавиться от сообщения: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. Это позволит избежать конвейера и, следовательно, соответствующих изменений в обработке состояния выхода.
Если вам нужно такое поведение, потому что вы работаете с облачными серверами (AWS EC2, Rackspace CloudServers и т. Д.) Или вы постоянно предоставляете новые образы в Vagrant, вы можете обновить конфигурацию SSH вместо добавления псевдонимов bash или дополнительных параметров в командная строка.
Попробуйте добавить что-то вроде:
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
Я чувствую, что мне нужно добавить ключ хоста в ваших known_hosts (по моему опыту, люди, работающие с этими сервисами, по крайней мере достаточно умны, чтобы их хост-ключи оставались согласованными между компьютерами, обслуживающими одно и то же имя хоста), а затем включили StrictHostKeyChecking, отключили CheckHostIP и регистрация с LogLevel ERROR даст вам лучший опыт без ущерба для безопасности. (Хорошо, без CheckHostIP вам действительно нужно доверять DNS, который является огромной зияющей дырой без широко распространенного DNSSEC или чего-то подобного; но мы просто покажем это под ковром.)
Я использую доступный только для чтения файл known_hosts, поэтому мне нужно что-то сделать, или я получаю бесконечные предупреждения о невозможности добавить записи в known_hosts.
Что я использую:
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
Мне бы хотелось, чтобы эти сервисы публиковали свои ключи хоста SSH на своих веб-сайтах через HTTPS, чтобы я мог их явно копировать без необходимости сначала подключаться и потенциально подвергать себя атаке MITM.
Я предлагаю
LogLevel ERROR
над
LogLevel QUIET
так что вы все еще получаете «Не удалось разрешить имя хоста» и другие подобные ошибки
Вы пытались отключить StrictHostKeyChecking
? Вы можете сделать это с помощью -o
опции или в файле конфигурации ~/.ssh/config
.
Я нашел полезными следующие записи .ssh / config (LAN с DHCP и DNS):
CheckHostIP no
Host *.*
CheckHostIP yes
Результатом является то, что имена локальных компьютеров «zora» или «goron» не будут сравниваться с динамически назначаемыми IP-адресами, но www.mycompany.com или node42.planetlab.com будут по-прежнему подтверждать свои статические IP-адреса.
grep -v "^Warning: Permanently added"