Как подключиться по 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 и добавить его на сервер?
![]()
На клиентской стороне должен быть установлен пакет 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-ключи


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

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

- Генерация 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.