Ранее мы рассматривали как обезопасить доступ к вашему оборудованию через OpenSSH и приводили необходимые меры. Как показывает практика этого недостаточно для того чтобы доступ к вашему оборудованию был надежен. Поэтому для увеличения безопасности от несанкционированного доступа мы добавим SSH авторизацию по ключу при подключении по SSH. Пример использования как всегда на ОС Debian 9.
Содержание
Предисловие
Настроив SSH авторизацию по ключу, вы не только улучшите безопасность сервера, но и еще немного упростите себе жизнь. Вместо использования паролей, которые легко перехватить кейлоггером, в процессе SSH авторизации на сервере мы будем использовать RSA ключи. Для обеспечения хорошего уровня безопасности будет достаточно использовать длину ключа равной 2048 бит. Чтобы усложнить кражу, желательно хранить секретный ключ на зашифрованном разделе вашей системы.
1. Настройка OpenSSH
Все настройки сервера OpenSSH хранятся в файле /etc/ssh/sshd_config. Откроем файл для редактирования и внесем настройки:
vim /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys RhostsRSAAuthentication no HostbasedAuthentication no PermitEmptyPasswords no PasswordAuthentication no
AuthorizedKeysFile %h/.ssh/authorized_keys – По умолчанию эта настройка указывает на то, что открытые ключи каждого пользователя следует искать в его домашнем каталоге, в файле authorized_keys, лежащем в подкаталоге .ssh.
2. Генерация и размещение ключей
Если вы решили настроить на вашем сервере SSH авторизацию по ключу, первое, что необходимо сделать — это сгенерировать секретный и публичный RSA-ключи. Под Linux для генерации ключей я буду использовать ssh-keygen, для Windows есть утилита PuTTYgen.
2.1 Генерация ключей в Linux
Авторизуемся под пользователем для которого создаем ключи:
su ЛОГИН
ЛОГИН – логин учетной записи, для которой создаем ключи.
ssh-keygen -t rsa -b 2048 -C "Key for Neustroev Maxim"
Программа предложит указать каталог, в который будут сохранены файлы ключей и попросит ввести секретную фразу. Нажимаем Enter чтобы использовать параметры по умолчанию. Если вы хотите добавить секретную фразу, вводим её два раза.
Generating public/private rsa key pair. Enter file in which to save the key (/home/ЛОГИН/.ssh/id_rsa): Created directory '/home/ЛОГИН/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ЛОГИН/.ssh/id_rsa. Your public key has been saved in /home/ЛОГИН/.ssh/id_rsa.pub. The key fingerprint is: 72:56:ab:fd:e2:99:cb:4b:93:ef:63:26:73:f2:d3:19 ЛОГИН@pbx The key's randomart image is: +---[RSA 2048]----+ | | | | | . | | . . | | . D . | | + o . T | | . = . o | | o=** o | | .S&=o | +-----------------+
Enter passphrase – устанавливает пароль на клиентский ключ. Восстановить его НЕВОЗМОЖНО
- Your identification has been saved in /home/user/.ssh/id_rsa.
- Your public key has been saved in /home/user/.ssh/id_rsa.pub.
- id_rsa – приватный ключ пользователя;
- id_rsa.pub – публичный ключ сервера.
Записываем созданный ключ:
cat id_rsa.pub >> ~/.ssh/authorized_keys
Копируем себе файл id_rsa, и удаляем его на сервере. Так же удаляем и id_rsa.pub. Далее переходим в раздел Настройка SSH авторизации по ключу в PuTTY для создания файла .ppk.
2.2 Генерация ключей в PuTTYgen
После проделанного в домашней директории пользователя появятся два файла id_rsa — секретный ключ, id_rsa.pub — публичный ключ. Скопируйте в надежное место файл секретного ключа, а публичный ключ перенесите на сервер.
cat id_rsa.pub >> ~/.ssh/authorized_keys
Установим права:
chmod 700 ~/.ssh/ && chmod 600 ~/.ssh/authorized_keys && chmod 600 ~/.ssh/id_rsa
Настройка SSH авторизации по ключу в Linux
Для SSH авторизации по ключу в Linux, создайте файл ~/.ssh/config и скопируйте в него строки ниже. Затем по аналогии укажите адрес сервера и расположение файла секретного ключа:
Host server.net IdentityFile ~/.ssh/keys/id_rsa
Установите права на файл:
chmod 600 ~/.ssh/config
Для того чтобы зайти на сервер, используя SSH авторизацию по ключу, выполните команду:
ssh -i ~/.ssh/id_rsa user@server.net
Настройка SSH авторизации по ключу в PuTTY
Если ключ id_rsa сгенерирован в Linux, нужно перевести его в формат .ppk с помощью утилиты PuTTYgen. Открываете утилиту PuTTYgen, выбираете меню Conversion -> Import key. Выбираете свой файл id_rsa и нажимаете Save private key:
Для авторизации по ключу в PuTTY укажите расположение ключа в меню Connetction -> SSH -> Auth -> Private key file for authentication.
Сохраните подключение.
Теперь при подключении вам нужно будет вводить не пароль пользователя системы, а пароль от вашего ключа. Удобство заключается в том, что можно создать один публичный ключ и разместить его на десятке серверов. Теперь вместо того, чтобы помнить 10 разных паролей, достаточно помнить всего один и хранить его и секретный ключ в надёжном месте, исключающем доступ посторонних лиц.
Использование ключей для авторизации не отменяет ввода пароля пользователя при вызове команды sudo!
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.