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

Sis admin linux: различия между версиями

Материал из RAMBA Wiki
Новая страница: «= SSH-доступ с macOS к LXC-контейнеру Proxmox по ключу = == Назначение == Инструкция позволяет настроить подключение с Mac к LXC-контейнеру Proxmox по SSH без ввода пароля пользователя root. Публичный ключ добавляется через консоль Proxmox, поэтому знать или создавать пароль roo...»
 
Нет описания правки
Строка 1: Строка 1:
= SSH-доступ с macOS к LXC-контейнеру Proxmox по ключу =
Небольшие инструкции, полезные команды и практические приёмы администрирования Linux.


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


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


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


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


{| class="wikitable"
{| class="wikitable"
! Параметр !! Пример
! Параметр !! Значение для примера
|-
|-
| ID контейнера || 123
| ID контейнера || 123
Строка 23: Строка 27:
|}
|}


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


SSH-сервер контейнера должен разрешать авторизацию по публичному ключу и вход root по ключу.
* Административный доступ к консоли узла Proxmox.
* Запущенный LXC-контейнер с работающим SSH-сервером.
* Сетевая доступность контейнера с Mac — через локальную сеть или VPN.
* Разрешённый на SSH-сервере вход root по публичному ключу.


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


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 50: Строка 46:
</syntaxhighlight>
</syntaxhighlight>


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


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


{| class="wikitable"
{| class="wikitable"
Строка 58: Строка 54:
|-
|-
| <code>~/.ssh/id_ed25519</code>
| <code>~/.ssh/id_ed25519</code>
| Приватный ключ. Остаётся на Mac и не передаётся другим пользователям.
| Приватный ключ. Остаётся на Mac. Его нельзя публиковать или передавать.
|-
|-
| <code>~/.ssh/id_ed25519.pub</code>
| <code>~/.ssh/id_ed25519.pub</code>
| Публичный ключ. Добавляется на сервер, к которому требуется доступ.
| Публичный ключ. Добавляется на сервер.
|}
|}


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


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 72: Строка 68:
</syntaxhighlight>
</syntaxhighlight>


== 2. Получение публичного ключа ==
Парольную фразу такого ключа можно сохранить в связке ключей macOS — порядок приведён ниже.
 
=== 2. Копирование публичного ключа ===


'''На Mac''' выполнить:
'''На Mac''' выполнить:
Строка 80: Строка 78:
</syntaxhighlight>
</syntaxhighlight>


Скопировать всю строку, начинающуюся с <code>ssh-ed25519</code>.
Скопировать всю выведенную строку, начинающуюся с <code>ssh-ed25519</code>.
 
Ключ нужно копировать целиком, одной строкой.


'''Не следует копировать:'''
'''Нужен именно публичный ключ:'''


* Приватный ключ из файла без расширения <code>.pub</code>.
* Копировать строку целиком, без добавления переносов.
* Отпечаток вида <code>SHA256:...</code>.
* Не копировать отпечаток <code>SHA256:...</code>.
* Графический рисунок, показанный при создании ключа.
* Не копировать графический рисунок ключа.
* Не передавать содержимое приватного файла <code>id_ed25519</code>.


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 96: Строка 93:
</syntaxhighlight>
</syntaxhighlight>


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


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


Выполнить, заменив <code>123</code> фактическим ID контейнера:
Выполнить, заменив <code>123</code> фактическим ID контейнера:
Строка 106: Строка 103:
</syntaxhighlight>
</syntaxhighlight>


После выполнения команды откроется оболочка контейнера.
Следующие команды выполняются '''внутри контейнера от имени root'''.


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


== 4. Добавление публичного ключа ==
Подготовить каталог и файл:
 
Подготовить каталог:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
mkdir -p /root/.ssh
mkdir -p /root/.ssh
touch /root/.ssh/authorized_keys
chown root:root /root/.ssh /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
</syntaxhighlight>
</syntaxhighlight>


В следующей команде заменить <code>ВСТАВЬ_ПУБЛИЧНЫЙ_КЛЮЧ</code> полной строкой публичного ключа с Mac. Одинарные кавычки сохранить:
В следующей команде заменить <code>ВСТАВЬ_ПУБЛИЧНЫЙ_КЛЮЧ</code> скопированной строкой с Mac, сохранив одинарные кавычки:
 
