前の日 / 次の日 / 最新 / 2007-08

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2007-08-31 Fri

ssh-agent 用の関数

function PS-ssh-agent
{
    param([switch]$k)
    if($k)
    {
        $con = ssh-agent -k;
        $reg = new-object System.Text.RegularExpressions.Regex("echo (.*)");
        echo $reg.Match($con).Groups[1].value;
        Remove-Item env:SSH_AUTH_SOCK
        Remove-Item env:SSH_AGENT_PID
        return;
    }else{
        $con = ssh-agent -c;

        $reg = new-object System.Text.RegularExpressions.Regex("SSH_AGENT_PID (\d+)");
        New-Item env:SSH_AGENT_PID -value $reg.Match($con).Groups[1].value | Out-Null;

        $reg = new-object System.Text.RegularExpressions.Regex("SSH_AUTH_SOCK (/tmp/ssh-\w+/agent\.\d+)")
        New-Item env:SSH_AUTH_SOCK -value $reg.Match($con).Groups[1].value | Out-Null;

        $reg = new-object System.Text.RegularExpressions.Regex("echo (.*)");
        echo $reg.Match($con).Groups[1].value;
        return;
    }
}

eval したときと同じように環境変数を設定する。

-k でプロセスの削除