Як я пропускаю питання "відомий_хост" під час першого підключення до машини через SSH із відкритими / приватними ключами? [дублікат]


16

Як пропустити питання "відомий_хост" під час першого підключення до машини через SSH із відкритими / приватними ключами?


Чому це було позначено як дублікат, коли він передував іншому питанню?
Джейсон Аксельсон

Відповіді:


31

У всіх інших поточних відповідях відсутній UserKknownHostsFile = / 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, якщо це ваша клієнтська платформа
Doug Harris

3

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

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

2
$ ssh -o StrictHostKeychecking=no hostname

Це призведе до того, що чек буде пропущено, а ключ віддаленого хоста автоматично буде додано під час першого входу. (Також є опція CheckHostIP, але вона, схоже, насправді не відключає перевірку на наявність ключа взагалі).


2
Мені також подобається використовувати UserKknownHostsFile, щоб підпис не запам'ятовувався в моїй системі. Гарний трюк:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
metavida

2

Це знадобило мені час, щоб знайти. Найпоширеніший випадок, який я бачив, - це коли у вас є ssh-тунелі до віддалених мереж. Усі рішення тут створювали попередження, які порушували мої сценарії (нагіо).

Мені потрібен був варіант:

NoHostAuthenticationForLocalhost yes

Що, як випливає з назви, стосується і локального хосту.


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 ні" в / etc / ssh / ssh_config
  2. cd ~ / .ssh
  3. rm known_hosts
  4. ln -s / dev / null known_hosts

Бінго


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