<syntaxhighlight lang="bash">
printf '%s\n' 'ВСТАВЬ_ПУБЛИЧНЫЙ_КЛЮЧ' >> /root/.ssh/authorized_keys
</syntaxhighlight>
 
Установить владельца и права:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
chown root:root /root/.ssh /root/.ssh/authorized_keys
printf '\n%s\n' 'ВСТАВЬ_ПУБЛИЧНЫЙ_КЛЮЧ' >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
</syntaxhighlight>
</syntaxhighlight>


Оператор <code>&gt;&gt;</code> добавляет ключ в конец файла, сохраняя существующие записи.
Оператор <code>&gt;&gt;</code> добавляет запись в конец файла и сохраняет ранее добавленные ключи.


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


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


== 5. Проверка ключа сервера ==
=== 5. Проверка подлинности сервера ===


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


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 148: Строка 139:
</syntaxhighlight>
</syntaxhighlight>


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


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


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


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 160: Строка 151:
</syntaxhighlight>
</syntaxhighlight>


Если при первом подключении появился запрос доверия к серверу и отпечаток совпадает с проверенным, ввести:
Заменить адрес на IP своего контейнера.
 
Если появился запрос подтверждения ключа сервера и отпечаток совпадает с проверенным, ввести:


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Строка 168: Строка 161:
При успешной настройке откроется оболочка контейнера без запроса пароля root.
При успешной настройке откроется оболочка контейнера без запроса пароля root.


Для завершения сеанса:
Для завершения подключения:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 174: Строка 167:
</syntaxhighlight>
</syntaxhighlight>


== Если ключ защищён парольной фразой ==
=== 7. Сохранение парольной фразы ключа в macOS ===
 
'''Этот шаг нужен только для ключа, защищённого парольной фразой.'''


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


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 186: Строка 181:
Ввести парольную фразу ключа.
Ввести парольную фразу ключа.


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


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


Вместо IP-адреса можно использовать удобное имя, например <code>my-container</code>.
Можно назначить подключению понятное имя, например <code>my-container</code>.


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 200: Строка 195:
</syntaxhighlight>
</syntaxhighlight>


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


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Строка 211: Строка 206:
     UseKeychain yes
     UseKeychain yes
</syntaxhighlight>
</syntaxhighlight>
Если блок <code>Host my-container</code> уже существует, изменить его вместо создания дубликата. Если в файле есть общий блок <code>Host *</code>, этот отдельный блок разместить перед ним.


Сохранить файл в nano:
Сохранить файл в nano:
Строка 224: Строка 221:
</syntaxhighlight>
</syntaxhighlight>


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 230: Строка 227:
</syntaxhighlight>
</syntaxhighlight>


== Диагностика ==
=== Диагностика ===


=== Сервер запрашивает пароль root ===
==== Запрашивается пароль root ====


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


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 242: Строка 239:
</syntaxhighlight>
</syntaxhighlight>


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


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 254: Строка 251:
! Объект !! Права !! Владелец
! Объект !! Права !! Владелец
|-
|-
| <code>/root/.ssh</code> || 700 — <code>drwx------</code> || root
| <code>/root/.ssh</code>
| <code>700</code> — <code>drwx------</code>
| root
|-
|-
| <code>/root/.ssh/authorized_keys</code> || 600 — <code>-rw-------</code> || root
| <code>/root/.ssh/authorized_keys</code>
| <code>600</code> — <code>-rw-------</code>
| root
|}
|}


Также проверить:
Проверить, что:
 
* В файле находится публичный ключ с нужного Mac.
* Ключ записан одной строкой.
* Указаны правильные IP-адрес и пользователь.
* SSH-сервер разрешает авторизацию по ключу и вход root по ключу.
 
==== Connection refused ====


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


=== Соединение отклонено: Connection refused ===
Проверить правильность адреса, работу SSH-сервера и порт подключения. Также причиной может быть правило межсетевого экрана, отклоняющее соединение.


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


