gpt4 book ai didi

powershell - 在 PowerShell 中重用 SSH 代理

转载 作者:行者123 更新时间:2023-12-03 03:02:10 25 4
gpt4 key购买 nike

我找到了an article该图展示了如何在多个命令行窗口中重复使用 SSH 代理。这很棒,但我正在使用 PowerShell,而且完全不擅长它。

有没有办法从我的 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 配置文件中呢?

最佳答案

我知道这个问题现在已经非常老了,但我还是尝试了一下。

假设:

1)ssh-agent.exe是Mingw32版本。

2) ssh-agent.exe 位于您的 powershell 路径中。

        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
}
}

将其拖放到你的 profile.ps1 文件中,然后你就可以运行 Start-SSHAgent (或者你可以将它从函数中取出,让它在 powershell 启动时始终运行。

关于powershell - 在 PowerShell 中重用 SSH 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com