提供する、仮想環境を構築する上で便利に使える強力なハイパーバイザです。無料で使えるライセンスもあるので、利用されている方も多いのではないでしょうか。バージョン5以前はvSphereClientの導入が必要でしたが、バージョン6以降からは割り当てたIPアドレスにブラウザからアクセスするだけでGUIによる視覚的な操作も可能です。これまでに比べるとべんりでつよいです。何か作業をする際にその都度IDとパスワードによる認証を行うのは、正直面倒です。面倒はないほうが幸せです。孫子曰く「兵は拙速を尊ぶ」とも言います。書いてる私は兵ではないですし、兵の人がこの記事を読んでいる率は低い気もしますが、簡潔なのは良いことです。(この一文が冗長であるという厳然たる事実は全力で見逃してください)また、コマンドライン操作であれば自動化もしやすいです。いうのが今回のお題です。接続設定を書くSSH接続を許可するESXiサーバのデフォルト設定では、SSH接続を拒否するようになっています。含む、それなりに強いパスワード設定が求められます。[権限]から、先ほど作成したユーザに対して権限を設定します。そのユーザで行いたいことによって、適切な権限を設定します。ゲストサーバの状態を確認する用途であれば「読み取り専用」で十分ですし、ホストの起動/停止まで自動化したいという欲求があるならば「システム管理者」といった具合にです。「システム管理者」はなんでもできるので、迷ったらコレにしておけば、なんて気もするかもしれませんが、システムを壊さないためにも不要な権限付与は控えるほうが無難です。ユーザを乗っ取られたときにえらい目に遭いたくもないですし。鍵ファイルを配置する以降はコマンドラインでの操作です。接続するユーザ用の鍵ファイルを作成します。ssh-keygenssh接続用の公開鍵をすでにお持ちの場合、鍵の作成はスキップして大丈夫です。パスワードなしで接続したいので、パスフレーズは空のままにしておきます。github等で秘密鍵を公開してしまってはダメですよ。root@ESXiサーバのIP:/etc/ssh/keys-ユーザ名/authorized_keys接続するESXi、接続したいユーザ名に置き換えて実行してください。rootのパスワード入力を求められます。公開鍵(id_rsa.pub)はauthorized_keysという名前で置かなければなりません。具体例として、先ほど作成して権限を付与したユーザがhogeというユーザだった場合は、/etc/ssh/keys-hoge/authorized_keysという形にしてやる必要があります。以下の設定を追記しましょう。いうESXiサーバにhogeユーザで便利に接続したいのであれば、以下のようにまとめてやることも可能です。esx-hoge-01としてやるだけでパスフレーズなしでSSH接続することが可能です。手を抜くためには全力を尽くしましょうね。余談ESXiサーバを再起動すると鍵が消えるという悲しい問題もあるのですが、そちらはまた別の記事をご覧ください。Tweet2018年02月8日ESXi6.5でOS再起動時に公開鍵が消える問題の対処方法ESXiShellインフラコンテンツ・メディア第1事業部インフラ課の橋本です。弊社では仮想サーバをオンプレ環境で構築するための基盤(ホスト)OSとして、一部ではESXiを利用しています。以下の階層に配置したファイルが、OS再起動時に初期化(クリア)されてしまいます。接続を便利にしてくれる公開鍵なんかも、ESXiサーバを再起動するたびに消えてしまいます。公開鍵(hoge.pub)をauthorized_keysという名前にして配置しておくと動作する。rootで接続したい場合は/etc/ssh/keys-root/authorized_keysとなる。見事に/etc階層下である。1234/etc/ssh/keys-●●/authorized_keys●●は接続ユーザ名。公開鍵(hoge.pub)をauthorized_keysという名前にして配置しておくと動作する。rootで接続したい場合は/etc/ssh/keys-root/authorized_keysとなる。見事に/etc階層下である。以前のESXi(バージョン5.5や6.0において)で使えたいくつかの対処法は、検証した限りでは使えなくなっています。(そればかりか、再起動時にパープルスクリーンで固まってしまい、OSが起動しなくなったりさえします。なんということでしょう!)そのため、今回ご紹介する対処方法も、これまでの方法と同様にバージョン互換性がない可能性が大いに有り得ます。具体的にはESXi6.5以外のバージョンで使えるという保障はございません。ご了承いただきたく思います。「そもそも消されないようにする」というのが実現困難でしたので、今回は「再起動時に配置しなおす」というアプローチです。大まかな手順はふたつです。ひとつめ、鍵をバックアップする。ふたつめ、再起動時に展開されるようにする。公開鍵のバックアップをとる以下はEXSiサーバ上での操作です。sshなどで接続します。公開鍵ファイルをバックアップするスクリプトを用意しましょう。リストアップし、tarで固めています。ここで、16行目でbin/keys-backup.sh(このスクリプト自身)をも含めているのは、このスクリプトを/binに配置しているので再起動によって容赦無く消されるためです。authorized_keysではなく、自前のスクリプトや他のファイルを保持しておきたいという場合は、この13行目〜16行目の探索条件を調整してみてくださいね。tarで圧縮する際は相対パスで指定するようにお気をつけください。絶対パスで指定すると、展開時にも絶対パスで展開されるので、えらい目に遭うことがあります。後、14行目で相対パスに直してアーカイブしているのは、そのためです。次に、実行権限をつけておきます。実行すると、/bootbank/sshkeys.tgzが出来ているはずです。念のため、アーカイブの中身を確認してみましょう。各種とkeys-backup.shがアーカイブされていれば成功です。新しくauthrized_keysを配置したときには、併せてkeys-backup.shを実行するようにしましょう。再起動時にアーカイブを展開させるあと少しです。再起動時にsshkeys.tgzを展開するように仕込みを行います。EXSi6.5ではもともと配置されているファイルです。risk!と記述がありますように、運用にはご注意ください。2行目の内容を挿入しておきます。これで、再起動が完了後に/bootbank/sshkeys.tgzが展開されるようになります。似たような仕組みがもともと存在するのですが、拡張を意図されていない既存のコードはなるべく変更を加えたくないなぁ......という思いから、今回は別のスクリプトで手動実行する方式としています。