Добавление публичного ключа на сервер и первый вход по SSH
Публичный ключ на сервере и первый вход по SSH: ваш цифровой "ключ от квартиры"
Вы только что арендовали сервер — это как новая квартира в виртуальном мире. Но чтобы зайти внутрь, нужен ключ. Пароль — это как кодовый замок на двери: его можно подобрать или украсть. А SSH-ключи — это как уникальный электронный ключ, который открывает дверь только вам, причём без риска, что его скопируют.
В этом уроке вы научитесь: ✅ Генерировать пару ключей (публичный + приватный) на своём компьютере. ✅ Переносить публичный ключ на сервер безопасно (три проверенных метода). ✅ Настраивать сервер так, чтобы вход по паролю стал невозможен (это критично для безопасности!). ✅ Подключаться к серверу по SSH одной командой, как профессионал.
1. Почему SSH-ключи лучше паролей?
| Проблема паролей | Преимущества SSH-ключей |
|---|---|
| Легко подобрать брутфорсом (перебором) | 2048-битный ключ невозможно взломать за разумное время |
| Можно украсть через фишинг или кейлоггер | Приватный ключ хранится только на вашем ПК и защищён паролем |
| Нужно запоминать сложные комбинации | Одна пара ключей работает для всех ваших серверов |
| При утечке — сервер скомпрометирован | Можно отозвать ключ в один клик (удалить с сервера) |
Аналогия: Пароль — как код от сейфа в отеле (его знают администраторы, уборщики, предыдущие гости). SSH-ключ — как ваш персональный отпечаток пальца, который проверяется сканером (сервером) и не передаётся по сети.
2. Генерация SSH-ключей на вашем компьютере
2.1. Проверка существующих ключей
Прежде чем генерировать новые ключи, проверьте, нет ли их уже:
ls ~/.ssh/
Если вы видите файлы id_rsa (приватный ключ) и id_rsa.pub (публичный), ключи уже есть. Можно использовать их или сгенерировать новые.
2.2. Создание новой пары ключей
Выполните команду (на вашем локальном компьютере, не на сервере!):
ssh-keygen -t rsa -b 4096 -C "ваш_email@example.com"
Расшифровка флагов:
-t rsa— тип ключа (RSA — самый надёжный для большинства задач).-b 4096— длина ключа в битах (чем больше, тем безопаснее).-C "..."— комментарий (обычно email), чтобы идентифицировать ключ.
Что будет происходить:
- Система спросит, куда сохранить ключи. Нажмите Enter, чтобы оставить путь по умолчанию (
~/.ssh/id_rsa). - Система предложит ввести парольную фразу (passphrase) для приватного ключа.
- Рекомендация: придумайте сложную фразу (например,
КотПушкинЛюбитМолоко!2024). Это защитит ключ, если его украдут с вашего ПК. - Если оставите пустым — ключ будет работать без пароля (удобно, но менее безопасно).
- Рекомендация: придумайте сложную фразу (например,
Важно:
- Приватный ключ (
id_rsa) — это ваш секретный ключ от квартиры. Никому его не показывайте!- Публичный ключ (
id_rsa.pub) — это замочная скважина. Его можно копировать на серверы.
3. Копирование публичного ключа на сервер
Теперь нужно поместить публичный ключ в специальный файл на сервере — ~/.ssh/authorized_keys. Есть три способа это сделать.
Способ 1: Команда ssh-copy-id (самый простой)
Если на вашем локальном компьютере есть утилита ssh-copy-id, используйте её:
ssh-copy-id пользователь@IP_сервера
- Замените
пользовательна имя пользователя на сервере (обычноrootили ваше имя). IP_сервера— это IP-адрес вашего сервера (например,192.168.1.100).
Что произойдёт:
- Система запросит пароль от сервера (последний раз!).
- Ключ будет скопирован в
~/.ssh/authorized_keys. - Права на файл будут настроены автоматически.
Если команды
ssh-copy-idнет (например, на Windows), используйте Способ 2 или 3.
Способ 2: Ручное копирование через SSH
-
Выведите содержимое публичного ключа на экран:
cat ~/.ssh/id_rsa.pubСкопируйте весь вывод (начинается с
ssh-rsa AAA...). -
Подключитесь к серверу по SSH с паролем:
ssh пользователь@IP_сервера -
На сервере выполните:
mkdir -p ~/.ssh echo "вставьте_скопированный_ключ" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keyschmod 600— устанавливает правильные права доступа (только вы можете читать файл).
Способ 3: Копирование через scp (для продвинутых)
Если у вас нет доступа по SSH, но есть другой способ загрузить файлы (например, через панель хостинга), скачайте публичный ключ и загрузите его на сервер вручную:
scp ~/.ssh/id_rsa.pub пользователь@IP_сервера:/tmp/
Затем на сервере:
mkdir -p ~/.ssh
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm /tmp/id_rsa.pub
4. Первый вход по SSH-ключу
Теперь попробуйте подключиться без пароля:
ssh пользователь@IP_сервера
- Если вы устанавливали парольную фразу (passphrase), система её запросит.
- Если всё настроено правильно — вы попадете на сервер без ввода пароля!
Проблемы?
- "Permission denied (publickey)" — ключ не скопировался или неправильные права на файл. Решение: проверьте
ls -la ~/.ssh/authorized_keys(должно быть-rw-------).- "Agent admitted failure to sign" — SSH-агент не загрузил ваш ключ. Решение: выполните
ssh-add ~/.ssh/id_rsa(и введите passphrase).
5. Отключаем вход по паролю (ОБЯЗАТЕЛЬНО!)
Теперь, когда SSH-ключи работают, закройте лазейку для хакеров — отключите вход по паролю.
-
Подключитесь к серверу:
ssh пользователь@IP_сервера -
Откройте конфиг SSH:
sudo nano /etc/ssh/sshd_config -
Найдите и измените следующие строки:
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no(Если строки закомментированы
#, раскомментируйте их.) -
Сохраните файл (
Ctrl+O, затемEnter) и закройте (Ctrl+X). -
Перезапустите SSH-сервер:
sudo systemctl restart sshd
⚠️ ВАЖНО:
- Перед перезапуском откройте второй терминал и проверьте, что вход по ключу работает.
- Если что-то пойдёт не так, вы можете потерять доступ к серверу! (В этом случае поможет консоль хостинга или KVM от провайдера.)
6. Упрощаем подключение: конфиг SSH на локальном ПК
Чтобы не вводить каждый раз ssh пользователь@IP_сервера, создайте конфиг:
-
Откройте (или создайте) файл:
nano ~/.ssh/config -
Добавьте следующий блок (замените данные на свои):
Host мой_сервер HostName IP_сервера User пользователь IdentityFile ~/.ssh/id_rsa Port 22мой_сервер— произвольное имя (например,arb-server).Port 22— порт по умолчанию (если вы его меняли, укажите свой).
-
Сохраните файл. Теперь подключение упрощается до:
ssh мой_сервер
7. Бонус: как управлять несколькими ключами
Если у вас несколько серверов, можно:
- Сгенерировать разные пары ключей для каждого сервера (например,
id_rsa_arb,id_rsa_web). - В конфиге
~/.ssh/configуказать разныеIdentityFile.
Пример:
Host арбитражный_сервер
HostName 192.168.1.100
User root
IdentityFile ~/.ssh/id_rsa_arb
Host веб_сервер
HostName 192.168.1.200
User deploy
IdentityFile ~/.ssh/id_rsa_web
Практика для закрепления
Упражнение 1: Проверка понимания
Ответьте на вопросы:
- Чем отличается приватный ключ от публичного?
- Почему вход по паролю менее безопасен, чем по SSH-ключу?
- Что произойдёт, если удалить
authorized_keysна сервере?
Упражнение 2: Генерация и копирование ключа
- Сгенерируйте новую пару ключей с парольной фразой.
- Скопируйте публичный ключ на сервер всеми тремя способами (для практики).
- Убедитесь, что вход работает.
Упражнение 3: Настройка безопасности
- Отключите вход по паролю в
sshd_config. - Перезапустите SSH-сервер.
- Попробуйте подключиться по паролю — должно выдать ошибку.
Упражнение 4: Упрощение подключения
- Настройте
~/.ssh/configдля вашего сервера. - Подключитесь к серверу одной командой (например,
ssh мой_сервер).
Упражнение 5: Диагностика проблем
Сценарий: После копирования ключа вы получаете ошибку Permission denied (publickey).
- Перечислите 3 возможные причины.
- Опишите, как их устранить.
Итоги урока
✅ Вы научились генерировать безопасные SSH-ключи и понимаете, почему они лучше паролей. ✅ Теперь умеете копировать ключи на сервер тремя способами и настраивать права. ✅ Вы отключили вход по паролю, закрыв основную лазейку для хакеров. ✅ Подключение к серверу стало быстрым и удобным благодаря конфигу SSH.
Следующий шаг: В следующем уроке мы настроим fail2ban (защиту от брутфорса) и двухфакторную аутентификацию (2FA) для ещё большей безопасности.
Помните: SSH-ключи — это как цифровой паспорт для вашего сервера. Храните приватный ключ в безопасности, и никто не сможет проникнуть на ваш сервер без вашего разрешения!
Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно