Categories: VMware

VMware ESXi: SSH аутентификация с помощью ключей

Вы можете настроить аутентификацию с помощью ключей на хостах VMware ESXi вместо стандартного SSH подключения с помощью имени пользователя и пароля. Это удобно, когда вам нужно удаленно управлять хостом ESXi с помощью внешних скриптов (например отправить команду выключения на ESXi при пропадании питания на ИБП) или при управлении хостами VMware ESXi через Ansible .

Сгенерируйте закрытый и открытый ключи на компьютере администратора.

Для SSH аутентификации нужно использовать RSA ключи как минимум длиной 4096 бит. Чтобы сгенерировать пару RSA ключей длиной 4096 на Windows, выполните команду:

ssh-keygen -t rsa -b 4096

В новых билдах OpenSSH вместо RSA ключей рекомендуется использовать протокол Ed25519 ( use RSA/SHA256 when testing usability of private keys as some systems are starting to disable RSA/SHA1 in libcrypto ). В ESXi 8.0 мне удалось подключиться с помощью пары Ed25519 ключей только после отключения опции FipsMode no в /etc/ssh/sshd_config.

Чтобы сгенерировать ключи id_ed25519 и id_ed25519.pub выполните:

ssh-keygen -t ed25519

Утилита сгенерирует два файла в каталоге с профилем текущего пользователя (%USERPROFILE%.ssh):

  • id_rsa – закрытый ключ
  • id_rsa.pub – публичный (открытый) ключ
Если вы генерируете ключи с помощью Puttygen, их нужно экспортировать в формате OpenSSH.

Скопируйте открытый ключ id_rsa.pub с вашего компьютера на хост VMware ESXi. Этот ключ нужно добавить в файл /etc/ssh/keys-$USER/authorized_keys . Если это ключ для пользователя root, путь к файлу будет такой:

/etc/ssh/keys-root/authorized_keys

Подключитесь к серверу ESXi по SSH (в настройках хоста ESXi нужно разрешить доступ по SSH ).

Вы можете отредактировать файл вручную (в файле можно хранить несколько ключей) или добавить его на сервер ESXi с помощью PowerShell команды:

cat c:usersadmin.sshid_rsa.pub | ssh [email protected] 'cat >> /etc/ssh/keys-root/authorized_keys'

Настройки OpenSSH сервера на хосте ESXi находятся в файле /etc/ssh/sshd_config .

Можно включить/отключить доступ под root с помощью директивы:

PermitRootLogin yes

Отключить SSH вход по паролю:

ChallengeResponseAuthentication no # deprecated_x000D_KbdInteractiveAuthentication no_x000D_PasswordAuthentication no

Перезапустите SSH на ESXi:

# /etc/init.d/SSH restart

Также вы можете распространить SSH ключи на хосты ESXi с помощью VMware Host Profiles (Security Configuration -> SSH authorized key for root user -> Add public key)

Теперь вы можете подключиться к ESXi хосту без ввода пароля с помощью закрытого ключа. В Windows с включенным агентом ssh-agent при подключении к хосту автоматически будет использоваться закрытый ключ из профиля пользователя:

ssh [email protected]

Также вы можете указать путь к ключу с помощью параметра -i:

ssh [email protected] -i "C:Usersadministrator.sshid_rsa"

Вы можете удаленно выполнить произвольную команду в консоли ESXi. Например, выключить определенную виртуальную машину :

ssh [email protected] vim-cmd vmsvc/power.shutdown VMID

В VMware ESXi 7.0 U2 и выше пароли в файле local.tgz.ve зашифрованы, поэтому сбросить пароль root в ESXi с помощью этой процедуры не получится. В этом случае аутентификация по ключам позволит вам подключиться к серверу без ввода пароля root.
admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

1 неделя ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

1 неделя ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

1 неделя ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

1 неделя ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

1 неделя ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

1 неделя ago