Для улучшения системы безопасности и получения возможности выполнения автоматизированных задач по обслуживанию на других машинах, Вы можете использовать аутентификацию на основе открытого ключа, вместо стандартной аутентификации по паролю.
Аутентификация на основе ключей использует два ключа, один «открытый» (публичный ключ), который доступен каждому и второй «закрытый» (секретный ключ), который доступен только владельцу.
Для безопасного соединяться с помощью аутентификации по ключам, необходимо сгенерировать открытый ключ на локальном компьютере с которого вы будете подключаться, и передать его по надежному каналу на удаленный компьютер.
1. Генерируем пару ключей на локальном компьютере
Имейте в виду, что ключи должны генерироваться для каждого пользователя отдельно.
Создаем директорию, если она еще не существует и устанавливаем права:
$ mkdir -p ~/.ssh $ chmod 700 ~/.ssh
Заходим в директорию и генерируем пару RSA ключей (открытый и закрытый):
$ cd ~/.ssh $ ssh-keygen -t rsa
Вы можете добавить комментарий к открытому ключу:
$ ssh-keygen -t rsa -C «Комментарий… обычно здесь будет достаточно указать почтовый ящик…»
Копируем открытый ключ на удаленный сервер:
$ scp -p id_rsa.pub RemoteUser@RemoteHost
2. Подключаемся к удаленному серверу и устанавливаем открытый ключ
$ ssh RemoteUser@RemoteHost Password: ********
Создаем директорию, если она еще не существует и устанавливаем права:
RemoteHost$ mkdir -p ~/.ssh RemoteHost$ chmod 700 ~/.ssh
Копируем открытый ключ в файл ‘authorized_keys’ и устанавливаем права:
RemoteHost$ cat id_rsa.pub >> ~/.ssh/authorized_keys RemoteHost$ chmod 600 ~/.ssh/authorized_keys
Удаляем открытый ключ из домашней директории и выходим:
RemoteHost$ rm -f ~/id_rsa.pub RemoteHost$ logout
3. Добавляем закрытый ключ в агент аутентификации на локальном сервере
$ ssh-add Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
Теперь мы можем подключаться к удаленному серверу по SSH без ввода пароля.