Перейти к содержанию

Sis admin linux

Материал из RAMBA Wiki
Версия от 21:16, 28 сентября 2026; Artem (обсуждение | вклад) (Новая страница: «= SSH-доступ с macOS к LXC-контейнеру Proxmox по ключу = == Назначение == Инструкция позволяет настроить подключение с Mac к LXC-контейнеру Proxmox по SSH без ввода пароля пользователя root. Публичный ключ добавляется через консоль Proxmox, поэтому знать или создавать пароль roo...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

SSH-доступ с macOS к LXC-контейнеру Proxmox по ключу

Назначение

Инструкция позволяет настроить подключение с Mac к LXC-контейнеру Proxmox по SSH без ввода пароля пользователя root.

Публичный ключ добавляется через консоль Proxmox, поэтому знать или создавать пароль root контейнера для этой настройки не требуется.

Все адреса и идентификаторы приведены для примера. Замените их значениями своей инфраструктуры.

Параметр Пример
ID контейнера 123
IP-адрес контейнера 192.168.2.2
Пользователь SSH root
Клиент Mac с macOS
Тип ключа Ed25519

Перед началом

Для выполнения инструкции необходимы:

  • Доступ к терминалу macOS.
  • Административный доступ к консоли узла Proxmox, на котором запущен контейнер.
  • Установленный и работающий SSH-сервер внутри контейнера.
  • Сетевая доступность контейнера с Mac — напрямую через локальную сеть либо через VPN.

SSH-сервер контейнера должен разрешать авторизацию по публичному ключу и вход root по ключу.

1. Создание SSH-ключа на Mac

Открыть приложение Терминал на Mac.

Выполнить:

if [ ! -f ~/.ssh/id_ed25519 ]; then
  ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
else
  echo "SSH-ключ уже существует."
fi

Команда создаёт новый ключ только при отсутствии файла ~/.ssh/id_ed25519. Существующий ключ не перезаписывается.

После создания появляются два файла:

Файл Назначение
~/.ssh/id_ed25519 Приватный ключ. Остаётся на Mac и не передаётся другим пользователям.
~/.ssh/id_ed25519.pub Публичный ключ. Добавляется на сервер, к которому требуется доступ.

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

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

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519

2. Получение публичного ключа

На Mac выполнить:

cat ~/.ssh/id_ed25519.pub

Скопировать всю строку, начинающуюся с ssh-ed25519.

Ключ нужно копировать целиком, одной строкой.

Не следует копировать:

  • Приватный ключ из файла без расширения .pub.
  • Отпечаток вида SHA256:....
  • Графический рисунок, показанный при создании ключа.

Если приватный ключ существует, а соответствующий файл .pub отсутствует, публичный ключ можно восстановить на Mac:

ssh-keygen -y -f ~/.ssh/id_ed25519 > ~/.ssh/id_ed25519.pub

3. Вход в контейнер через Proxmox

В веб-интерфейсе Proxmox выбрать узел, на котором запущен контейнер, и открыть его Shell.

Выполнить, заменив 123 фактическим ID контейнера:

pct enter 123

После выполнения команды откроется оболочка контейнера.

Все команды следующего раздела выполняются внутри контейнера от имени root.

4. Добавление публичного ключа

Подготовить каталог:

mkdir -p /root/.ssh
chmod 700 /root/.ssh

В следующей команде заменить ВСТАВЬ_ПУБЛИЧНЫЙ_КЛЮЧ полной строкой публичного ключа с Mac. Одинарные кавычки сохранить:

printf '%s\n' 'ВСТАВЬ_ПУБЛИЧНЫЙ_КЛЮЧ' >> /root/.ssh/authorized_keys

Установить владельца и права:

chown root:root /root/.ssh /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

Оператор >> добавляет ключ в конец файла, сохраняя существующие записи.

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

Перезапуск SSH-сервера после добавления ключа не требуется.

5. Проверка ключа сервера

При первом подключении Mac может запросить подтверждение подлинности сервера.

Чтобы проверить отпечаток ключа ED25519, выполнить внутри контейнера через консоль Proxmox:

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Сравнить полученный отпечаток SHA256:... с отпечатком, который покажет Mac при подключении.

Сравнивать нужно ключи одного типа: в данном случае ED25519.

6. Подключение с Mac

В Терминале на Mac выполнить, подставив адрес своего контейнера:

ssh root@192.168.2.2

Если при первом подключении появился запрос доверия к серверу и отпечаток совпадает с проверенным, ввести:

yes

При успешной настройке откроется оболочка контейнера без запроса пароля root.

Для завершения сеанса:

exit

Если ключ защищён парольной фразой

Запрос Enter passphrase for key означает, что macOS просит парольную фразу приватного ключа, а не пароль root контейнера.

Чтобы добавить ключ в SSH-агент и сохранить парольную фразу в связке ключей macOS, выполнить на Mac:

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Ввести парольную фразу ключа.

Для её дальнейшего использования можно добавить параметры в файл ~/.ssh/config, как показано в следующем разделе.

Короткая команда подключения

Вместо IP-адреса можно использовать удобное имя, например my-container.

На Mac открыть файл настроек:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/config

Добавить отдельный блок. Если блок с таким именем уже есть, изменить его вместо создания дубликата:

Host my-container
    HostName 192.168.2.2
    User root
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
    AddKeysToAgent yes
    UseKeychain yes

Сохранить файл в nano:

  1. Нажать Control + O.
  2. Нажать Enter.
  3. Нажать Control + X.

Установить права:

chmod 600 ~/.ssh/config

Теперь подключаться можно командой:

ssh my-container

Диагностика

Сервер запрашивает пароль root

Это означает, что авторизация по ключу не завершилась успешно.

На Mac явно указать нужный ключ и включить подробный вывод:

ssh -v -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 root@192.168.2.2

Через консоль Proxmox проверить внутри контейнера:

ls -ld /root/.ssh
ls -l /root/.ssh/authorized_keys

Ожидаемые параметры:

Объект Права Владелец
/root/.ssh 700 — drwx------ root
/root/.ssh/authorized_keys 600 — -rw------- root

Также проверить:

  • В файле записан публичный ключ именно с нужного Mac.
  • Ключ не разбит на несколько строк.
  • Подключение выполняется к правильному IP-адресу и пользователю.
  • SSH-сервер разрешает авторизацию по ключу.
  • Вход root по ключу не запрещён настройками SSH.

Соединение отклонено: Connection refused

Проверить правильность адреса, работу SSH-сервера и порт, на котором он принимает подключения.

Сервер не отвечает: Connection timed out

Проверить:

  • Запущен ли контейнер.
  • Доступна ли его подсеть с Mac.
  • Подключён ли нужный VPN.
  • Не блокируется ли SSH-порт межсетевым экраном.

Изменился ключ сервера

При предупреждении REMOTE HOST IDENTIFICATION HAS CHANGED сначала проверить причину изменения и новый отпечаток через доверенную консоль Proxmox.

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

Итог

После настройки Mac использует приватный ключ для подтверждения доступа, а контейнер проверяет его по публичному ключу из /root/.ssh/authorized_keys.

Настройка сохраняется после перезагрузки Mac и контейнера.

Добавление ключа само по себе не отключает парольную авторизацию SSH. Настройки разрешённых способов входа управляются отдельно.