Задача: Настроить быстрое подключение к серверу Synology по протоколу SSH.
Шаг 1 — Открываем консоль Mac OS и набираем команду, которая начнет процесс генерации пары ключей RSA. При генерации можно указать имена файлов, а так же секретную фразу для дополнительной защиты приватного ключа.
ssh-keygen -t rsa
Шаг 2 — Переходим в домашнюю папку пользователя и меняем имена ключей на человеческие, чтобы в будущем было сразу понятно для какого сервера тот или иной ключ.
cd ~/.ssh/
По умолчанию создается пара файлов id_rsa и id_rsa.pub. Я в данном руководстве исхожу из задачи подключения к локальному серверу 192.168.1.1, которому в конфигурационном файле (описано ниже), присвоил короткое имя ds415. Следовательно пару ключей назвал to.ds415.private и to.ds415.pub
Шаг 3 — Настраиваем конфиг. Это делать не обязательно, но крайне рекомендую, так как сильно упрощает команды на подключение из терминала или sh-скриптов. В папке пользователя создаем файл с названием config без каких-либо расширений и вносим туда секцию для подключения к нашему серверу. Секций может быть неограниченное кол-во:
В конфигурационном файле я задал короткое имя ds415 и соответствующий IP адрес сервера, пользователя на этом сервере и путь к приватному ключу. Можно так же указать ряд других параметров, которые не вошли в данный конкретный пример.
Шаг 4 — Ставим правильные права на папку и файл с приватным ключом:
# Ставим права на папку в домашней директории пользователя
chmod 700 ~/.ssh/# Ставим права на файл с приватным ключом
chmod 600 ~/.ssh/to.ds415.private
Осталось дело за малым — положить на сервер в домашнюю папку пользователя указанного в файле конфигурации, в нашем случае это remote_user_name, публичный ключ из шага 2.
Шаг 5 — Размещаем на сервере публичный ключ пользователя
Заходим на сервер по ssh, используя логин-пароль (при условии что ssh включен и допускает соединения по логину-паролю). В общем я исхожу из того, что мы попали тем или иным способом в консоль.
# Переходим в папку пользователя
cd ~/.ssh/# Если сервер вернул ошибку — No such file or directory
# то создаем директорию сразу с нужными правами
mkdir -pvm 700 ~/.ssh# Ставим права на файл
chmod 644 ~/.ssh/authorized_keys# Если файла authorized_keys нет, создаем его любым способом
# Открываем его и вставляем текст публичного ключа
# Если ключ предполагается один, то можно просто скопировать
# файл публичного ключа и переименовать в authorized_keys.
Настройка завершена, можно наслаждаться безопасным входом на сервер по SSH ключам RSA.
P.S. Настройка сервера Synology кратко и на примере пользователя remote_user_name:
ssh-keygen -l -f ~/remote_user_name/.ssh/authorized_keys
chmod 755 ~/remote_user_name
chown remote_user_name:users ~/remote_user_name/.ssh
chmod 700 ~/remote_user_name/.ssh
chown admin:users ~/remote_user_name/.ssh/authorized_keys
chmod 644 ~/remote_user_name/.ssh/authorized_keys