PowerShell функция Connect-VMHostPutty из моего PowerCLI Vi-Module модуля поможет вам открывать несколько SSH-сессий putty к хостам ESXi без ввода пароля.
Функция на самом деле не требует, чтобы на вашем компьютере был установлен VMware PowerCLI. Всё, что нужно - это PowerShell версии 3.0 или выше.
Это очень короткая и простая функция всего с двумя параметрами и только один из них обязательный.
VMHost – Имя или IP адрес ESXi хоста
PuttyExec – Полный путь к putty.exe (опционально)
Это многоэтапное решение, но вы делаете это один раз, и оно работает всегда!
Шаг 1. Скачайте putty.exe и сохраните её в папке с вашим PowerShell профилем.
Вы можете открыть папку профиля с помощью следующей команды, выполнив её в окне PowerShell или PowerCLI.
PS C:\> explorer (Split-Path $PROFILE)
Вы можете предпочесть альтернативную директорию, но в этом случае вам придётся использовать параметр –PuttyExec.
Шаг 2. Функция Connect-VMHostPutty использует маленькую вспомогательную функцию Read-VMHostCredential, которая также включена в модуль Vi-Module.
Эта функция читает и расшифровывает зашифрованный файл, который содержит пароль root ваших ESXi хостов. Мы создадим его на следующем этапе.
Шаг 3. Для создания зашифрованого файла мы воспользуемся скриптом New-SecureCred.ps1.
Скачайте этот скрипт и сохраните локально, допустим в папке C:\scripts, и запустите следующим образом.
Важно! Не изменяйте путь и имя файла. Функция Read-VMHostCredential будет искать его здесь. Кому интересно, может просмотреть примеры и справку по скрипту.
Шаг 4. В случае, если в вашей инфраструктуре вы используете административную запись, отличную от root, отредактируйте переменную $Login внутри функции Read-VMHostCredential.
Шаг 5. Чтобы всё это вообще заработало, вы должны разрешить доступ по SSH и отменить Lockdown mode для хостов ESXi.
Вы можете воспользоваться функцией Enable-VMHostSSH описанной в этой статье, для включения SSH на целом кластере.
Шаг 6. После того, как вы закончили все приготовления, просто запустите функцию следующим образом.
PS C:\> putty esxlab1
Не удивляйтесь, putty - это алиас для Connect-VMHostPutty.
Если вы хотите подключиться сразу к нескольким хостам (допустим у вас есть 6 хостов ESXi, имеющих имена с esxlab1 по esxlab6), запустите такую команду.
PS C:\> 1..6 |foreach {putty "esxlab$_"}
Если вы всё сделали правильно, то будут открыты и подключены к вашим хостам сразу 6 окон putty.
Ну, и кому интересна английская версия статьи, могут прочитать её здесь.