SSHログイン時のログインシェルの読み込みについて
いつもお世話になっております。
zabbixのSSHエージェントでログインした際のログインシェルの読み込みについてご存知の方いらっしゃいましたら回答をお願いします。
環境
CentOS 6.6
Zabbix 2.4.6
zabbixのSSHエージェントを使用した監視では
SSHログイン時に$HOMEの.bash_profileは読み込まれずに.bashrcのみ読み込まれるような挙動をしています。
SSHエージェントのアイテムで
env | grep PATH
を設定し、PATHの内容を確認するようにしました。
.bash_profileにPATHを設定したところ、PATHに変化は見られませんでした。
.bashrcでPATHを設定したところ、.bashrcで設定したPATH内容が取得されました。
SSHで新規ログインした際は.bash_profileのあと.bashrcが読み込まれる認識ですが
zabbixでは上記と違うログインを行うのでしょうか?
lastコマンドを実行してもzabbix監視ログインが記録されていないようですし。
TNK - 投稿数: 4769
ログインシェルと非ログインシェルの違いだと思います。
通常、ターミナルを利用してsshで対話的にログインする際には、
ログインシェルが自動的に起動されます。
そうすると、~/.bash_profileや~/.bashrcが呼び出されます。
それに対して、Zabbixからssh経由でコマンドを実行する際には、
sshでのセッション確立後、libssh2_channel_exec()を利用してコ
マンドを実行するようになっています。
この場合、ログインシェルは起動されませんので、
~/.bash_profile
が読み込まれないのではないでしょうか。
onigirimogumogu - 投稿数: 34
なるほど。zabbixはlibssh2を使ってsshログインをするのでした。
libssh2では~/.bash_profileを読み込まないということですね。
腑に落ちました。
ありがとうございます。