Подключение по ключу (ssh)
Подключение по публичному ключу
На клиенте ssh генерируется пара, приватный и публичный ключ. Публичный ключ копируется на сервер ssh. При подключении ввод пароля уже не требуется.
Для генерации пары ключей используется команда ssh-keygen. В результате выполнения данной команды будут созданы два файла ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub
С помощью дополнительной опции i можно указать тип генерируемых ключей: rsa, dsa, ecdsa, ed25519. По умолчанию используется rsa
На сервере ssh при необходимости нужно создать каталог ~/.ssh, если есть доступ, то можно сделать это из текущей директории
ssh userServer@server.ru mkdir .ssh
Далее скопировать на удаленный сервер, в созданный каталог файл rsa.pub
cat ~/.ssh/id_rsa.pub | ssh userServer@server.ru 'cat >> .ssh/authorized_keys'
Директива IdentityFile используется в файле конфигурации для указания пути к приватным ключам. Если используется несколько приватных ключей, таких директив может быть несколько
Для отдельного сервера ssh можно указать название хоста и путь к приватному ключу
Host 192.168.0.1
IdentityFile ~/.ssh/id_rsa_router
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/id_ecdsa
IdentityFile ~/.ssh/id_ed25519
Для указании пути при генерации ключа, для указания пути где будет храниться пара ключей, используется опция -f
ssh-keygen -f ~/.ssh/test/id_rsa
На сервере публичные ключи клиентов хранятся в файле ~/.ssh/authorized_keys Каждая строка файла содержит значения через пробел (опции(не обязательно), тип ключа, ключ в кодировке base64, комментарий)
Источники
Связанные темы
Конфигурация vsftpd в ОС Linux Ubuntu
Установка и конфигурация samba в Linux
Поиск уязвимостей и следов взлома в Linux
Конфигурация openvpn сервера в Linux Alpine
Использование iptables в linux
Базовые понятие о настройках и безопасности в сети
Использование ifconfig в Linux
Саздание сертификатов SSL (TLS) для сайта
Мониторинг событий в linux с помощью auditd
Настройка openvpn сервера в Linux
Полезные сетевые утилиты Linux
Использование fail2ban в Linux
Конфигурация сети в Alpine Linux