Перейти к содержимому
Перейти в KPanelПерейти в KPanel
Содержание
Сайты

Добавление SSH-ключей на сайт

Машинный перевод. Английский оригинал доступен.

SSH доступ к сайту KapsuleHost только по ключу, поэтому перед тем как открыть оболочку или SFTP-сессию, нужно зарегистрировать публичный ключ для сайта в KPanel. В этом руководстве описано, где находится эта страница, как добавить уже имеющийся ключ, как поручить KapsuleHost сгенерировать его за вас, и как отозвать ключ, которому вы больше не доверяете.

Где находится страница SSH-ключей

Откройте раздел Веб-сайты, выберите сайт, затем откройте группу Параметры в левом меню сайта и выберите SSH-ключи. Страница называется SSH доступ и содержит две вещи: данные для подключения к этому сайту и список публичных ключей, которым в данный момент разрешено их использовать.

В главной боковой панели нет отдельного пункта верхнего уровня для SSH. Ключи привязаны к конкретному сайту, поэтому ключ, добавленный здесь, подтверждает доступ только к этому сайту. Если у вас несколько сайтов, для каждого нужна своя запись, даже если это один и тот же ключ с вашего ноутбука.

Страница SSH доступа для сайта в KPanel с данными для подключения и списком авторизованных публичных ключей

Для добавления или отзыва ключа требуется разрешение sites:write. Если у вас командный аккаунт с ролью только для чтения, кнопка Добавить ключ и значок отзыва скрыты. Попросите владельца аккаунта или администратора внести изменение.

Данные для подключения

Карточка Данные для подключения в верхней части страницы показывает всё, что нужно вашему клиенту:

ПолеЧто это
HostИмя хоста для подключения
PortПорт SSH для этого сайта
UsernameСистемный пользователь, от имени которого работает сайт
SSHГотовая команда ssh для этого сайта
SFTPГотовая команда sftp для этого сайта

У каждой строки есть элемент копирования, причём строки SSH и SFTP копируют всю команду целиком, а не только значение, так что можно сразу вставить её в терминал. Используйте именно их, а не набирайте команду вручную: в них уже указаны правильные пользователь, хост и порт.

Если карточка вообще не отображается, значит у сайта ещё не завершено создание пользователя оболочки. В этом случае API возвращает обычную ошибку Сайт не имеет SSH пользователя. Дождитесь, пока индикатор состояния сайта не покажет Active, и обновите страницу.

Добавление уже имеющегося ключа

У большинства людей уже есть пара ключей на своём компьютере. Добавьте сюда публичную половину.

  1. На своём компьютере выведите на экран публичный ключ. В macOS и Linux это обычно cat ~/.ssh/id_ed25519.pub, либо cat ~/.ssh/id_rsa.pub для более старого ключа RSA. В Windows с OpenSSH это type %USERPROFILE%\.ssh\id_ed25519.pub.
  2. Скопируйте всю строку целиком, начинающуюся с ssh-ed25519, ssh-rsa или ecdsa-sha2-nistp256.
  3. В KPanel нажмите Добавить ключ.
  4. Введите в поле Label что-нибудь запоминающееся, например название машины, на которой хранится ключ.
  5. Вставьте публичный ключ во второе поле.
  6. Нажмите Добавить ключ.

Ключ сразу же появится в списке Authorised keys, с отпечатком под меткой. Подключиться можно немедленно.

KapsuleHost также отправляет письмо на адрес аккаунта при каждом добавлении ключа, указывая метку, отпечаток и сайт. Это сделано намеренно: SSH доступ требует высокого доверия, поэтому если появляется ключ, который вы не добавляли, отзовите его и сразу же смените пароль.

Вставляйте только файл .pub. Файл приватного ключа не имеет расширения .pub и начинается со строки вида -----BEGIN OPENSSH PRIVATE KEY-----. Если вы вставили именно его, значит это ваш приватный ключ, и его нужно сгенерировать заново, а не использовать повторно.

Если у вас ещё нет ключа

Сгенерируйте его локально с помощью ssh-keygen -t ed25519 -C "your-label", примите расположение файла по умолчанию и задайте пароль-фразу при запросе. В результате получится ~/.ssh/id_ed25519 (храните его в тайне) и ~/.ssh/id_ed25519.pub (вставьте именно его).

Поручить KapsuleHost сгенерировать пару ключей

Если вы не хотите запускать ssh-keygen, KPanel может создать пару за вас.

  1. Нажмите Добавить ключ.
  2. Заполните поле Label. Поле публичного ключа оставьте пустым.
  3. Нажмите Создать пару ключей.

