普段はsshで計算ノードに直接ログインは拒否されるが、ジョブがアサインされたら、その計算ノードにはログインできる機構
計算ノードの「/var/lib/pbs/mom_priv/config」に
$restrict_user true
$restrict_user_exceptions supervisor,user1 <-- 常に直接ログインを許可するユーザ
$restrict_user_maxsysid 999
を加えるとできる。
ジョブが発行されていないノードにユーザがログインを試みると
[saber@client ~]$ ssh n1
saber@n1's password:
Last login: Wed Oct 9 01:44:00 2024 from 192.168.0.45
[saber@n1 ~]$ Connection to n1 closed. <--- 自動的に切られます
[saber@client ~]$
次にインターラクティヴモードで入ってみる
[saber@client ~]$ qsub -l select=1:ncpus=1:host=n1 -I
qsub: waiting for job 10.openpbs to start
qsub: job 10.openpbs ready
[saber@n1 ~]$
そしてこのままで、別のターミナルからsshを使ってログインしてみる
[saber@client ~]$ ssh n1
saber@n1's password:
Last login: Wed Oct 9 01:44:05 2024 from 192.168.0.45
[saber@n1 ~]$
と入れる.
インターラクティヴモードを抜けると、別ターミナルで計算ノードに入っていたssh接続が切れます
[saber@n1 ~]$ Connection to n1 closed.
[saber@client ~]$
opensshの「/etc/ssh/sshd_config」でAllowUsersでの規制を敷いているとこっち(ssh)の制限がより上位になります。
例えば1枚GPUを指定して、ジョブを発行します。っでsshでそのジョブノードにログインすると、、GPUは全ての枚数分表示される...ぇぇぇ...
まぁqsub経由には「CUDA_VISIBLE_DEVICES」が定義されるが、便乗ssh経由にはCUDA_VISIBLE_DEVICES」は定義されない