Как войти в свой экземпляр Hetzner с помощью SSH-ключа

0 Акции
0
0
0
0

Введение

Для безопасного доступа к вашему экземпляру Hetzner с локального компьютера рекомендуется использовать SSH-ключ. В этом руководстве я расскажу вам, как настроить безопасный вход с помощью SSH-ключа на новом экземпляре Hetzner.

Пароли часто очень слабые. Чем сложнее пароль, тем сложнее его запомнить, и использование менеджера паролей неизбежно. Ключи SSH также выигрывают от своей длины. Они могут быть длиной до 4096 бит. Вы также можете использовать различные алгоритмы, например, ECC (криптография на эллиптических кривых) с использованием стандарта ed25519, который мы также будем использовать в этом руководстве.

Предпосылки
  • Облачный аккаунт Hetzner
  • Разрешения на создание проекта Hetzner и экземпляра Hetzner
  • ssh-keygen, cat и nano установлены на вашем локальном компьютере

Шаг 1 — Создайте локальный ключ SSH

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

SSH-ключ - MacbookPro 13 дюймов - [email protected]

ssh-keygen -t ed25519 -C "some comment here"

Затем вам будет предложено указать имя и местоположение файла ключа SSH. Чтобы оставить имя по умолчанию (ed25519) и местоположение (/home/user/.ssh/), просто нажмите Enter. Если вы хотите назвать файл так, чтобы различать ключи для разных серверов, введите /home/user/.ssh/server01, заменив user своим именем пользователя.

Затем вам нужно установить пароль, чтобы повысить безопасность сервера. На YouTube и в интернете есть множество обучающих программ, в которых просто не рекомендуется добавлять парольную фразу. Мы настоятельно рекомендуем установить парольную фразу для настройки безопасного экземпляра. Эта парольная фраза защищает закрытый ключ, поэтому никто не сможет получить доступ к серверу, даже если у него есть доступ к вашему компьютеру. Вы можете настроить SSH-клиент на взаимодействие с KeyPass, чтобы не вводить пароль каждый раз, но имейте в виду, что KeyPass обычно всегда включен, поэтому прямой доступ к вашему сеансу, в котором вы вошли в систему, не предотвращает несанкционированный доступ к серверу в этот момент. Однако это защищает от копирования файла и использования его на другом компьютере. По умолчанию эта команда создает открытый и закрытый ключи с именами id_ed25519.pub и id_ed25519, которые хранятся в каталоге ~/.ssh/. Файл id_ed25519.pub — это открытый ключ, который необходим серверу для аутентификации пользователя, а файл id_ed25519 — это ваш закрытый ключ, к которому никто, кроме вас, не должен иметь доступа, особенно если вы пропустите шаг установки парольной фразы.

Шаг 2 — Добавьте ключ SSH в вашу консоль Hetzner Cloud

На этом этапе важно уточнить, что SSH-ключи не являются общими для разных проектов Hetzner. Это означает, что вам придётся повторять этот шаг с тем же ключом или с разными ключами для каждого нового проекта.

  • Выберите проект или создайте новый.
  • В левом меню вашего проекта выберите пункт меню Безопасность.
  • Нажмите кнопку Добавить ключ SSH.
  • На локальном компьютере выполните команду cat /home/user/.ssh/id_ed25519.pub, чтобы просмотреть содержимое файла или открыть его в редакторе.
  • Скопируйте содержимое файла id_ed25519.pub с локального устройства в буфер обмена, выбрав «Вывод» и нажав ctrl+shift+c.
  • Введите ключ SSH в соответствующее поле в вашем аккаунте Hetzner.
  • Добавьте имя для ключа SSH, чтобы идентифицировать его в консоли Hetzner Cloud Console, или оставьте автоматически сгенерированное имя на основе имени ключа.
  • Вот и всё. Этот SSH-ключ готов к использованию каждый раз при создании нового экземпляра для этого проекта.

Шаг 3 — Создайте экземпляр Hetzner с ключом SSH, добавленным в Cloud Console.

  • В левом меню проекта, куда вы добавили SSH-ключ на предыдущем шаге, выберите пункт меню Серверы.
  • Нажмите кнопку Добавить сервер.
  • Выберите местоположение, операционную систему, тип и другие необходимые параметры.
  • В разделе «Ключ SSH» обязательно нажмите на предложенный ключ SSH, добавленный на предыдущем шаге. Поле «Ключ» должно быть выделено.
  • Создайте образец, нажав «Создать и купить».

Шаг 4 — Проверьте вход с помощью ключа SSH с локального компьютера.

  • Скопируйте IP-адрес экземпляра Hetzner
  • Для начала войдите в систему на локальном компьютере. Замените xxx.xxx.xxx.xxx на IP-адрес созданного вами экземпляра Hetzner.
  • Введите yes, чтобы добавить отпечаток в файл known_host.
  • Введите парольную фразу, которую вы установили для ключа SSH.
  • Вот и всё. Если вы видите пример приветственного сообщения Ubuntu Hetzner, процесс прошёл успешно.

Шаг 5 — Добавьте SSH-ключ к ранее созданному серверу

Если вы создали свой сервер до добавления ключа SSH, вы не сможете назначить его своему серверу через Cloud Console.

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

Содержимое вашего файла открытого ключа с использованием:

cat /home/user/.ssh/id_ed25519.pub

Выберите вывод с помощью ctrl+shift+c

Войдите на свой сервер, используя:

ssh root@server_ip

Запишите ключ сервера:

  • Как пользователь root:
echo "keyfile_content" >> /root/.ssh/authorized_keys
  • Как и любой другой пользователь:
echo "keyfile_content" >> /home/user/.ssh/authorized_keys

Замените keyfile_content содержимым файла id_ed25519.pub, который вы только что скопировали. Замените пользователя именем пользователя.

nano /etc/ssh/sshd_config

Если установлен, вы можете заменить nano на предпочитаемый вами редактор.

Если вы хотите отключить вход по паролю, найдите строку с PermitRootLogin и измените ее на:

PermitRootLogin prohibit-password

Это отключает использование небезопасных паролей и принимает только ваши ключи SSH.

Чтобы перезагрузить демон SSH и активировать новые настройки, выполните:

systemctl restart sshd

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

Если вы внимательно выполнили эти шаги и все работает по плану, вы можете продолжить работу с производственным сервером и снова удалить тестовый сервер.

Результат

Теперь вы можете войти в свой экземпляр Hetzner безопасным способом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может понравиться