SSH: Неможливо встановити справжність хоста <host>


83

Що означає це повідомлення? Це потенційна проблема? Чи канал не захищений?

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

Я звик бачити це повідомлення при використанні SSH в минулому: я завжди вводив свій логін з паролем звичайним способом, і мені це було чудово, тому що я не використовував приватні / відкриті ключі (що набагато безпечніше ніж короткий пароль). Але цього разу я встановив відкритий ключ із ssh для мого підключення до бітбукета, але все одно отримав повідомлення. Мені відомо, що запит про фразу в кінці - це інший, додатковий захід безпеки, для розшифровки приватного ключа.

Я сподіваюся, що хтось може дати приємне пояснення того, що розуміється під цим повідомленням "автентичність неможливо встановити".

The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established.

RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,207.223.240.181' (RSA) to the list of
known hosts.
Enter passphrase for key '/c/Users/Steven/.ssh/id_rsa':

2
Це справді одне з таких "означає саме те, що воно говорить" повідомлень. Це означає, sshщо немає способу сказати, що ви дійсно розмовляєте bitbucket.org. Якщо ви налаштували якийсь спосіб, щоб це знати, це не працює. Якщо ви цього не зробили, то це говорить вам, що ви цього не зробили.
Девід Шварц

Відповіді:


71

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

Якщо ви підключились до цього сервера раніше від цього встановлення ssh, то або сервер був перенастроєний за допомогою нового ключа, або хтось підробляє особу сервера. Зважаючи на серйозність нападу "людина-середня", це попереджає вас про можливість.

У будь-якому випадку у вас є захищений зашифрований канал для когось . Ніхто без приватного ключа, що відповідає відбитку пальців, не 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40може розшифрувати те, що ви надсилаєте.

Ключ, який ви використовуєте для аутентифікації, не пов'язаний ... ви не хочете надсилати інформацію про автентифікацію на шахрайський сервер, який може його вкрасти, і тому не слід очікувати змін, залежно від того, чи будете ви використовувати парольну фразу чи приватний ключ для входу. Ви просто ще не досягли цього процесу.


Отже, навіть якщо є зловмисна сторона, і я відхиляю повідомлення, я все, що я буду робити, - це надіслати йому свій відкритий ключ, і він все ще не зможе розшифрувати мої дані? Отже, єдині способи моїх даних можуть бути порушені, якщо (1) мій приватний ключ порушений або (2) сервери бітбукета порушені або (3) мій обліковий запис бітбукета порушений. Поки вони обмежують спроби входу (що я дуже здивуюсь, якщо вони цього не роблять) насправді не так багато причин, щоб бути параноїком у цьому моменті, так?
Стівен Лу

10
@Steven: Ви не надсилаєте йому свій відкритий ключ, у нього вже є. Ви використовуєте свій приватний ключ для автентифікації виклику ... якщо він підключився до реального bitbucket.org, який претендує на те, що ви є, отримав справжнє виклик, і використовував це виклик, коли кидає вам виклик, він може потім обдурити вас надсилаючи йому дійсну відповідь, яку він потім використовує для отримання доступу до вашого облікового запису на реальному bitbucket.org. У нього все ще немає вашого приватного ключа, тому він не може ввійти в будь-який майбутній час або на будь-який інший ресурс, який розблокує ключ, але у нього є один сеанс входу.
Бен Войгт

Це я мав на увазі у своїй відповіді, коли я сказав, що "ви не хочете надсилати інформацію про автентифікацію на шахрайський сервер".
Бен Войгт

2
"Якщо ви параноїк, перевірте контрольну суму / відбиток ключа за допомогою іншого каналу." Для параноїка (і для запису) відбиток пальців github знаходиться на help.github.com/articles/generating-ssh-keys та bitbucket's згадується в confluence.atlassian.com/display/BITBUCKET/…
sundar

1
@BenVoigt Так, я розумію, що справді параноїк, звичайно, потрапить на ці сторінки через іншу незв’язану мережу, або, можливо, полетить до штаб-квартири github і отримає відбиток особисто:
sundar

21

Скажімо, ви зустрічаєтеся з кимось, щоб обмінятися діловими секретами. Ваш радник каже вам, що ви ніколи раніше не зустрічалися з цією людиною і що вона може бути самозванкою. Крім того, на наступні зустрічі з ним ваш радник вже не збирається попереджати вас. Саме це означає повідомлення. Особа - віддалений сервер, а ваш радник - клієнт ssh.

Я не думаю, що параноїдно двічі перевірити особистість людини, перш ніж поділитися з нею секретами. Наприклад, ви можете відкрити веб-сторінку із зображенням її та порівняти її із обличчям перед вами. Або перевірити її посвідчення особи.

Для сервера bitbucket ви можете використовувати інший, більш надійний комп'ютер і отримати з нього зображення його обличчя , а потім порівняти його з тим, який ви отримуєте в комп'ютері, яким ви зараз користуєтеся. Використання:

 ssh-keyscan -t rsa bitbucket.org | ssh-keygen -lv -f -

Якщо обличчя збігаються, ви можете додати ключ до файлу, наприклад ~/.ssh/known_hosts(стандартне розташування у багатьох дистрибутивах Linux) за допомогою:

ssh-keyscan -t rsa -H bitbucket.org >> ~/.ssh/known_hosts

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


