ssh-agent を起動するスクリプト

作ってみた。

#!/bin/bash
# ssh-agent を起動するスクリプト 5 Dec 2010 Masaru Yokoi
#
# 動作概要:
#  - 環境変数 SSH_AUTH_SOCK が設定され、このソケットが利用出来る場合には、
#    そのまま利用する
#  - 下記の場合には、SSH_AUTH_SOCKを ~/.ssh-auth-sock に設定して ssh-agent
#    を起動する。
#    - SSH_AUTH_SOCK が設定されていない場合
#    - SSH_AUTH_SOCK は設定されているが利用できない場合。
#  - ソケットファイルの名前が固定になっているので、これが有るか無いかで判定
#
#  使い方:
#  - このスクリプトを ~/.ssh/start-agent.sh あたりに置きましょう
#  - ~/.bashrc に下記のような内容を書きましょう。
#     . ~/.ssh/start-agent.sh
#
function start_ssh_agent_check_authsock() {
s="$1"
[ -n "$s" -a -S "$s" -a -O "$s" ] && return 0 || return 1
}
function start_ssh_agent() {
new_SSH_AUTH_SOCK=~/.ssh-auth-sock
if start_ssh_agent_check_authsock "$SSH_AUTH_SOCK" ; then
return 0
fi
if start_ssh_agent_check_authsock "$new_SSH_AUTH_SOCK" ; then
SSH_AUTH_SOCK="$new_SSH_AUTH_SOCK"
export SSH_AUTH_SOCK
return 0
fi
ssh-agent -a "$new_SSH_AUTH_SOCK" || return 1
if start_ssh_agent_check_authsock "$new_SSH_AUTH_SOCK" ; then
SSH_AUTH_SOCK="$new_SSH_AUTH_SOCK"
export SSH_AUTH_SOCK
return 0
fi
}
start_ssh_agent

SSH Forward Agent を利用している環境で screen を立ち上げ、 screen を detach して、別のSSHセッションで screen reattach すると SSH Agent が利用できなくなるので、こんなものを作った。

またもうちょい直す予定

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください