
статья про создание ключа ssh, добавление его на удаленный сервер и профил ssh для этого
Создание SSH-ключа, добавление его на удалённый сервер и настройка SSH-профиля — базовая практика для безопасного и удобного удалённого доступа. Ниже подробная инструкция в виде статьи.
Создание SSH-ключа, добавление на сервер и настройка профиля SSH
1. Генерация SSH-ключа
SSH-ключ позволяет аутентифицироваться на сервере без пароля, используя криптографию.
Открой терминал на локальной машине и выполни команду:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa— тип ключа RSA (можно использовать также ed25519 при поддержке).-b 4096— длина ключа (чем больше, тем безопаснее).-C— комментарий для идентификации (обычно email).
При выполнении команда спросит, куда сохранить ключ (по умолчанию ~/.ssh/id_rsa), можешь принять значение по умолчанию нажатием Enter.
По желанию введи парольную фразу (passphrase) для повышения безопасности — при каждом использовании ключа потребуется ввод этого пароля.
После генерации в папке ~/.ssh/ появятся два файла:
id_rsa— приватный ключ (хранить в секрете!).id_rsa.pub— публичный ключ, который нужно добавить на сервер.
2. Добавление публичного ключа на удалённый сервер
Для того чтобы разрешить доступ с помощью ключа, публичный ключ нужно добавить в файл ~/.ssh/authorized_keys пользователя на сервере.
Есть удобная команда:
ssh-copy-id user@remote-server
Она автоматически скопирует содержимое ~/.ssh/id_rsa.pub на сервер и добавит в ~/.ssh/authorized_keys.
Если ssh-copy-id недоступна, сделай это вручную:
- Скопируй публичный ключ:
cat ~/.ssh/id_rsa.pub
- Подключись к серверу:
ssh user@remote-server
- Если папки
.sshнет, создай её:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
- Добавь публичный ключ:
echo "вставь_сюда_содержимое_id_rsa.pub" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
3. Настройка профиля SSH клиента (~/.ssh/config)
Чтобы не писать каждый раз полный адрес, пользователя и путь к ключу, создай или отредактируй файл ~/.ssh/config:
Host myserver
HostName remote-server.example.com
User user
Port 22
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes
Host myserver— псевдоним для подключения.HostName— реальный адрес сервера.User— имя пользователя на сервере.Port— порт SSH (22 по умолчанию).IdentityFile— путь к приватному ключу.ForwardAgent— позволяет агенту передавать ключ при ssh-переходах (опционально).
Теперь подключиться можно командой:
ssh myserver
без указания пользователя, адреса и ключа.
Итоги и безопасность
- Приватный ключ надо хранить в безопасности — он даёт полный доступ.
- Пользуйся паролем для ключа, если опасаешься кражи.
- Если потерял ключ или подозреваешь компрометацию — удаляй соответствующую строку из
authorized_keysна сервере. - Рекомендуется использовать современный тип ключа ed25519:
ssh-keygen -t ed25519 -C "email"
Эта процедура — базис для безопасной работы с серверами и автоматизации, например, деплоя сайтов с помощью rsync и других средств по SSH.
Если нужен пример скрипта или помощь с конкретной системой — обращайтесь.