Сайты

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

SSH access to a Kapsule site is key-based only, so before you can open a shell or an SFTP session you need to register a public key against the site in KPanel. This guide covers where that lives…

SSH-ключи сайта

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

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

Откройте Websites, нажмите на сайт, затем откройте меню Files на вкладке сайта и выберите SSH Keys. На странице указано название SSH access, и она содержит две вещи: данные подключения для этого сайта и список открытых ключей, которые в настоящее время авторизованы для их использования.

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

Страница доступа SSH для сайта в KPanel

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

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

Карточка Connection details в верхней части страницы содержит всю информацию, которая нужна вашему клиенту:

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

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

Если карточка вообще не отображается, то оболочка сайта еще не была полностью подготовлена. API возвращает простую ошибку Site has no SSH user в этом случае. Дождитесь, пока статус сайта не изменится на 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 нажмите Add key.
  4. Введите что-то запоминающееся в поле Label, например имя компьютера, на котором находится ключ.
  5. Вставьте открытый ключ во второе поле.
  6. Нажмите Add key.

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

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

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

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

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

Позволить Kapsule создать пару ключей

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

  1. Нажмите Add key.
  2. Заполните поле Label. Оставьте поле открытого ключа пустым.
  3. Нажмите Generate keypair.

Kapsule создает пару Ed25519, устанавливает открытую половину для сайта и отображает зеленый баннер: Keypair generated: download the private key now. Нажмите Download .pem, чтобы сохранить приватный ключ. Файл назван в соответствии с выбранным вами ярлыком.

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

Созданный ключ не имеет парольной фразы, что делает его пригодным для использования из скрипта без подсказок. Это также означает, что сам файл является полным учетным данием. Если вы хотите добавить парольную фразу, создайте пару самостоятельно с помощью 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>

Замените имя пользователя, хост и порт из карточки Connection details.

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

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

  • Ярлык, который вы дали ключу.
  • Отпечаток ключа, это позволяет различать два ключа, когда ярлыки похожи.
  • Added с датой его регистрации.
  • Last used с датой последней аутентификации или Never used, если он еще не аутентифицировался.

Столбец Last used полезен при очистке. Ключ, который никогда не использовался или не использовался в течение нескольких месяцев, обычно это ноутбук, который был заменен, или подрядчик, который перешел в другую компанию.

Отзыв ключа

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

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

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

Устранение проблем

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

Connection refused или истечение времени ожидания. Подтвердите, что вы используете порт, указанный в Connection details, а не порт 22 по умолчанию. Скопируйте команду SSH со страницы, а не вводите её вручную.

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

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

Что дальше

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

Напишите нам на support@kapsulehost.com или откройте чат в KPanel.

Открыть KPanel
Добавление ключей SSH на сайт