Автоматическая SSH-авторизация по ключу
Допустим, Вам необходимо настроить беспарольный вход по SSH, SCP или SFTP на удаленный сервер remote.org.ru под пользователем user. Если имя Вашего локального пользователя совпадает с удаленным, то user@ везде можно опустить.
По умолчанию в корневой директории пользователя находится директория .ssh, если по какой то причине её нет, то создаём её командой
$ mkdir ~/.ssh
1) Cоздаем открытый и закрытый ключ нашей локальной системы:
$ ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa
Подробнее о ключах можете посмотреть с помощью команды:
$ ssh-keygen --help
2) Если в системе есть программа ssh-copy-id, то настраиваем удаленную систему на то, чтобы она авторизовывала SSH по открытому ключу:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote.org.ru
переходим к шагу 4
3) Если ssh-copy-id нет, то можно сделать это вручную.
Вот последовательность действий:
3.1) копируем открытый ключ на удаленную систему
$ scp ~/.ssh/id_rsa.pub user@remote.org.ru:~
3.2) Авторизуемся на удаленном сервере:
$ ssh user@remoute.org.ru
3.3) Заносим открытый ключ нашей локальный системы в авторизованные ключи удаленной системы, устанавливаем правильные права и "убираем за собой мусор":
remote$ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 711 ~/.ssh) # создаем директорию и даём права remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # добавляем открытый ключ remote$ chmod 600 ~/.ssh/authorized_keys # делаем правильные права remote$ rm ~/id_rsa.pub # удаляем не нужное
4) Проверяем, что все работает, запускаем на локальном компьютере:
$ ssh user@remoute.org.ru
Источник: https://beget.com/ru/articles/ssh_by_key
- Войдите, чтобы оставлять комментарии