Как подключиться по ssh по закрытому ключу
Перейти к содержимому

Как подключиться по ssh по закрытому ключу

  • автор:

Как подключиться по ssh по закрытому ключу

В данной инструкции мы рассмотрим настройку подключения к удалённому серверу/VPS с Unix и Windows систем.

  • Подключение по SSH-ключу на Unix
  • Подключение по SSH-ключу на Windows
  • Подключение к SSH по логину и паролю

Unix:

1) Зайдите в домашний каталог, найдите директорию .ssh или создаём, если её нет. Выставите права 600.

# touch ~/.ssh
# chmod 600 ~/.ssh
# cd ~/.ssh

2) Генерируйте ключ:

# ssh-keygen -t dsa -b 1024 -f ~/.ssh/auth_key
  • -t dsa — тип ключа
  • -b 1024 — длина ключа
  • -f ~/.ssh/auth_key — директория хранения ключа и его название. auth_key — приватный ключ, auth_key.pub — публичный

Фразу-пароль можно пропустить.

auth_key — будет храниться на сервере/компьютере, с которого Вы будете выполнять подключение.

auth_key.pub публичный ключ, размещаете на сервере, к которому будете подключаться, в папке пользователя (пример: /home/user/.ssh)

3) После размещения публичного ключа на сервере необходимо от него отключиться и выполнить новое подключение уже по ключу.

Сделать это можно следующей командой:

# ssh -i ~/.ssh/auth_key user@192.168.0.1
  • ~/.ssh/auth_key — путь к ключу на нашем компьютере.
  • user — имя пользователя, под которым подключаетесь и в директорию которого Вы загрузили публичный ключ.
  • 192.168.0.1 — сервер, к которому подключаетесь.

Подтверждаем вход — Enter.

Windows:

Для создания ключа и подключения к серверу нам понадобятся 2 программы:

  • PuTTY— SSH клиент
  • PuTTYGen— Утилита, предназначенная для генерации RSA и DSA ключей.

Скачать их можно на официальном сайте.

1) Генерируйте ключи.

Запустите PuTTYGen, внизу выберите тип и длину ключа, нажмите «Генерировать»:
2) Сохраните личный и публичный(открытый) ключи.

Личный ключ обязательно необходимо сохранить в виде файла, для этого нажмите кнопку «Личный ключ».
Открытый ключ необязательно сохранять в файл, а можно просто скопировать его из окна «Открытый ключ для вставки. «.

3) Настройте сервер, к которому будете проводить подключение.

Сначала подключитесь «как обычно» по логину и паролю. В домашнем каталоге пользователя создайте (если нет) директорию .ssh и установите права 600.

# touch ~/.ssh
# chmod 600 ~/.ssh
# cd ~/.ssh

Теперь создайте файл:

# touch authorized_keys
# chmod 600 authorized_keys
# vi authorized_keys

И в него вставьте сгенерированный публичный(открытый) ключ из окна PuTTYGen > «Открытый ключ для вставки. «.

Сохраните изменения в файле и отключитесь от сервера.

4) Настройте PuTTY и подключитесь по ключу.

Открываем PuTTY => «Соединение» => «SSH» => «Аутентификация» => Указываем путь к приватному(личному) ключу.

Далее сохраните настройки подключения и подключитесь к серверу.

Введите имя пользователя, нажмите Enter. Подключение будет осуществлено автоматически, без ввода пароля.

Подключение по логину и паролю через PuTTY :

PuTTY также позволяет выполнять подключение по пользовательскому логину и паролю.

Для этого у нас должны быть: host (ip-сервера), имя пользователя, пароль пользователя.

Как создать ключ для авторизации по SSH и добавить его на сервер?

url image

На клиентской стороне должен быть установлен пакет ssh (openssh). На серверах FirstVDS с шаблонами по умолчанию необходимое ПО уже установлено.

Для ОС CentOS, AlmaLinux или RockyLinux выполните команду:

# yum -y install openssh-server openssh-clients

Для ОС Debian или Ubuntu выполните команду:

# apt -y install openssh-server

Дальнейшая инструкция будет одинаковая для всех ОС.

На клиентском компьютере в командной строке выполните команду генерации ключей:

# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase):

Введите путь файла, в который будут помещены ключи. Каталог по умолчанию указан в скобках, в примере /домашний_каталог/.ssh/id_rsa . Если хотите оставить расположение по умолчанию, нажмите Enter.

