在Windows上启动Git Bash时运行SSH代理?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (80)
eval `ssh-agent.exe`
ssh-add /my/ssh/location/

有没有办法永久设置ssh代理?还是Windows有一种管理ssh密钥的好方法?

提问于
用户回答回答于
# This is just a snippet. See the article above.
if ! agent_is_running; then
    agent_start
    ssh-add
elif ! agent_has_keys; then
    ssh-add
fi
用户回答回答于

1)更新.bashrc在它中添加以下内

# Set up ssh-agent
SSH_ENV="$HOME/.ssh/environment"

function start_agent {
    echo "Initializing new SSH agent..."
    touch $SSH_ENV
    chmod 600 "${SSH_ENV}"
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' >> "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    /usr/bin/ssh-add
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
    . "${SSH_ENV}" > /dev/null
    kill -0 $SSH_AGENT_PID 2>/dev/null || {
        start_agent
    }
else
    start_agent
fi

2)然后运行$ source ~/.bashrc重新加载配置。

3)创建一个SSH配置文件(如果不存在)。使用以下命令创建一个新的命令:.ssh$ touch config

4)在~/.ssh/config

Host github.com-<YOUR_GITHUB_USERNAME> 
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes


Host csexperimental.abc.com
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes

<More hosts and github configs can be added in similar manner mentioned above>

5)使用命令将密钥添加到SSH代理中$ ssh-add ~/.ssh/id_work_gmail然后,你应该能够使用ssh连接到你的GitHub帐户或远程主机。例如,在上述代码中,示例:

$ ssh github.com-<YOUR_GITHUB_USERNAME>

$ ssh <USER>@csexperimental.abc.com

向SSH代理添加密钥只需执行一次。

6)现在退出WindowsLinux子系统上的Bash会话,即再次退出所有Bash控制台,并再次启动一个新控制台,并尝试将SSH发送到你的Gitub主机或SSH配置文件中的其他主机,它应该可以工作,而不需要任何额外的步骤。

注:

  • 如果你面对Bad owner or permissions on ~/.ssh/config然后使用以下命令更新权限chmod 600 ~/.ssh/config
  • 要使上述步骤正常工作,将需要以下步骤:OpenSSH v7.2及更高版本
  • 同样的细节可以在要点中找到。Windows 10 Linux子系统SSH代理问题

谢谢。

扫码关注云+社区

领取腾讯云代金券