KapsuleHost создаёт пару Ed25519, устанавливает публичную половину для сайта и показывает зелёный баннер: Пара ключей создана: загрузите приватный ключ сейчас. Нажмите Загрузить .pem, чтобы сохранить приватный ключ. Файл будет назван по выбранной вами метке.

Приватный ключ показывается один-единственный раз. Баннер прямо об этом предупреждает: это единственная возможность его скачать. KapsuleHost не хранит копию, которую можно получить позже. Если вы закрыли баннер, не скачав ключ, отзовите его и сгенерируйте новую пару.

У сгенерированного ключа нет пароля-фразы, что и позволяет использовать его из скрипта без запроса. Это также означает, что сам файл является единственным удостоверением доступа. Если вам нужен пароль-фраза, сгенерируйте пару самостоятельно с помощью ssh-keygen и вставьте публичную половину.

После скачивания переместите файл в подходящее место и ужесточите права доступа к нему, поскольку SSH отказывается использовать приватный ключ, доступный для чтения всем:

mv ~/Downloads/my-laptop_id_ed25519.pem ~/.ssh/kapsule-mysite.pem
chmod 600 ~/.ssh/kapsule-mysite.pem
ssh -i ~/.ssh/kapsule-mysite.pem <username>@<host> -p <port>

Подставьте имя пользователя, хост и порт из карточки Данные для подключения.

Чтение списка авторизованных ключей

Каждая строка в Authorised keys показывает:

  • Метку, которую вы дали ключу.
  • Отпечаток ключа, по которому можно отличить два похожих ключа друг от друга.
  • Added с датой регистрации.
  • Последнее использование с датой последней аутентификации, либо Ни разу не использовался, если ключ ещё ни разу не использовался.

Столбец Последнее использование особенно полезен при чистке списка. Ключ, который никогда не использовался или не использовался уже несколько месяцев, обычно относится к заменённому ноутбуку или подрядчику, который уже не работает с вами.

Отзыв ключа

Нажмите на красный значок корзины в строке ключа. KPanel попросит подтвердить действие сообщением Отозвать SSH ключ? с примечанием, что ключ больше не будет работать для этого сайта. Нажмите Revoke, чтобы завершить.

Отзыв действует на новые подключения. Уже открытая SSH-сессия не завершается при отзыве ключа, поэтому если вы убираете доступ у человека, который, возможно, всё ещё подключён, отзовите ключ, а затем смените всё, до чего он мог добраться: пароли баз данных, секреты приложений и любые токены, хранящиеся на сайте.

Держите список ключей коротким. Один ключ на машину, с меткой с именем машины, проверять гораздо проще, чем кучу ключей с названиями вроде "key1", "new key" и "temp".

Устранение неполадок

Permission denied (publickey). Самая частая причина: ваш клиент предлагает серверу не тот ключ, который вы зарегистрировали. Принудительно укажите нужный ключ с помощью ssh -i /path/to/private_key ..., либо проверьте с помощью ssh -v, какие ключи предлагаются.

Connection refused или тайм-аут. Убедитесь, что вы используете порт, указанный в Данные для подключения, а не порт по умолчанию 22. Копируйте команду SSH прямо со страницы, а не набирайте её вручную.

Bad permissions на приватном ключе. OpenSSH отказывается использовать приватный ключ, который могут читать другие пользователи. Выполните chmod 600 для этого файла.

Ключ работает для SSH, но не для SFTP. Они используют одни и те же учётные данные, поэтому дело почти всегда в клиенте, а не в ключе. Используйте команду SFTP, скопированную со страницы: в ней уже указан правильный порт.

Что дальше

Это было полезно?

Вы ИИ? Читайте эту страницу в Markdown

Похожие статьи

Подключение через SFTP: FileZilla, Cyberduck и командная строкаSFTP (Secure File Transfer Protocol, защищённый протокол передачи файлов) даёт вам прямой доступ к файлам вашего сайта на сервере.…SSL-сертификаты и HTTPSЭта статья простым языком объясняет, что такое SSL, как KapsuleHost автоматически обеспечивает SSL для ваших сайтов, и что делать, если с вашим сертификатом что…Сайты: с чего начатьКак работает хостинг сайтов в KapsuleHost, что находится на каждой вкладке сайта и какое руководство читать для конкретной задачи.…Мониторинг доступности сайтаКаждый сайт на KapsuleHost автоматически проверяется каждые 60 секунд, и вкладка Uptime показывает результат: текущий статус, процент времени безотказной работы…

Всё ещё нужна помощь?

Спросите Kora, она знает ваш аккаунт, или свяжитесь с нашей командой.

Связаться с намиНаписать в поддержку