Пароль (passphrase) используется для ограничения доступа к закрытому ключу. Пароль усложнит использование ключа третьими лицами в случае утраты. Если не хотите использовать секретную фразу, нажмите Enter без заполнения строки.

Успешно сгенерировав пару ключей, вы увидите уведомление:

Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: SHA256:JPDzeSan06C9+osd+sKXWP0RmPk4UbSESaTvYn0aXVk root@test-server1.com The key's randomart image is: +---[RSA 3072]----+ |. oo+o | | o .o. | | + o =. E | | = o= . o | | S.=+ .o | | o.@+.o. | | ..oB.=oo. | | +=o= +. | | +**.. | +----[SHA256]-----+

По умолчанию в современных ОС генерация ключей происходит по умолчанию с такими настройками: тип аутентификации — RSA, число бит в ключе — 2048 или 3072.

Рекомендуем позаботится о безопасности ключей. В первую очередь обязательно необходимо задавать пароль (passphrase), который не должен быть простым. С помощью параметра -a можно увеличить время проверки пароля ключа, чтобы усложнить взлом методом грубого перебора (в случае, если ключ будет утерян, у вас будет больше времени на смену ключа на сервере).

Будьте внимательны, слишком большое значение приведет к тому, что вам придется ждать каждый раз при входе на сервер по ключу. Значение по умолчанию — 3 секунды, можно задать 15 секунд. С помощью параметра -b можно задать число бит в ключе — 4096. Получаем такую команду:

# ssh-keygen -b 4096 -a 15

Выбираем директорию, вводим пароль и видим ключ RSA 4096.

Открытый ключ хранится в файле /домашний_каталог/.ssh/id_rsa.pub , закрытый — /домашний_каталог/.ssh/id_rsa .

Никогда и никому не передавайте, не показывайте свой закрытый ключ и не выкладывайте его на публично доступные сервисы (в т.ч. GitLab, GitHub и пр.).

Скопируйте открытый ключ на сервер в файл /домашний_каталог/.ssh/authorized_keys . Одной строкой:

cat ~/.ssh/id_rsa.pub | ssh root@ip-адрес-сервера 'cat >> ~/.ssh/authorized_keys'

Или откройте этот файл на сервере редактором vi и вставьте строку с открытым ключом после ssh-rsa .

Ещё один способ скопировать ключ в authorized_keys — команда echo , которая помещает строку в конец файла.

echo ssh-rsa строка-публичного-ключа >> /root/.ssh/authorized_keys

Теперь можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключи.

Создание SSH-ключей на Windows с PuTTYgen

Если вы используете ОС Windows, то подключиться по SSH к вашему (Linux) серверу можно через PuTTY или OpenSSH . Генерация ключей в этом случае выполняется также при помощи этих программ. В примере мы используем клиент PuTTY.

Запустите приложение PuTTYgen , которое устанавливается вместе с PuTTY.

Выберите тип ключа SSH2-RSA и нажмите Generate .

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

После завершения создания ключей открытый ключ выводится на экран, закрытый хранится в памяти приложения. Чтобы сохранить эти ключи нажмите Save public key и Save private key . Укажите расположение файлов с ключами.

При сохранении закрытого ключа, если не заполнено поле Key passphrase , появится запрос «Хотите ли вы сохранить ключ без секретной фразы?»

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

Откройте файл authorized_keys через WinSCP и файл, в который вы сохранили открытый ключ (public), на локальном компьютере текстовым редактором. Скопируйте значение ключа, сохраните и закройте файл в WinSCP.

При запуске PuTTY укажите путь к закрытому ключу на локальном компьютере. Для этого во вкладке Connections → Auth выберите необходимый путь.

Теперь можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключи.

Отключение аутентификации по паролю

Подключитесь к серверу по SSH, используя пароль, и откройте файл sshd_config для редактирования (например, с помощью текстового редактора Vi).

# vi /etc/ssh/sshd_config

Убедитесь, что указан правильный путь к открытым ключам SSH, поставьте значение параметра PasswordAuthentication no .

Перезапустите службу sshd:

# systemctl restart sshd

Подключитесь к серверу по SSH без использования пароля. Например, запустите PuTTY, проверьте, что во вкладке Connections -> Auth содержится путь к закрытому ключу и откройте подключение.

