Найти в Дзене
Kvmka.ru

Что такое SSH-ключ и как ими пользоваться?

SSH-ключи — это способ безопасной аутентификации на сервере по протоколу SSH (Secure Shell). Они заменяют традиционный способ входа по логину и паролю, обеспечивая более надёжную защиту от взлома и брутфорса. Аутентификация по SSH-ключам использует асимметричную криптографию:
- Приватный ключ (id_rsa) хранится на вашем локальном устройстве.
- Публичный ключ (id_rsa.pub) размещается на сервере в файле ~/.ssh/authorized_keys. На Linux/macOS: ssh-keygen -t rsa -b 4096 -C "ваш_email@example.com" Или с помощью ED25519: ssh-keygen -t ed25519 -C "ваш_email@example.com" Автоматически: ssh-copy-id user@your-vps-ip Или вручную скопировать содержимое ~/.ssh/id_rsa.pub в файл ~/.ssh/authorized_keys. ssh -i ~/.ssh/id_rsa user@your-vps-ip 1. Откройте файл /etc/ssh/sshd_config: sudo nano /etc/ssh/sshd_config 2. Убедитесь, что там прописано: PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no 3. Перезапустите SSH-сервер: sudo systemctl restart sshd - Никогда не передавайте его нико
Оглавление
SSH-Key
SSH-Key

Что такое SSH-ключ и как ими пользоваться?

SSH-ключи — это способ безопасной аутентификации на сервере по протоколу SSH (Secure Shell). Они заменяют традиционный способ входа по логину и паролю, обеспечивая более надёжную защиту от взлома и брутфорса.

Как работает SSH-ключ?

Аутентификация по SSH-ключам использует асимметричную криптографию:
- Приватный ключ (id_rsa) хранится на вашем локальном устройстве.
- Публичный ключ (id_rsa.pub) размещается на сервере в файле

~/.ssh/authorized_keys.

Как создать SSH-ключ?

На Linux/macOS:

ssh-keygen -t rsa -b 4096 -C "ваш_email@example.com"

Или с помощью ED25519:

ssh-keygen -t ed25519 -C "ваш_email@example.com"

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

Автоматически:

ssh-copy-id user@your-vps-ip

Или вручную скопировать содержимое ~/.ssh/id_rsa.pub в файл ~/.ssh/authorized_keys.

Как войти на сервер с использованием ключа?

ssh -i ~/.ssh/id_rsa user@your-vps-ip

Как отключить вход по паролю и оставить только SSH-ключ?

1. Откройте файл /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

2. Убедитесь, что там прописано:

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no

3. Перезапустите SSH-сервер:

sudo systemctl restart sshd

Как защитить приватный ключ?

- Никогда не передавайте его никому.
- Храните в ~/.ssh/ с правами доступа 600.
- Используйте парольную фразу при генерации ключа.
- Используйте SSH-агент для удобства работы.

Где применяются SSH-ключи?

- Подключение к VPS/VDS-серверам
- Работа с Git (GitHub, GitLab)
- Обмен данными через rsync, scp
- CI/CD пайплайны
- VPN и туннелирование

Готовый скрипт для macos linux, Ubuntu

Создай TXT файл на своем компьютере

#!/bin/bash
# Запрос email и IP сервера
read -p "Введите ваш email (для комментария к ключу): " email
read -p "Введите IP-адрес сервера: " server_ip
read -p "Введите имя пользователя на сервере: " username
# Путь к ключу
key_path="$HOME/.ssh/id_ed25519"
# Генерация ключа, если он не существует
if [ ! -f "$key_path" ]; then
echo "Генерируем новый SSH-ключ..."
ssh-keygen -t ed25519 -C "$email" -f "$key_path" -N ""
else
echo "Ключ уже существует: $key_path"
fi
# Копирование ключа на сервер
echo "Копируем ключ на сервер..."
ssh-copy-id -i "${key_path}.pub" "$username@$server_ip"
# Установка прав на сервере
echo "Настраиваем права на сервере..."
ssh "$username@$server_ip" << EOF
mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
echo "Права успешно выставлены на сервере."
EOF
echo "✅ Настройка завершена. Можно подключаться: ssh $username@$server_ip"

Сделай файл исполняемым

chmod +x setup_ssh.sh

Запусти и ответь на все вопросы. Нужно ввести email, IP адрес сервера и пароль от сервера.

./setup_ssh.sh

Заключение

SSH-ключи — это безопасный, удобный и современный способ подключения к удалённым серверам. Использование SSH-ключей и отключение паролей — одно из главных правил по обеспечению безопасности на VPS и облачных платформах.

Присоединяйтесь к нашей группе в телеграм https://t.me/kvmka

Подписывайтесь на наш канал https://t.me/kvmka_channel

Наш сайт http://kvmka.ru