• Showing Page History #12786

Show page source of ExpressScopeHowTo_bangai1 #11291

'''[FrontPage NEC iモデル Wiki トップ]'''

== EXPRESSSCOPEエンジンを使う
= ![番外編] ipmitoolでのパスワード指定方法を考える

by [user:morihide morihide]

これまで[ExpressScopeHowTo_2p1 基本編2]や[ExpressScopeHowTo_3p1 応用編1]でipmitoolコマンドの使い方を紹介してきましたが、実際のところ-Pオプションに直接パスワードを指定するのは考え物です。コマンド履歴にパスワードが残ってしまいますし、(同じマシンにログインしている)ほかのユーザーにwコマンドを使われれば、それだけでパスワードが漏れてしまいます。

対処法はいくつかあります。まず、-Pオプションの使用をやめること。そうすると、パスワード確認用のプロンプトが出てくるようになります(以下参照)。

{{{
$ ipmitool -l lanplus -H XXX.XXX.XXX.XXX -U ユーザー名 chassis power status
Password: ←パスワードを入力
Chassis Power is on
$
}}}

入力したパスワードはエコーバックされないので、端末画面をスクロールバックしてもパスワードは出てきません。

その都度パスワードを入力するのが面倒だという人は、パスワードファイルを利用するとよいでしょう。以下の要領でパスワードファイルを作成し、他のユーザーが読み出せないよう、パーミッションを「400」に変更します。

{{{
$ echo "パスワード" > ~/.passfile
$ chmod 400 ~/.passfile
}}}

あとは、このファイルをipmitoolコマンドの-fオプションに指定すればOKです。

{{{
$ ipmitool -l lanplus -H XXX.XXX.XXX.XXX -U ユーザー名 -f ~/.passfile サブコマンド……
}}}

このほか、-Eオプションを利用するという手もあります。これは、環境変数のIPMI_PASSWORDに格納しておいたパスワードを参照するためのオプションです。

まず、環境変数にパスワードをセットし(これはbashを使用している場合の例)、

{{{
$ export IPMI_PASSWORD="パスワード"
}}}

ipmitoolコマンドで-Eオプションを指定します。

{{{
$ ipmitool -l lanplus -H XXX.XXX.XXX.XXX -U ユーザー名 -E サブコマンド……
}}}

ログインするたびにIPMI_PASSWORDをセットするのが面倒なら、あらかじめ前述の方法でパスワードファイルを作成しておき、シェルの初期化ファイルにパスワードファイルの内容をIPMI_PASSWORDにセットする、といった処理を書いておくとよいでしょう。たとえば、bashであれば、~/.bashrcに以下の行を追加しておきます。

{{{
export IPMI_PASSWORD=`cat ~/.passfile`
}}}

なお、この場合は.bashrcのパーミッションを「600」に変更しておいたほうが安全です(初期状態では大抵、「644」になってます)。

-fオプションの場合、コマンドラインを見られると“どこに”パスワードが書かれているのかを知られてしまいますが、-Eオプションなら直接知られることはありません。そのため、-fよりも-Eのほうがちょっとだけ安全と言えるでしょう。もっとも、自分専用のデスクトップマシンからipmitoolを実行するのであれば、-fと-Eに安全性の違いはありません。どの認証方法を使うかは環境に応じて適宜判断してください。

----
==== 関連記事
 * [ExpressScopeHowTo_1p1 基本編1:リモートからのOSインストール]
 * [ExpressScopeHowTo_2p1 基本編2:コマンドラインからの電源制御]
 * [ExpressScopeHowTo_3p1 応用編1:Serial over LANを設定する]

'''[FrontPage NEC iモデル Wiki トップ]'''