Ця відповідь дуже корисна
010110110101

4
Це має бути прийнята відповідь: ssh-keyscan -t rsa -H bitbucket.org >> ~/.ssh/known_hosts Дякую Іване!
Прут

1
@Rod: Ви б вибрали прийняту відповідь на основі команди, яка є абсолютно непотрібною (ви можете змінити known_hosts, просто ввівши "так" в оригінальне попередження, як уже показано в запитанні) і небезпечно (ключ, який ви додали до свого файл не обов’язково той самий, який ви дивилися, тому що ви діставали його двічі!)?
Бен Войгт

@BenVoigt передбачає, що це рішення передбачає, що введення "так" не означає, що це рішення є повністю можливим сценарієм. Я припускаю, що більшість людей можуть зрозуміти, як реагувати на "(так / ні)?" підказка. Я натрапив на це питання і запитання, намагаючись вирішити, як вирішити цю проблему без втручання людини (для сценарію налаштування сервера). У своєму хвилюванні, мабуть, я не помітив, що питання ОП дещо інше, ніж моє, але ІМО це все-таки найкорисніша / не очевидна відповідь у темі.
Прут

1
@Rod: Ні, це не корисно. Зниження безпеки - це погано. Швидше знайти способи зниження безпеки - це навпаки корисне.
Бен Войгт

5

Мені просто довелося створити known_hostsтекстовий файл в~/.ssh

sudo vim ~/.ssh/known_hosts
sudo chmod 777 ~/.ssh/known_hosts

Після цього він додав хоста і я більше ніколи не бачив повідомлення.


Я не думаю, що насправді нічого не змінює. Попередження відображається, коли змінився сам сервер. Наприклад, якщо ви надаєте нову віртуальну машину, до якої ви підключаєтеся вперше. Незалежно від того, чи є у вас known_hostsфайл (з правильними дозволами), це не перешкоджає питати вас про справжність нового сервера ... Якщо ви якимось чином вже не взяли підпис ключа паба на цьому сервері і не поставите його на свій known_hosts, що є єдиним нормальним способом пропустити чек (хоча просто сказати "так", щоб перевірити часто швидше, щоб досягти того ж)
Стівен Лу

Дякую. Я знав_хостів, але продовжував отримувати попередження. Мені просто довелося змінити дозволи на відомі_хости, щоб попередження припинилося.
ArcaneDominion

6
Будь ласка, не робіть цього. Може становити серйозну небезпеку для безпеки. Ваш хост-файл повинен бути доступним лише для запису. Друга команда в основному дозволяє кому-небудь на вашому комп’ютері підробляти ідентифікатори сервера.
Stolz

"Попередження відображається, коли сервер змінився." Або коли сервер ніколи раніше не відвідувався.
Прут

2

Є ще один простий спосіб Просто торкніться файла "config" під /root/.ssh та додайте параметр StrictHostKeyChecking ні. Наступного разу, коли ви ввійдете на сервер, ключ rsa буде доданий до знаних_хостів і не запитуватиме "так" для підтвердження справжності


3
Це не рекомендується. Легкий, але не правильний спосіб вирішити ситуацію.
Вікас

1

Це повідомлення є лише SSH, яке повідомляє вам, що він ніколи раніше не бачив цього конкретного хост-ключа, тому він не в змозі по-справжньому перевірити, що ви підключаєтесь до хоста, який ви думаєте. Коли ви говорите "Так", він кладе ключ ssh у ваш файл знаних_хостів, а потім при наступних з'єднаннях порівнюватиме ключ, який він отримує від хоста, та ключ у відомому файлі знань.

Була пов’язана стаття про переповнення стека, де показано, як відключити це попередження, https://stackoverflow.com/questions/3663895/ssh-the-authenticity-of-host-hostname-cant-be-established .


10
Але відключати попередження не рекомендується - воно існує з метою, надаючи дуже корисну інформацію про безпеку.
Рорі Телепп

0

Крім уже наданих відповідей (ви ніколи раніше не підключалися до цього хоста), існує також чітка можливість того, що ви ніколи раніше не підключалися від поточного хоста (до цього хоста); це лише психологічно інше; ви думаєте, що підключаєтесь від хоста A (до B), а насправді ви намагаєтесь підключитися від хоста X (до B). Це може, наприклад, статися, коли ви спершу ssh-ed від A до X, а потім з того ж терміналу намагаєтесь ssh до B, думаючи, що ви все ще на A.


Цікаво, якщо використання переадресації ssh агента також може придушити попередження, якщо хост A знає про B, але X - ні, але переадресація агента відбувається між A і X. Більшість середовищ (які надають ssh) та переадресація агента підтримки терміналів, це допомагає скоротити кількість ssh-клавіш, якими потрібно керувати, лише для своїх кінцевих пристроїв.
Стівен Лу

0

У моєму випадку з паролем менше входу не працювало через дозволи на домашній каталог, оскільки я змінив налаштування за замовчуванням. Нарешті, ось що для мене спрацювало. дозволи до мого домашнього каталогу є

/ home / username

drwxr----x. 18 username     groupname  4096 May 11 11:52 username

/home/username/.ssh

268823097 drwx------   2 username groupname     29 May 11 11:53 .ssh

/home/username/.ssh/authorized_keys

-rw-r----- 1 username groupname 402 May 11 11:53 authorized_keys
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.