Подключение к серверу по SSH с ключом и парольной фразой

Подключение к серверу по SSH с ключом и парольной фразой

Вход на сервер по SSH-ключу намного безопаснее привычного входа по паролю. Рассказываем, как настроить аутентификацию по ключу, как добавить публичный, или открытый, ключ на сервер, что такое парольная фраза и почему её тоже стоит установить.

Аутентификация с ключом — безопасный способ подключения к серверу по SSH. В этом случае вместо пароля для проверки подлинности пользователя нужны два ключа для шифрования/дешифровки. Аутентификация с криптографическим ключом позволяет входить в систему автоматически и обеспечивает высокую степень защиты, в то время как даже самый надёжный пароль можно подобрать.

Из нашего материала вы узнаете, как настроить двухфакторную аутентификацию с SSH-ключом на Linux, Windows и MacOS.

Как сгенерировать SSH-ключи

На Linux и MacOS

  1. Прежде всего убедитесь, что в целевой директории нет уже существующих ключей. Это важно, так как при генерации старые файлы будут перезаписаны. Например, команда для поиска в каталоге по умолчанию:
ls -l ~/.ssh/id*

Если ключей нет, вы увидите сообщение, что искомых файлов или директории не найдено.

  1. Создайте каталог .ssh и установите правильные права доступа:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
  1. Сгенерируйте ключи:
ssh-keygen

Будет создана пара ключей — закрытый, или приватный, который хранится на стороне пользователя id_rsa, и открытый, или публичный, который будет передан серверу id_rsa.pub.

  1. По умолчанию они будут созданы в директории home/username/.ssh/. Вы можете оставить этот путь или ввести другой.
  2. Затем укажите парольную фразу passphrase, она предотвратит несанкционированный доступ к пользовательскому private-key. Если не хотите задавать её на этом этапе — оставьте поле пустым и нажмите «Ввод».
  3. В завершение система проинформирует вас о том, где хранятся сгенерированные ключи, и предоставит их в цифровом и графическом виде.

На Windows

  1. Откройте командную строку Windows.
  2. Команда генерации — та же, что на Linux и MacOS:
ssh-keygen
  1. Дефолтная папка на Windows — C:\Users\<user_name>\.ssh\. Вы можете оставить её или ввести любой путь в ответ на соответствующий запрос.
  2. Если вы собираетесь перезаписать существующие файлы — подтвердите это действие.
  3. Укажите и затем подтвердите парольную фразу, если она нужна.

Как добавить открытый ключ на сервер

  1. На удалённом сервере создайте каталог .ssh, установите для него разрешения:
ssh <user_name>@<host_name/ip> "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
  1. Создайте файл для хранения открытого ключа, назначьте разрешения:
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
  1. Если SSH-клиент запущен на локальном устройстве с Linux, передайте id_rsa.pub на SSH-server с помощью:
ssh-copy-id <user_name>@<host_name/ip>

Если вы работаете на других ОС, отредактируйте authorized_keys вручную. Если открытых ключей несколько, пропишите каждый с новой строки. Не забудьте сохранить изменения. 

Подключение к серверу и авторизация

  1. Подключитесь к удалённому серверу по протоколу SSH:
ssh <user_name>@<host_name/ip>
  1. Если была указана парольная фраза, вам предложат ввести её, чтобы разблокировать закрытый ключ.

Когда SSH-client пытается установить соединение с сервером, тот передаёт ему специальное сообщение. Клиент получает его, кодирует с помощью своего ключа и отправляет обратно. Сервер дешифрует вернувшееся сообщение и проверяет его на ошибки. После проверки соединение будет установлено.

Зачем нужна парольная фраза

Если злоумышленник получит доступ к локальному устройству, на котором хранится закрытый ключ, то он может получить доступ и к системе, использующей его. Кодовая фраза добавляет дополнительный защитный рубеж: папка с закрытым ключом будет недоступна до ввода пароля. При взломе это даст вам дополнительное время, чтобы принять необходимые меры защиты. Единственный минус: пароль нужно вводить каждый раз при установке соединения и это может быть неудобно или занимать много времени, если вы часто подключаетесь к серверу. Однако пароль можно безопасно хранить вместе с остальными ключами в SSH-агенте, что избавляет от необходимости постоянно вводить его. Если нужно снизить риски, агент можно настроить таким образом, чтобы он забывал пароль по прошествии указанного времени — в конце статьи мы расскажем, как это сделать.

Как управлять парольными фразами

Парольную фразу можно создать как одновременно с ключом SSH, так и позднее в любое время. Вы можете добавить или изменить её для уже существующего ключа, генерировать новую пару для этого не нужно.

  1. Введите команду:
ssh-keygen -p -f ~/.ssh/id_ed25519
  1. Вам предложат ввести старый пароль (если вы создаёте его впервые, не вводите ничего).
  2. Затем укажите новый (оставьте поле пустым, если собираетесь удалить, а не заменить его); повторите.
  3. После этого будет выведено сообщение, подтверждающее выполнение:
Your identification has been saved with the new passphrase

Как добавлять ключи в SSH-агент

SSH-agent — это часть OpenSSH. Базовая команда для взаимодействия с ним — ssh-add. Если передать её без дополнительных параметров, утилита выполнит поиск стандартных ключей и паролей id_rsa, id_ed25519, id_dsa, id_ecdsa в папке по умолчанию.

Если же вы хотите добавить в SSH-agent ключи на ограниченное время, запустите

ssh-add -t <секунды>

Заключение

SSH-подключение с входом по ключу безопаснее привычного входа по паролю.

Его основные преимущества:

  • Надёжная защита, сложнее взломать. 1024-битный ключ по сложности примерно соответствует паролю из 12 символов, но вы можете использовать и более длинные ключи — 2048-битные или 4096-битные, которые обеспечивают повышенную защиту.
  • Сложно подобрать. Генерация происходит с использованием компьютерных алгоритмов случайного выбора, что затрудняет подбор или предсказание.
  • Малая поверхность атаки. Установить соединение с сервером может только то устройство, на котором хранится приватный ключ. То есть атака злоумышленников должна быть точечной, а это затрудняет её и снижает вероятность нападения.
  • Приватный ключ не передаётся по сети. Во время аутентификации он остаётся на локальном устройстве пользователя и никогда не передаётся по сети. Поэтому никто из посторонних не сможет получить доступ к нему.
  • Многофакторная аутентификация. Добавление парольной фразы обеспечивает дополнительный уровень защиты, так как теперь для подключения к серверу требуются и ключи, и парольная фраза.
  • Автоматизация. Аутентификация по ключу — это автоматизированный и при этом безопасный вход в удалённую систему.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Что будем искать? Например,VPS-сервер

Мы в социальных сетях