サーバの管理作業のためによく使われているSSHだが、Nagiosの監視でもSSHを使用する場合がある。
SSHでパスワードなしでログインする方法自体は、他のサイトでも色々書かれているので、ここではNagiosを絡めて書いておこうと思う。
今回はSSHを使用したエージェントレス方式の監視プラグインを自作した場合に、監視対象サーバにSSHでパスワードなしでログインする方法を書こうと思う。
今回はログイン先のサーバに監視用のnagiosユーザを作成してあることとする。
Nagiosプラグインはnagiosユーザで起動されるため、今回はNagiosサーバ上のnagiosユーザで監視対象サーバのnagiosユーザにログインすることになる。
 



 

SSHキーペアの作成

RSA方式の公開鍵(id_rsa.pub)と秘密鍵(id_rsa)のペアをNagiosサーバ上で作成する。
通常はコマンドを実行したユーザのホームディレクトリ直下に.sshディレクトリが作成され、そこに公開鍵(id_rsa.pub)と秘密鍵(id_rsa)が作成される。
その際にパスフレーズの入力を求められるが、パスフレーズは入力せずにEnterを入力して進む。
ここでパスフレーズを入力すると、ログインの際に毎回パスフレーズを入力しなければならなくなる。
それでは、パスワードを入力してログインするのと同じになってしまう。
今回はパスワードなしでログインする方法なので、パスフレーズの設定はなしで進む。

# su - nagios
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/usr/local/nagios/.ssh/id_rsa):Enterを入力
Created directory '/usr/local/nagios/.ssh'.
Enter passphrase (empty for no passphrase):Enterを入力
Enter same passphrase again:Enterを入力
Your identification has been saved in /usr/local/nagios/.ssh/id_rsa.
Your public key has been saved in /usr/local/nagios/.ssh/id_rsa.pub.
The key fingerprint is:
76:dc:0f:18:d1:0f:6d:f1:f0:a2:13:24:aa:72:9c:04 nagios@localhost

 

公開鍵(id_rsa.pub)の設定

公開鍵(id_rsa.pub)はログイン先のサーバに置き、秘密鍵(id_rsa)はログイン元のサーバに置いておく。
今回はログイン先のサーバに監視用のnagiosユーザを作成してある前提のため、ログイン先のサーバのnagiosユーザのホームディレクトリに.sshディレクトリを作成し、authorized_keysファイルに公開鍵(id_rsa.pub)を設定する。
authorized_keysファイルがなければ、新規作成する。

# su - nagios
$ mkdir .ssh
$ chmod 700 .ssh
$ cp ./id_rsa.pub .ssh/
$ cd .ssh
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
$ rm id_rsa.pub

 

SSHサーバの設定

SSHサーバの設定ファイル(/etc/ssh/sshd_config)の設定を行う。
最低限以下の設定がきちんと設定されていればOKだ。
SSHサーバの設定ファイル(/etc/ssh/sshd_config)の設定が完了したら、SSHサーバサービスの再起動(service sshd restart)を忘れてはいけない。

・Protocol 2
 SSHにはプロトコルが2種類あり、SSH1(プロトコル1)とSSH2(プロトコル2)がある。
 SSH2(プロトコル2)のほうが強度が高いため、ここではSSH2(プロトコル2)を指定する。

・PubkeyAuthentication yes
 公開鍵認証の許可を設定する。
 デフォルトで上記の設定になっている。

・AuthorizedKeysFile .ssh/authorized_keys
 公開鍵の設定ファイルを指定する。
 デフォルトで上記の設定になっている。
 

 

 


Categories: SSH


Leave a Reply