ありふれたネタで新規性もないですが、ESXi 6.5でもできるますよということで手順まとめ。
#前提
- ESXi 6.5 GA(build-4564106)
- ESXiにはrootユーザでログインする
- ESXiのSSHは有効化済み
#鍵の生成
-
TeraTermのウィンドウを開く
-
新しい接続はしないでキャンセル
-
[設定] - [SSH鍵生成] をクリック
-
開いたTTSSH:鍵生成ウィンドウの[生成]をクリック
(鍵の種類とビット数ははデフォルトのRSAと2048ビットでOK) -
[鍵のパスフレーズ]と[パスフレーズの確認]を入力
-
[公開鍵の保存]をクリックして、任意のディレクトリに公開鍵を保存
-
[秘密鍵の保存]をクリックして、任意のディレクトリに秘密鍵を保存
#公開鍵/秘密鍵でログイン
-
TeraTermで鍵を配置するESXiにSSHでログイン
-
TeraTermメニューの[ファイル]-[SSH SCP]をクリック
-
開いたTTSSH:SecureFileCopyウィンドウの画面上部に以下の通り入力
From:生成した公開鍵の古パス
To :/etc/ssh/keys-root/authorized_keys -
ESXiからSSHを一度ログアウト
-
再度TeraTermを開き、[RSA/DSA/ECDSA/ED25519鍵を使う]を選択して、
[秘密鍵]を指定しログインできることを確認。
(ユーザー名はroot、パスフレーズは秘密鍵生成時のもの)
#TeraTermマクロで自動ログイン
以下のようなマクロファイルを作成する。
;============================================
; Filename : ssh_connect-esxi.ttl
; Description : SSH Auto login
; Author : MyName
; Created : 2016/12/28
; modified :
;============================================
;; ユーザ名/パスワード設定
HOSTADDR = 'ESXiのIPアドレス'
USERNAME = 'root'
PASSFILE = 'C:\work\ssh_key\password.dat'
KEY_FILE = 'C:\work\ssh_key\id_rsa'
;============================================
;; ①パスワード取得
getpassword PASSFILE USERNAME PASSWORD
;; ②コマンド組立て
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE
;; ③サーバへ接続
connect COMMAND
;; ④マクロ終了
end
作成した.ttlファイルはttpmacro.exeに関連付けて実行。
初回のみパスフレーズの入力を求められるが、以降はマクロを実行するだけでESXiにログインできるようになる。
#参考
Allowing SSH access to ESXi/ESX hosts with public/private key authentication
https://kb.vmware.com/kb/1002866
公開鍵認証によるSSH接続 - Tera Termの使い方
http://webkaru.net/linux/tera-term-ssh-login-public-key/
TeraTermマクロ-SSH公開鍵認証で自動ログイン
http://www.j-oosk.com/teraterm/authorized_keys/307/