いわて駐在研究日誌2。

NEVER STAND BEHIND ME

パスフレーズなしのSSHログイン(OpenMPI)と、NFSマウントの設定

パスフレーズなしのSSHログイン設定メモ

 

(1)クライアント(ログインユーザはwaku)でssh2のRSA暗号鍵を生成

$ ssh-keygen -t rsa

パスフレーズを聞いてくるが、なしでよければそのままリターンでOK

 

(2)公開鍵(*.pub)のほうを接続したいサーバにコピーする。

楽をしたければ、以下のコマンド1つでOK。

$ ssh-copy-id -i ~/.ssh/id_rsa.pub waku@SEREVER

もしくは以下のように、クライアントからscpなどをつかって公開鍵をコピーし、その後、サーバー側で設定する。

※ サーバ自身も計算ノードに使う場合は、サーバ自身にたいしてもやっておくこと。

※ 同様に、各クライアント→サーバ、各クライアント→他のクライアントもパスフレーズなしで認証できるようにしておく必要がある(重要)。

@クライアント

$ scp ~/.ssh/id_dsa.pub waku@SERVER

@サーバ(コピーした公開鍵をauthoized_keysに追記)

$ cat ~/id_dsa.pub >> authorized_keys server

$ chmod 600 authorized_keys

$ rm ~/id_dsa.pub

 

(3)パスワードなしでsshログインできるか確認

$ ssh waku@ensis13
Last login: Mon Jul 13 08:55:12 2015 from ensis10
[waku@ensis13 ~]$

 

NFS設定メモ

 ※ mpirunには--preload_binaryというオプションがあるので、sshでホスト名を使ったログインができていれば、いちいちNFSマウントしていなくても実行バイナリを配ってくれるらしい。

※ 今回は真面目に、ジョブサーバの特定ディレクトリをNFSで公開し、計算ノードからNFSクライアントとしてマウントすることにする。

 

(1)使用条件

NFSサーバ(ジョブサーバ、マウントされる側)

ensis10: /home/waku/exports

NFSクライアント(マウントする側)

ensis{12/13/14}: /home/waku/exports

 

(2)NFSサーバの設定

/etc/exportsに以下を記述

/home/waku/exports  192.168.0.12(rw,no_root_squash)    192.168.0.13(rw,no_root_squash)        192.168.0.14(rw,no_root_squash)

exportsを確認

exportfs -v

/home/waku/exports
        192.168.0.12(rw,wdelay,no_root_squash,no_subtree_check)
/home/waku/exports
        192.168.0.13(rw,wdelay,no_root_squash,no_subtree_check)
/home/waku/exports
        192.168.0.14(rw,wdelay,no_root_squash,no_subtree_check)

nfs, rpcbindの設定・起動

# yum install nfs* rpcbind

# chkconfig rpcbind on

# chkconfig nfslock on

# chkconfig nfs on

# /etc/init.d/nfs start

 

(3)NFSクライアントの設定

# /etc/rc.d/init.d/rpcbind start

# chkconfig rpcbind on

# /etc/rc.d/init.d/netfs start

# chkconfig netfs on

$ mkdir /home/waku/exports

手動マウントしてみる

# mount -t nfs 192.168.0.10:/home/waku/exports /home/waku/exports

うまくいけば、

# vi /etc/fstab

192.168.0.10:/home/waku/exports /home/waku/exports nfs _netdev,rw,async,hard,intr 0 0

(注)ここでサーバ、クライアントは同じGID/UIDを持つものとしているので(事前に同じGID/UIDに変更している)、同じユーザwakuで読み書きできるはずである。ただし、NFSv4(SL6/CentOS6)のバグ?のようなものがあり、nobody.nobodyでマッピングされてしまうことがある。対処方法は、以下のようにすれば良い。

# vi /etc/idmapd.conf

  Domain = localdomain (記述を追記)

# /etc/rc.d/init.d/rpcimapd restart

#  nfsidmap -c (nfsidのキャッシュクリア)

# /etc/rcd./init.d/netfs restart

nfsv4 mounts files as nobody