SSH авторизация по ключу
1. Генерируем ключ
используем DSA,говорят, оно круче RSA. Выполняет либо из под своего пользователя:
1 |
ssh-keygen -t dsa |
либо указываем путь к папке для пользователя
1 |
ssh-keygen -t dsa -f /home/user/.ssh/id_rsa |
Можно указать размер ключа, опция -b, например
1 |
ssh-keygen -t dsa -b 1024 |
ssh-keygen создаст пару публичного и приватного ключей, используемых для аутентификации. Приватный ключ сохраняется в ~/.ssh/id_dsa, а публичный в ~/.ssh/id_dsa.pub
2. Настройка ssh-сервера
2.1. Добавляем ключ к авторизационным для пользователя
1 |
cat /home/user/.ssh/id_dsa.pub >> /home/user/.ssh/authorized_keys |
2.2 Дальше нужно проверить, включена ли авторизация по ключам — в файле /etc/ssh/sshd_config должно быть раскоментировано
1 2 3 4 5 6 |
# разрешаем использование RSA ключей RSAAuthentication yes # разрешаем авторизацию при помощи ключей PubkeyAuthentication yes # Путь где будут находиться ключи, с которыми можно соединяться. AuthorizedKeysFile .ssh/authorized_keys |
А если на сервере вообще хотим запретить авторизацию по паролям, выставляем параметр в /etc/ssh/sshd_config:
1 2 3 4 |
PasswordAuthentication no PermitEmptyPasswords no UsePAM no |
После изменения sshd_config нужно перезапустить sshd. Во FreeBSD это можно сделать командой
1 |
/etc/rc.d/sshd restart |
3. Удаляем pub-ключ
1 |
rm /home/user/.ssh/id_dsa.pub |
4. Забираем приватный id_dsa ключ себе
на сервере не оставляем!
5. Подключение.
5.1 Из Windows
Нужен ssh-клиент: putty или kitty. И конвертор ключей для них — puttygen.exe, обязательно «The latest development snapshot» — там добавили поддержку AES ключей. А все из-за того, что теперь ключи шифруются по стандарту AES-128 вместо 3DES.
Если будет ругаться что-то типа «des-ede3-cbc not supported» значит вы скачали не development версию.
Загружаем наш приватный ключ (Conversions -> Import Key).
Дальше жмем кнопку «save private key» и сохраняем полученный ppk файл. Теперь в настройках сессии putty указываем
Connection -> SSH -> Auth -> Private key for autotentification = ppk file path
Сохраняем сессию.
Запускаем putty выбираем нужную сессию, нажимаем Open и попадаем в систему.
5.1 Из unix
1 2 3 |
# параметр -i путь к приватному ключу # Для DSA ключа ssh -i ./id_dsa User@host |