vine-users ML アーカイブ



[vine-users:056450] ssh-add (Re: .xinitrc ファイルは、 どこにあるのか ?)

  • From: NISHIMURA Daisuke <nishi@xxxxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:056450] ssh-add (Re: .xinitrc ファイルは、 どこにあるのか ?)
  • Date: Sun, 01 Dec 2002 00:54:08 +0900
サブジェクト変えました。
# リプライが付いていますがリプライになっていないようです。

T.Kikuchi wrote:
> vine linux 2.5で、SSH-2で、繋がるようにできたのですが、クライアントでパスフレ-ズを入力するのが面倒で
> す。
> 
> 手持ちの本に、
> $ ssh-agent /bin/bash (SSHエ-ジェントを起動)
> $ ssh-add ~/.ssh/id_dsa (SSHエ-ジェントにあらかじめ、復号化した鍵を記憶させる)
> と、あり、上記2行目のコマンドで、Enter passphrase for /home/~/.ssh/id_dsa:
> と出るので、パスフレ-ズを入力しました。
> 
> 以降は、パスフレ-ズを入力しなくても繋げる事が出来るようになりました。
> 
> しかし、ssh-add で記憶しているのは、このシェルの中のみ(あまりこの意味が良く分かりませんが)、との事
> で、$ su root などとした後、
> ~に戻ったときに、また最初からやり直さなければなりません。

そのようなことはありません。 su を抜けたら元のシェルに戻るのですから。
そのシェル (とその子孫) から起動したのではないアプリケーションには
有効にならないということです。
正確には、そのシェルとは、 ssh-agent で起動したシェルです。

> この為に、持っているこの本には、.xinitrcファイルに
> ssh-add ~/.ssh/id_dsa < /dev/null
> と記述しておけば良い、と書かれているのですが、この.xinitrcというファイルがどこに有るのか、findで探し
> たのですが無いようなのです。
> 
> このファイルはどこに有るのでしょうか?
> 宜しくお願いいたします。

ホームディレクトリにあるべき (というかそこにないと意味がない)
ものです。なければ作ればいいのです。ないときに使われる
デフォルトのファイル (/etc/X11/xinit/xinitrc) をコピーすれば
良いでしょう。

ですが、 Vine の xinitrc は、 .xsession か .Xclients があれば
それを実行するようになっているので、ないときに使われるファイル
(/etc/X11/xinit/Xclients) を .Xclients にコピーすれば良いです。

ところで、 X はどのようにして使っていますか?
つまり、 run level 3 でテキストログインしてから startx しているのか、
run level 5 でグラフィカルログイン (wdm を使用) しているのか、です。

後者なら、 ssh-agent は自動的に使ってくれるようになっているので、
GNOME を使っている場合は、スクリプトを書き換えなくても、
[設定]-[セッション]-[Session Properties & Startup Programs]
の「自動起動プログラム」タブで「追加」して ssh-add と入れれば、
ログイン時にパスフレーズ入力ダイアログが出てきて
鍵を追加してくれるようになります。
この方法がお薦めです。

それとも、 .xinitrc とか言っているということは前者なのでしょうか。
この場合は、 ssh-agent startx のように起動することになりますね。
GNOME の場合は同様にセッションの設定をすれば良いはずです。
特に理由がないなら wdm を使った方が良いと思いますが。

結論は、 GNOME なら自動起動プログラムに追加、
それ以外はわかりません。

# xinit 用と wdm 用の Xclients は全然違うのね…。

-- 
西村 大介 <nishi@xxxxxxxxxxxxxxxxxxxxx>
東京大学大学院総合文化研究科広域システム科学系