Вы можете настроить аутентификацию с помощью ключей на хостах VMware ESXi вместо стандартного SSH подключения с помощью имени пользователя и пароля. Это удобно, когда вам нужно удаленно управлять хостом ESXi с помощью внешних скриптов (например отправить команду выключения на ESXi при пропадании питания на ИБП) или при управлении хостами VMware ESXi через Ansible .
Сгенерируйте закрытый и открытый ключи на компьютере администратора.
Для SSH аутентификации нужно использовать RSA ключи как минимум длиной 4096 бит. Чтобы сгенерировать пару RSA ключей длиной 4096 на Windows, выполните команду:
ssh-keygen -t rsa -b 4096
FipsMode no
в /etc/ssh/sshd_config.Чтобы сгенерировать ключи id_ed25519 и id_ed25519.pub выполните:
ssh-keygen -t ed25519
Утилита сгенерирует два файла в каталоге с профилем текущего пользователя (%USERPROFILE%.ssh):
- id_rsa – закрытый ключ
- id_rsa.pub – публичный (открытый) ключ
Скопируйте открытый ключ 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
Теперь вы можете подключиться к ESXi хосту без ввода пароля с помощью закрытого ключа. В Windows с включенным агентом ssh-agent при подключении к хосту автоматически будет использоваться закрытый ключ из профиля пользователя:
Также вы можете указать путь к ключу с помощью параметра -i:
ssh [email protected] -i "C:Usersadministrator.sshid_rsa"
Вы можете удаленно выполнить произвольную команду в консоли ESXi. Например, выключить определенную виртуальную машину :
ssh [email protected] vim-cmd vmsvc/power.shutdown VMID