[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:09638] Re: openSSH,Could not use "scp" on the remotemachine



松本@兵庫県 です。

  ssh でlogin したときの PATH について私の理解しているのは次の通りです。
参考になれば幸いです。

  通常のコンソールやtelnet 等でのlogin ですと PATH の値は
/etc/login.defs の
ENV_SUPATH
ENV_PATH
で指定されています。ssh でlogin した場合は sshd のバイナリの中に
ハードコーディングされています(/etc/environment ~/.ssh/environment 等
で上書き可能)。例えば strings /usr/local/sbin/sshd
とやれば
    :
/usr/bin:/bin:/usr/sbin:/sbin
PATH
    :
という感じの部分があることが分かると思います。
Plamo 2.1 のデフォルトで contrib の openssh を利用した場合、一般ユーザーで
 login したとして、

通常のlogin:
     PATH=/usr/local/bin:/bin:/usr/bin
ssh で login:
     PATH=/usr/bin:/bin:/usr/sbin:/sbin

となります。そのようなわけで、 .profile や /etc/profile 等で、

PATH=$PATH:/usr/X11R6/bin .....

という風に既にある PATH に追加するという記述をすると、通常のlogin と、
ssh でlogin で、PATH の値が異るという結果になります。

また、デフォルトのshell が bash として ssh でlogin する時と scp を
使う場合で login shell として bash を起動するか、そうでないかの
違いがあり、/etc/profile 等を読み込む読み込まないの違いがでるため
ssh でlogin すると PATH に /usr/local/bin が含まれ scp の時には
含まれていないという事も起こり得ます。ssh で login して ECHO $PATH
で確認して安心すると、はまります。

  で、本題の方はどうするべきかについては良く分かりません。
  Plamo 2.1 付属の openssh のパッケージの様に、バイナリは、 /usr/local/bin
にインストールされるのに、sshd が子プロセス作成時の初期環境変数の PATH に
/usr/local/bin が含まれていないのは、不親切かも知れません。
  普通に OpenSSH を make して make install すると、scp 等のインストール
先が PATH に含まれるようなバイナリが作成されて問題は起こりにくいのですが。

-- 
松本 徳真
Norimasa Matsumoto
E-mail: matsu@netfort.gr.jp

Follow-Ups
[plamo:09639] Re: openSSH,Could not use "scp" on the remotemachine, MOUE Kiyoshi
References
[plamo:09633] Re: openSSH,Could not use "scp" on the remotemachine, MOUE Kiyoshi
[plamo:09634] Re: openSSH,Could not use "scp" on the remotemachine, Shun-ichi TAHARA (田原 俊一)
[plamo:09637] Re: openSSH,Could not use "scp" on the remotemachine, MOUE Kiyoshi

[検索ページ] [メール一覧]
Plamo ML 公開システム