За замовчуванням ssh здійснює пошук id_dsa
та id_rsa
файли. Клавіші не повинні називатися таким чином, ви можете назвати його mykey
так само добре, або навіть помістити його в інший каталог. Однак якщо ви робите будь-який з цих, вам потрібно чітко посилатися на ключ у команді ssh, як-от так:
ssh user@server -i /path/to/mykey
Якщо команда не приймає -i
, наприклад sshfs
, скористайтеся IdentityFile
опцією:
sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint
Як це працює
При генерації ключа ви отримаєте два файли: id_rsa
(приватний ключ) та id_rsa.pub
(відкритий ключ). Як свідчать їх назви, приватний ключ слід зберігати в таємниці, а відкритий ключ можна публікувати.
Аутентифікація відкритого ключа працює з відкритим і приватним ключем. І клієнт, і сервер мають свої власні ключі. При встановленні openssh-server
сервера публічні та приватні ключі генеруються автоматично. Для клієнта вам доведеться це зробити самостійно.
Коли ви (клієнт) підключаєтесь до сервера, публічні ключі обмінюються. Ви отримаєте сервери один, а сервер - ваш. Перший раз, коли ви отримаєте відкритий ключ сервера, вас попросять прийняти. Якщо цей відкритий ключ із часом змінюється, вас попередить, оскільки можлива атака MITM (Чоловік посередині), яка перехоплює трафік між клієнтом та сервером.
Сервер перевіряє, чи дозволено вам підключитися (визначено в /etc/ssh/sshd_config
) і чи вказаний ваш відкритий ключ у ~/.ssh/authorized_keys
файлі. Можливі причини заборони відкритого ключа:
/etc/ssh/sshd_config
:
AllowUsers
або AllowGroups
вказано, але користувач вашого сервера не вказаний у списку груп або користувачів (за замовчуванням не визначено, що не обмежує користувачів або груп увійти в систему).
DenyUsers
або DenyGroups
вказано, і ви знаходитесь у списку користувачів або груп.
- Ви намагаєтесь увійти як root, але
PermitRootLogin
встановлено значення No
(за замовчуванням yes
).
PubkeyAuthentication
встановлено No
(за замовчуванням yes
).
AuthorizedKeysFile
встановлено в іншому місці, і відкриті ключі до цього файлу не додаються (за замовчуванням .ssh/authorized_keys
відносно домашнього dir)
~/.ssh/authorized_keys
: ваш відкритий ключ не доданий у цей файл (зауважте, що цей файл читається як користувач root)
Використання декількох клавіш
Не рідкість використовувати кілька клавіш. Замість бігу ssh user@host -i /path/to/identity_file
, ви можете використовувати файл конфігурації ~/.ssh/config
.
Загальні параметри - IdentityFile (клавіші) та порт. Наступна конфігурація перевірятиме "id_dsa" та "bender" лише при з'єднанні з ssh youruser@yourhost
:
Host yourhost
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/bender
Якщо ви відмовитеся Host yourhost
, налаштування застосовуватимуться до всіх з'єднань SSH. Інші параметри також можуть бути вказані для цього хостового матчу, наприклад User youruser
, Port 2222
і т. Д. Це дозволить вам з'єднатися зі скороченням ssh yourhost
замість ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender
.