Авторизация на сервере по ключам SSH
Переосмысление подключения к серверу: отказ от FTP и парольной аутентификации в пользу SSH-ключей


Что куда положить
На вашем компьютере
~/.ssh/rish_ed25519- приватный ключ. Его нельзя отправлять в чат, вставлять на сайт или передавать другому человеку.~/.ssh/rish_ed25519.pub- публичный ключ. Его можно копировать на сервер.~/.ssh/config- локальный файл с удобными короткими именами серверов.
На сервере
/root/.ssh/authorized_keys- список публичных ключей, которым разрешен вход подroot./etc/ssh/authorized_keys/<user>- список публичных ключей для входа по SFTP под пользователем сайта. Каталог и файлы принадлежатroot, поэтому пользователь сайта не может самостоятельно добавить или заменить ключ.
authorized_keys, приватный ключ оставляем у себя на компьютере, а в локальном ~/.ssh/config записываем, каким ключом и к какому серверу подключаться.Как создать ключ
ssh-keygen -t ed25519 -C "ivan-macbook" -f ~/.ssh/rish_ed25519ssh-keygen -t ed25519 -C "ivan-macbook" -f "$HOME\.ssh\rish_ed25519"ssh-keygen -t ed25519 -C "ivan-macbook" -f "%USERPROFILE%\.ssh\rish_ed25519".ssh в папке вашего пользователя (да, именно так, с точкой в самом начале). Иначе команда выдаст ошибку: Saving key "~/.ssh/rish_ed25519" failed: No such file or directory-C добавляет комментарий в конец публичного ключа. Вместо ivan-macbook лучше указать понятный для себя идентификатор: имя человека, устройство или назначение ключа, например ivan-macbook, admin-office или client-site-access. Потом по этому комментарию проще понять, чей ключ лежит в authorized_keys, удалить старый ключ или отозвать доступ человеку, которому он больше не нужен.~/.ssh/rish_ed25519 и ~/.ssh/rish_ed25519.pub. Первый - приватный, второй - публичный. На сервер добавляют содержимое файла с расширением .pub.ssh-keygen спросит passphrase. Можно просто нажать Enter и оставить ключ без дополнительного пароля. Можно задать пароль на сам ключ, но тогда его нужно будет помнить и вводить при использовании ключа.cat ~/.ssh/rish_ed25519.pubnotepad "$HOME\.ssh\rish_ed25519.pub"notepad "%USERPROFILE%\.ssh\rish_ed25519.pub"ssh-ed25519, дальше идет длинная часть ключа, а в конце обычно комментарий, например ivan-macbook. Для копирования на сервер открывайте только файл с расширением .pub. Файл rish_ed25519 без .pub — приватный ключ: его содержимое никому не передавайте – он должен остаться на вашем компьютере.Как создать ключ через PuTTY
Я не рекомендую использовать PuTTY ни для подключения к серверу, ни для создания ключей. В современных Windows уже есть встроенный OpenSSH, а PuTTY хранит ключи в своем формате, из-за чего часто возникает путаница.
Тем не менее в интернете до сих пор много руководств, которые советуют PuTTY как «удобную» и «простую» программу для подключения к серверу. Если вы уже привыкли к этому инструменту, ниже показан рабочий путь через PuTTYgen.
По возможности вместо PuTTY лучше использовать встроенный терминал Windows, а на macOS или Linux — привычный терминал вашей системы. Для MacOS я рекомендую iTerm2.
Если PuTTY еще не установлен, скачивайте его с официальной страницы:
Скачайте вариант для вашей архитектуры.
После установки на компьютере появятся несколько программ, включая сам PuTTY и PuTTYgen. Для создания ключей и преобразования их из одного формата в другой понадобится именно PuTTYgen.