Login as: root Authenticating with public key “rsa-key-20230205” Last login: Sun Feb 5 13:11:24 2023 from 1.1.1.1

В случае успешной аутентификации по SSH-ключу вы получите доступ к командной строке сервера и сообщение вида Authenticating with public key «rsa-key-20230205», где rsa-key-20230205 — имя применённого закрытого ключа, указанное вами в файле authorized_keys.

Доступ к Linux-серверам через SSH-ключи

Консультация по продукту 1cloud

В этом руководстве будет рассмотрен процесс подключения к VPS под управлением операционной системы семейства Linux при помощи SSH-key на серверах 1cloud.ru T1M17S

  • Доступ к Linux-серверам через SSH-ключи 2019-07-23 true 640 360

    Что это такое

    Использование SSH-ключей позволяет осуществить подсоединение без использования пароля. При этом такой тип авторизации гораздо безопаснее, чем вход по паролю. Пароль может быть взломан, а ключи практически не поддаются расшифровке. Secure SHell-ключ состоит из открытого и закрытого ключей, которые представляют из себя длинные последовательности символов. Вы можете поместить открытый key на компьютер, а затем разблокировать его, подключившись к нему с клиентом, у которого есть закрытый key. Когда они совпадают, вы соединитесь с виртуальным сервером (no password). Также можно еще повысить уровень безопасности, если использовать кодовое выражение для защиты закрытого ключа. Примечание:
    — порт Secure SHell по умолчанию — 22;
    — по протоколу SSH можно удаленно управлять файлами благодаря SSHFS (Secure SHell FileSystem).

    Создание сервера

    Если при создании машины вы выбрали подключение с помощью Secure SHell-ключа, то вам необходимо его сгенерировать или добавить существующий. При создании VPS ключ будет автоматически на него добавлен.

    Подключение к серверу с компьютера с ОС семейства Линукс

    Welcome

    Вы можете соединиться с VPS командой ssh без ввода пароля. Если вы задавали кодовую фразу, вас попросят ее ввести: ssh user@ Примечание: существуют специальные программы который избавляют пользователей от неудобства каждый раз вводить ключевое выражение, например можно воспользоваться ssh-agent или ssh-add. Подробнее об этом можно почитать здесь.

    Подключение к VPS с компьютера с ОС семейства Windows

    Примечание: Putty — программа для подключения к удаленным машинам по протоколам SSH, TCP, Rlogin, Telnet. В командной строке Windows PowerShell можно использовать утилиту plink.exe входящую в набор. Для подсоединения необходимо настроить Putty. Открываем приложение, выбираем Default Settings и нажимаем Load. В меню слева переходим Connection -> SSH -> Auth, и в поле прописываем путь до сгенерированного приватного ключа. PuTTY ConfigurationДалее возвращаемся на вкладку Session и сохраняем настройки по-умолчанию кнопкой Save. После соединения введите логин и кодовую фразу, если требуется. login

    Тестирование сервера

    • Генерация SSH-ключа для авторизации на сервере
    • Как подключиться к Linux серверу
    • Базовая настройка безопасности Linux-систем
    • Как изменить пароль администратора в Linux

    Ознакомиться с другими инструкциями вы можете на нашем сайте. А чтобы попробовать услугу — кликните на кнопку ниже.

    Как подключиться к серверу по ssh, имея его приватный ключ?

    если под «приватным ключом сервера» подразумевается /etc/ssh/ssh_host_rsa_key (или аналогичный для других протоколов шифрования), то он ни как не поможет подключиться к серверу.

    26 июл 2021 в 17:41

    Тогда возможно это и есть приватный ключ (который id_rsa) и его публичная часть уже лежит на сервере. Что там в начале файла? Покажите первые строчки

    26 июл 2021 в 18:03
    @Igor Нужно от Вас уточнение. Закрытый ключ сервера (sshd) или закрытый ключ клиента на сервере ?
    27 июл 2021 в 3:45

    2 ответа 2

    Сортировка: Сброс на вариант по умолчанию

    Ключи всегда генерируются парой открытый/закрытый и это просто два файла например ida_rsa.pub/ida_rsa Поэтому можно взять закрытый ключ (файл ida_rsa) с сервера и положить на клиент, а на сервер публичный ключ (файл ida_rsa.pub) добавить в файл authorized_keys.

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

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