Повідомлення, яке ви бачите, є окремим питанням. Він просить вас підтвердити, що хост, з яким ви підключаєтесь, справді такий, якого ви очікуєте. З сервера ви можете отримати відбиток пальців, запустивши ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
. Потім, коли ви вперше підключаєтесь віддалено, ви можете переконатися, що відбитки пальців збігаються.
Клавіші господарів, розглянуті тут в дії, вирішують проблему людини при посередніх атаках - можливо, DNS зірваний, і ви підключаєтесь до машини конкурента замість своєї. Ця машина збирає ваші облікові дані та прозоро пересилає ваше з'єднання з реальним сервером, вкрадаючи вашу інформацію, не знаючи. Переконайтесь у тому, що відповідність ключу хосту запобігає цьому, якщо зловмисник фактично не вкрав відкритий ключ вашого сервера.
Однак проблема залишається - як дізнатися, який ключ є правильним? Після першого з'єднання відкритий ключ зберігається у вашому ~/.ssh/known_hosts
файлі, тому наступні з'єднання є нормальними. Але в перший раз вам або потрібен якийсь позаширокий спосіб отримання відбитка пальців, або ж ви слідуєте моделі "TOFU": довіра на перше використання.
Але нічого з цього не має нічого спільного з паролями та ключами, за винятком того, що обидва ключі та паролі можуть бути викрадені за допомогою цієї атаки - у певному сенсі це вразливість, яку ви просите.
Існують (принаймні) три причини паролів гірші за ключі:
- Вони можуть бути жорстокими. Типовий вибраний користувачем 8-символьний пароль містить близько 30 біт відгадки-ентропії. Пара відкритого / приватного ключів ssh становить 1024 біт або більше. Фактично неможливо переправити ssh-ключ, але автоматичне відгадування пароля відбувається постійно.
- Вони можуть бути німими. Користувачі звичайно вибирають жахливі паролі, навіть із встановленими обмеженнями, і вони, як правило, використовують більш жорсткі паролі в декількох місцях. Це очевидно полегшує атаки.
- Паролі можна вкрасти віддалено. Коли ви використовуєте SSH, пароль шифрується на дроті, але дуже часто звичайно замінювати ssh-сервер на компрометованих системах таким, який реєструє всі паролі. За допомогою ключів приватний ключ залишається в локальній системі і взагалі ніколи не надсилається, і тому його неможливо вкрасти без фактичного збитку клієнтської машини.
Крім того, клавіші ssh пропонують зручність при використанні з чимось подібним ssh-agent
- ви отримуєте безпроблемну роботу з підключенням без повторної автентифікації, зберігаючи при цьому достатній рівень безпеки.
Немає суттєвої переваги в запиті обох, оскільки той, хто має достатній доступ для викрадення приватного ключа, може досить легко вкрасти і пароль користувача. Якщо вам потрібен більший захист, ніж це, подумайте про пошук двофакторної системи аутентифікації на зразок RSA SecurID або WiKID .