Управление удаленным NAS-сервером по SSH без пароля

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (13)

просмотр истории страницы
*Управление удаленным NAS-сервером по SSH*
*Процедура генерации шифрованных ключей:*

Для того, чтобы Carbon Billing смог отправлять на удаленный NAS-сервер команды по SSH необходимо проделать следующие шаги:
1. Добавить NAS-сервер в список NAS-клиентов через меню "Конфигурирование сервера" подменю "Управление NAS-клиентами", в качестве протокола управления указать SSH
2. Сгенерировать специальные шифрованные ключи для доступа биллинга к NAS-серверу по протоколу SSH без пароля (процедура создания ключей описана ниже, это необходимо для автоматизации процесса управления)
3. На NAS-сервере создать специальный скрипт, который будет вызываться удаленно с Carbon Billing и выполнять на NAS необходимые действия (в случае с Carbon AS такие скрипты уже содержатся в системе)
1. На Carbon Billing в консоли:
{code}
chroot /app/asr_billing/
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
41:ca:18:64:75:33:39:6b:15:7a:30:7c:a6:53:3d:49 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| o=.+=E. |
| .+=B++ |
| .Oe+.. |
| + = . |
| + .S |
| |
| |
| |
| |
+-----------------+
{code}

*Процедура генерации шифрованных ключей:*

1. На Carbon Billing в режиме удаленного помощника:
{code}mkdir -p /root/.ssh
chmod 700 /root/.ssh
cd /root/.ssh
ssh-keygen -t dsa (на вопрос о пароле просто нажать Enter)
scp -p id_dsa.pub root@remote_nas_ip: (копируем ключ на удаленный NAS-сервер){code}
2. С помощью утилиты {color:#000000}{*}ssh-copy-id{*}{color} {color:#000000}загружаем открытый ключ на NAS{color}:
{code}ssh-copy-id -i /root/.ssh/id_rsa.pub LOGIN@IP_ВАШЕГО_NAS{code}

2. На NAS-сервере (можно зайти прямо с биллинга используя команду ssh root@remote_nas_ip):
{code}mkdir -p /root/.ssh
chmod 700 /root/.ssh
cd /root/.ssh/
cat /root/id_dsa.pub >> /root/.ssh/authorized_keys (добавляем скопированный ключ в доверенные)
chmod 600 /root/.ssh/authorized_keys
rm -f ~/id_dsa.pub (скопированный ключ больше не нужен){code}
Проверяем доступ к NAS без пароля:
{code}[root@localhost (asr_billing) /]# ssh LOGIN@IP_ВАШЕГО_NAS
FreeBSD 11.1-RELEASE-p9 #0: Sat May  2 22:21:41 MSK 2018

После проведенных действий команда ssh root@remote_nas_ip будет работать без запроса пароля, таким образом вызвать скрипт на удаленной машине с помощью протокола SSH можно так:
{code}ssh root@remote_nas_ip /full/path/to/script.sh{code}
Welcome to FreeBSD!

К примеру подобный способ управления можно использовать в скрипте обработки событий биллинга, чтобы отключить пользователя от NAS-сервера в случае достижения отрицательного баланса.
TEST@test-nas:~ % {code}

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