Відповіді:
-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
Мені здається, що ви хочете додати ключ хоста до своїх знаних_хостів (люди, які працюють із цими службами, на мій досвід, принаймні досить розумні, щоб їхні ключі хостів узгоджувались між машинами, що обслуговують одне ім’я хоста), а потім увімкнули StrictHostKeyChecking, відключивши CheckHostIP та ведення журналу за допомогою ПОМИЛИ LogLevel дасть вам найкращий досвід без шкоди для безпеки. (Гаразд, без CheckHostIP вам потрібно довіряти DNS, який є величезною роззявленою діркою без широкого розповсюдження DNSSEC або чогось подібного; але ми зараз просто змітаємо це під килим.)
Я використовую відомий лише файл для читання, тому мені потрібно щось зробити або я отримую нескінченні попередження про неможливість додавати записи до відомих_хостів.
Що я використовую:
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"