■掲示板に戻る■ 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

ssh

694 :新山 :02/05/31 16:12
自分がやってる方法を書いておきます。
いずれwebにでもまとめておきます。
この方法は最近思いついた。ごめんなさい。

1. ログインすると ssh-agent 環境下で kterm が起動する。
2. xinitrc (xsession) 内で別に起動した kterm 上でも同じ ssh-agent が利用可能。
 (これは$SSH_AUTH_SOCK を固定したパス名に symlink することにより実現)
3. 欠点: 同一ユーザが同時に2つ以上のxdmからログインすると
 また鍵を追加しなおさねばならない (が、ssh-agent が残る可能性はない)。
4. ssh1 を実行すれば、パスフレーズ聞かれるのは最初だけ。
 いっかいどこかのウインドウでやっておけばあとはどの端末からでも ok。
5. ログアウトすると鍵は無効になる。ssh-agent は残らない。

.xinitrc (.xsession) --------------------------------------
# SSH_AUTH_SOCK に ~/.ssh/authsock を入れて各 Xクライアントを起動しておく
export SSH_AUTH_SOCK=$HOME/.ssh/authsock
kterm &
twm &

# 最後に ssh-agent をあげる、このとき本物のソケットを
# ~/.ssh/authsock にシンボリックリンクさせる。
exec ssh-agent kterm -e sh -c 'ln -fs $SSH_AUTH_SOCK $HOME/.ssh/authsock; export SSH_AUTH_SOCK=$HOME/.ssh/authsock; exec bash'

.bashrc ---------------------------------------------------
# 関数 sshon1: 鍵がまだ追加されてなければ追加する。
function sshon1 {
 if [ ! "$SSH_AUTH_SOCK" ]; then echo 'SSH_AUTH_SOCK is not set.'; return 1; fi
 if ! (ssh-add -l 2>&1 | grep '(RSA1)'); then ssh-add ~/.ssh/identity; fi
}
# ssh1: エージェントに鍵がなければ、鍵を追加してから ssh 実行。
function ssh1 { sshon1 && command ssh $*; }



次100 最新50

read.cgi ver5.26+ (01/10/21-)