rsh で .rhosts 認証する方法

久しぶりに .rhosts 認証の設定をしたので方法をメモ。

pamの設定

#%PAM-1.0
#auth           required        pam_securetty.so
auth            sufficient      pam_rhosts.so
account         required        pam_unix.so
password        required        pam_unix.so nullok use_authtok obscure  min=4 max=8
session         required        pam_unix.so

ポイント

  • readlink -f `which rsh` として、本当に rsh が使われているか、実は sshalternative されていないか確認しておく。
  • 上記の例のように pam_securetty.so をコメントアウトしておくと、 /etc/securetty の設定は無効になる。つまり /etc/securetty に rsh とかを追記する必要が無くなる。
  • auth sufficient pam_rhosts_auth.so と書くと動作しない。 pam_rhosts_auth.so というモジュールは、 pam_rhosts.so に改名したため*1
  • rsh と rlogin の違いに注意。
$ rsh ホスト名
$ rsh ホスト名 コマンド

とコマンドを実行する場合、前者は rlogin つまり /usr/sbin/in.rlogind が /etc/pam.d/rlogin の設定で認証を行い、後者の場合は rsh つまり /usr/sbin/in.rshd が /etc/pam.d/rsh の内容で認証を行う。

  • root アカウントで rhosts 認証するためには、さらに /usr/sbin/in.rshd に "-h" オプションが必要。

*1:debian のパッケージングのバグかもしれない