17.5. Использование нескольких пар ключей
Проблема
Требуется сгенерировать отдельные ключи для обращения к разным хостам или разным типам учётных записей. Например, вы хотите, чтобы один ключ SSH применялся для администрирования сервера FTP, а другой — для обращения к вашим личным учётным записям.
Решение
Утилита ssh_keygen
позволяет задать парам ключей любые имена по вашему усмотрению. К имени открытого ключа автоматически присоединяется суффикс .pub
. Всегда указывайте пароль!
akkana@windbag:$ ssh-keygen -t rsa -f /home/akkana/.ssh/ftp_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/akkana/.ssh/ftp_key.
Your public key has been saved in /home/akkana/.ssh/ftp_key.pub.
The key fingerprint is:
95:d2:12:55:66:ba:ec:a8:5c:40:4b:le:03:2b:6c:ea akkana@windbag
При создании пары ключей с пользовательскими именами имя закрытого ключа указывается в файле ~/.ssh/ssh_config
. Если файл не существует, создайте его и добавьте строку:
IdentityFile ~/.ssh/ftp_key
Комментарий
В каталоге /etc/ssh
должна находиться копия стандартного файла ssh_config
. При внесении изменений проще всего добавить новые параметры в конец файла.
Файл ssh_config
предназначен для хранения конфигурации, которая может быть специфичной для конкретного пользователя или общесистемного уровня. Копия файла в домашнем каталоге пользователя задаёт параметры, относящиеся к конкретному пользователю, и позволяет настраивать использование определённых ключей для каждого подключения.
Использование нескольких пар ключей может повысить безопасность, так как каждому сервису или серверу можно назначить уникальный ключ. Это даёт возможность ограничивать доступ к разным ресурсам с разными уровнями конфиденциальности и упрощает управление доступом, особенно в среде с множеством серверов или пользователей.
Важно помнить, что доступ к конфиденциальным данным должен контролироваться надёжными паролями. Даже если ключи не требуют пароля, рекомендуется их использование для дополнительной защиты, так как это затрудняет несанкционированное подключение к вашим учетным записям.
Также рекомендуется периодически менять ключи и соблюдать правила безопасного хранения. Закрытые ключи должны быть защищены на уровне файловой системы: задайте права 600, чтобы только владелец мог читать и записывать этот файл, и избегайте передачи ключей другим пользователям или системам.
Если вы работаете с множеством серверов, удобно настроить ~/.ssh/config
так, чтобы автоматически выбирать нужный ключ в зависимости от сервера, к которому вы подключаетесь. Для этого создайте в ~/.ssh/config
блоки для каждого хоста:
Host ftp_server
HostName ftp.example.com
User akkana
IdentityFile ~/.ssh/ftp_key
Host personal_account
HostName personal.example.com
User akkana
IdentityFile ~/.ssh/personal_key
Такая настройка делает процесс подключения проще, так как вам не нужно вручную указывать ключ при каждом входе.
См. также
ssh(1), ssh_config(5).