=== Сервер не отвечает: Connection timed out ===
Сервер не ответил за отведённое время.


Проверить:
Проверить:


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


=== Изменился ключ сервера ===
==== REMOTE HOST IDENTIFICATION HAS CHANGED ====


При предупреждении <code>REMOTE HOST IDENTIFICATION HAS CHANGED</code> сначала проверить причину изменения и новый отпечаток через доверенную консоль Proxmox.
Сохранённый на Mac ключ сервера отличается от текущего.


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


== Итог ==
Сначала проверить новый отпечаток через доверенную консоль Proxmox. Не удалять старую запись без проверки причины изменения.


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


Настройка сохраняется после перезагрузки Mac и контейнера.
* Настройка сохраняется после перезагрузки Mac и контейнера.
* Для каждого дополнительного компьютера можно создать собственный ключ и добавить его публичную часть отдельной строкой в <code>authorized_keys</code>.
* Чтобы отозвать доступ конкретного ключа, удалить соответствующую строку из <code>authorized_keys</code>. Уже открытые SSH-сеансы при этом не завершаются.
* Добавление ключа само по себе не отключает парольную авторизацию SSH.
* Приватные ключи, пароли и другие секреты не должны попадать в публичную документацию.


'''Добавление ключа само по себе не отключает парольную авторизацию SSH.''' Настройки разрешённых способов входа управляются отдельно.
<!-- Следующую хитрость добавляйте ниже отдельным разделом:
== Название хитрости ==
Описание и команды.
-->

Версия от 21:20, 28 сентября 2026

Небольшие инструкции, полезные команды и практические приёмы администрирования Linux.

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

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

Назначение

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

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

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

Что необходимо

  • Административный доступ к консоли узла Proxmox.
  • Запущенный LXC-контейнер с работающим SSH-сервером.
  • Сетевая доступность контейнера с Mac — через локальную сеть или VPN.
  • Разрешённый на SSH-сервере вход root по публичному ключу.

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

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

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

Существующий ключ не перезаписывается.

При создании нового ключа появляются два файла:

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

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

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

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

Парольную фразу такого ключа можно сохранить в связке ключей macOS — порядок приведён ниже.

2. Копирование публичного ключа

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

cat ~/.ssh/id_ed25519.pub

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

Нужен именно публичный ключ:

  • Копировать строку целиком, без добавления переносов.
  • Не копировать отпечаток SHA256:....
  • Не копировать графический рисунок ключа.
  • Не передавать содержимое приватного файла id_ed25519.

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

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
touch /root/.ssh/authorized_keys
chown root:root /root/.ssh /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

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

printf '\n%s\n' 'ВСТАВЬ_ПУБЛИЧНЫЙ_КЛЮЧ' >> /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

Заменить адрес на IP своего контейнера.

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

yes

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

Для завершения подключения:

exit

7. Сохранение парольной фразы ключа в macOS

Этот шаг нужен только для ключа, защищённого парольной фразой.

Запрос Enter passphrase for key относится к приватному ключу на Mac, а не к паролю root контейнера.

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

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

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

Для автоматического использования связки ключей добавить настройки из следующего раздела.

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

Можно назначить подключению понятное имя, например my-container.

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

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

Если блок Host my-container уже существует, изменить его вместо создания дубликата. Если в файле есть общий блок Host *, этот отдельный блок разместить перед ним.

Сохранить файл в 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 по ключу.

Connection refused

Соединение отклонено.

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

Connection timed out

Сервер не ответил за отведённое время.

Проверить:

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

REMOTE HOST IDENTIFICATION HAS CHANGED

Сохранённый на Mac ключ сервера отличается от текущего.

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

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

Примечания

  • Настройка сохраняется после перезагрузки Mac и контейнера.
  • Для каждого дополнительного компьютера можно создать собственный ключ и добавить его публичную часть отдельной строкой в authorized_keys.
  • Чтобы отозвать доступ конкретного ключа, удалить соответствующую строку из authorized_keys. Уже открытые SSH-сеансы при этом не завершаются.
  • Добавление ключа само по себе не отключает парольную авторизацию SSH.
  • Приватные ключи, пароли и другие секреты не должны попадать в публичную документацию.