Сначала внизу выберите тип ключа EdDSA. Для EdDSA будет использоваться Ed25519 — это нужный вариант.
После этого нажмите Generate. PuTTYgen попросит двигать мышью внутри окна, чтобы при создании ключа использовались реальные случайные данные.
authorized_keys..ssh, которая находится в папке вашего пользователя (да, именно так, с точкой в начале). Например: C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh.Как добавить ключ на сервер
authorized_keys на сервере. Для входа под root это файл /root/.ssh/authorized_keys. Для SFTP-пользователя сайта в RISH 2.8.0 и новее используется файл /etc/ssh/authorized_keys/<user>. Старый путь /home/<user>/.ssh/authorized_keys больше не используется для входа пользователей сайта.root еще временно разрешен, ключ для входа под root можно добавить с помощью ssh-copy-id:ssh-copy-id -i ~/.ssh/rish_ed25519.pub root@SERVER_IPauthorized_keys и вставьте туда публичный ключ. Публичный ключ должен занимать одну строку целиком: от ssh-ed25519 до комментария в конце. Важно не переносить строку ключа посередине и не добавлять лишние символы. Каждый ключ в authorized_keys пишется с новой строки. После последнего ключа тоже лучше нажать Enter, чтобы файл заканчивался переводом строки. Тогда, если позже кто-то добавит следующий ключ, он начнется с новой строки, а не приклеится к вашему ключу и не сломает обе записи.authorized_keys через Midnight Commander. Для входа под root откройте /root/.ssh/authorized_keys. Ключи SFTP-пользователя сайта администратор добавляет в /etc/ssh/authorized_keys/<user>.F2 и выйдите из редактора.Как подключаться
config подключение выглядит так:ssh -i ~/.ssh/rish_ed25519 root@SERVER_IP-i указывает, какой приватный ключ использовать для подключения. В примере SSH берет ключ из файла ~/.ssh/rish_ed25519 и пытается войти на сервер под пользователем root.Файл ~/.ssh/config
~/.ssh/config нужен, чтобы один раз описать подключение и потом входить короткой командой. Например, вместо длинной команды с IP и ключом вы пишете просто:ssh my-rish-server~/.ssh/config:Host my-rish-server
HostName 203.0.113.10
User root
Port 22
IdentityFile ~/.ssh/rish_ed25519
IdentitiesOnly yesHost- короткое имя, которое вы придумываете сами.HostName- IP-адрес или домен сервера.User- пользователь, под которым входите.Port- порт SSH, обычно22.IdentityFile- путь к приватному ключу.IdentitiesOnly yes- заставляет SSH использовать указанный ключ и не перебирать лишние ключи из агента.
ssh my-rish-server
ssh, но и для scp и sftp. Вообще ее можно будет применять везде на своем компьютере в любых программах для работы с ключами.RishTools делает это проще
config, в сообществе RISH появились утилиты RishMacOSTools и RishWinTools. Они помогают создавать SSH-ключи и вести файл ~/.ssh/config без ручного редактирования каждой строки.Почему мы используем SFTP вместо FTP
FTP не подходит для современной работы с сервером. В классическом FTP логин, пароль и данные могут передаваться без шифрования, поэтому его нельзя считать безопасным способом работы с сервером. Поэтому RISH не строит рабочий процесс вокруг FTP.SFTP. Несмотря на похожее название, это не "улучшенный FTP", а передача файлов поверх SSH. То есть используется тот же защищенный вход, те же пользователи и те же ключи.FTP лучше не использовать. Для файлов на сервере используйте SFTP, потому что он работает через SSH и нормально сочетается с авторизацией по ключам.Если не подключается
- Проверьте, что на сервер добавлен именно публичный ключ, файл с расширением
.pub. - Проверьте, что приватный ключ остался на вашем компьютере и путь к нему правильно указан в
IdentityFile. - Проверьте пользователя: ключ для
rootне дает автоматический вход под другим пользователем. - Для входа под
rootпроверьте права: каталог/root/.sshдолжен принадлежатьroot:rootи иметь режим700, файл/root/.ssh/authorized_keys- принадлежатьroot:rootи иметь режим600. - Для SFTP-пользователя сайта проверьте, что каталог
/etc/ssh/authorized_keysпринадлежитroot:rootи имеет режим755, а файл/etc/ssh/authorized_keys/<user>принадлежитroot:rootи имеет режим644. - Запустите подключение с подробным выводом:
ssh -v my-rish-server. По выводу часто видно, какой ключ SSH пытается использовать.
- Руководство по установке RISH
- Резервное копирование (бэкапы)
- Установка/управление CMS/PMA
- Клонирование сайтов
- Авторизация на сервере по ключам SSH
- Что представляет собой RISH?
- Midnight Commander (MC) – курс выживания для владельцев веб-серверов
- Системные требования
- Статистика сайтов сервера
- У вас проблемы со входом на сервер?
- AlmaLinux видит не весь диск: почему и как исправить
- Сертификаты Минцифры на AlmaLinux и RISH: как проверить и установить на ваш сервер
- Почему мы не строим RISH на Ubuntu















