2012-11-06 3 views
3

여러 명령 줄 창에서 SSH 에이전트를 다시 사용할 수있는 방법을 보여주는 an article이 있습니다. 이것은 훌륭하지만, 나는 PowerShell을 사용하고 있으며 절대적으로 그것을 빨아 먹는다.PowerShell에서 SSH 에이전트를 다시 사용하십시오.

내 PowerShell 프로필에서 동일한 기능을 사용할 수있는 방법이 있습니까?

업데이트 여기

는 참조 포스트에 대한 간략한 개요입니다.

시작 ssh-agent은 일련의 환경 변수를 설정합니다.

SSH_AGENT_PID=1784 
SSH_AUTH_SOCK=/tmp/ssh-QzfPveH696/agent.696 

ssh-agent

는 소켓 파일 이름을 지정할 수 있습니다. 이것은 게시물이 귀하의 ~/.bashrc에 넣을 것을 제안합니다 (저는 PowerShell을 사용하고 있기 때문에 불가능합니다). 하지 에이전트 실행이 몇 가지를 정리하고 하나를 설정하면

# If no SSH agent is already running, start one now. Re-use sockets so we never 
# have to start more than one session. 

export SSH_AUTH_SOCK=/home/fboender/.ssh-socket 

ssh-add -l >/dev/null 2>&1 
if [ $? = 2 ]; then 
    # No ssh-agent running 
    rm -rf $SSH_AUTH_SOCK 
    ssh-agent -a $SSH_AUTH_SOCK >/tmp/.ssh-script 
    source /tmp/.ssh-script 
    echo $SSH_AGENT_PID > /home/fboender/.ssh-agent-pid 
    rm /tmp/.ssh-script 
fi 

그것은 소켓 파일을 설정은 ssh-add를 실행합니다.

어떻게 PowerShell 프로필로 가져올 수 있습니까?

+0

수를 참조 된 기사의 TL 버전을 작성하고 여기에 편의를 위해 게시 하시겠습니까? – Neolisk

+0

물론 원래 게시물을 업데이트합니다. –

답변

0

나는이 질문이 지금은 아주 오래되었음을 알고 있지만, 어쨌든 나는 그것에 균열을 가지고있다.

가정 :

1) SSH-agent.exe가 Mingw32 버전이다.

2) ssh-agent.exe가 powershell 경로에 있습니다. 당신의 profile.ps1 파일에 다음 실행할 수

 Function Start-SSHAgent{ 
    param(
     [Parameter(Mandatory=$false,ValueFromPipeline=$true)] 
     [string]$socketfile="/p/.ssh-socket",      # Used as input to ssh-agent, which expects POSIX format paths 
     [Parameter(Mandatory=$false)] 
     [string]$pidFile="p:\.ssh-agent-pid"      # Used as input to Out-File which expects Windows format paths 
    ) 
    $env:SSH_AUTH_SOCK=$socketfile 
    $agent_is_running = Get-Process | ? { $_.ProcessName -like "ssh-agent*"} 
    if($agent_is_running -eq $null){ 
     $sshAgentOutput = ssh-agent -a $env:SSH_AUTH_SOCK 
     $parse = Select-String -InputObject $sshAgentOutput -Pattern "(?m)SSH_AGENT_PID=(\d+)" 
     $sshAgentPid = $parse.Matches[0].Groups[1].Value 
     $sshAgentPid | Out-File $pidFile 
     $env:SSH_AGENT_PID = $sshAgentPid 
    } 
} 

드롭 SSHAgent를 시작 (또는 당신은 항상 PowerShell을 시작하는 즉시 실행하도록 함수의 밖으로 걸릴 수 있습니다.

관련 문제