当前位置: 首页 > 知识库问答 >
问题:

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

姜德泽
2023-03-14

我正在使用git bash。我得用

eval `ssh-agent.exe`
ssh-add /my/ssh/location/

每次我开始新的git bash时。

有没有办法永久设置ssh代理?或者windows有管理ssh密钥的好方法吗?

我是新人,请给我详细的教程,谢谢!

共有3个答案

丰誉
2023-03-14

我发现实现这一点最平滑的方法是使用Pageant作为SSH代理和plink。

您需要为远程服务器中使用的主机名配置putty会话。

您还需要plink。exe,可从putty的同一站点下载。

你需要选美比赛带着你的钥匙运行。我有一个快捷方式来选美在我的启动文件夹,加载我的SSH键,当我登录。

当您安装git-scm时,您可以将其指定为使用tortoise/plink而不是OpenSSH。

最终效果是,您可以随时打开git-bash并推拉,而无需挑战密码。

同样适用于油灰和WinSCP会话时,选美有您的关键加载。这让生活变得轻松(安全)得多。

杜骏祥
2023-03-14

附言:这些说明是在Windows10Linux子系统中打开的BashShell的上下文中给出的,没有提到sym将Windows中生成的SSH密钥与Windows上Ubuntu上的Bash链接

1) 更新你的密码。通过在其中添加以下内容

# 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重新加载配置。

上述步骤是从https://github.com/abergs/ubuntuonwindows#2-启动时启动bash ssh代理

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

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 Add~/将密钥添加到SSH代理。ssh/id\u work\u gmail,然后您应该能够使用ssh连接到github帐户或远程主机。例如,在上述代码示例的上下文中:

$ ssh github.com-<YOUR_GITHUB_USERNAME>

$ ssh <USER>@csexperimental.abc.com

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

6)现在退出WindowsLinux子系统上的Bash会话,即再次退出所有Bash控制台,再次启动新控制台,并尝试SSH到Github主机或其他主机,如<--plhd-2/>配置文件,它应该不需要任何额外的步骤。

注:

>

  • 如果您在~/上遇到错误的所有者或权限。ssh/config然后使用命令chmod 600~/更新权限。ssh/config。参考:https://serverfault.com/a/253314/98910

    要使上述步骤正常工作,您需要OpenSSH V7.2及更高版本。如果您有旧版本,可以使用中提到的步骤进行升级https://stackoverflow.com/a/41555393/936494

    同样的细节可以在gist Windows 10 Linux子系统SSH代理问题中找到

    谢谢

  • 郭乐湛
    2023-03-14

    在git bash会话中,您可以将脚本添加~/. file~/. bashrc(通常将~设置为%USERPROFILE%),以便所述会话自动启动ssh-agent.如果文件不存在,只需创建它。

    这是GitHub在“使用SSH密钥密码短语”中描述的内容。

    该文章的“在Git for Windows上自动启动ssh代理”部分有一个健壮的脚本,用于检查代理是否正在运行。下面只是一个片段,请参阅GitHub文章以了解完整的解决方案。

    # 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
    

    其他资源:

    “让ssh-agent使用git从windows命令外壳运行”有一个类似的脚本,但是我主要参考上面的GitHub文章,它更健壮,也是最新的。

     类似资料:
    • 我在Windows中有。我正在尝试运行,但它给了我错误。 意图:我想使用解析JSON。

    • 我正在关注部署到VPS的#335,在接近本集结尾时,我们需要运行,以便让服务器访问github repo。 问题是如何在windows中运行它?需要安装什么? 我知道要运行访问远程服务器,我可以使用。但是这个命令需要在本地运行,我知道如何使用来实现这一点。

    • 本文向大家介绍在Windows启动时自动运行Python脚本?,包括了在Windows启动时自动运行Python脚本?的使用技巧和注意事项,需要的朋友参考一下 将Python脚本添加到Windows启动时,基本上表示Python脚本将在Windows启动时运行。这可以通过两步过程来完成- 步骤#1:在Windows启动文件夹中添加或添加脚本 在启动Windows后,它会执行(相当于双击)其启动文件

    • 我开始开发projet,现在使用windows。基本上,我可以使用maven生成一个Jar文件,但当我尝试运行Jar文件时,它并不好用。听起来好像没有找到hibernate属性。 我的错误: 我的Hibernate配置位于\src\main\Resources\application.properties 我怎么处理? [更新] 使用mvn spring boot运行时,我可能会得到不同的结果:r

    • 当我试图通过PowerShell(右侧提升或不提升)在Windows 10上通过输入启动服务ssh代理来启动ssh代理时,我得到了错误 无法启动ssh代理服务,错误:1058 当我通过检查服务是否正在运行时,返回服务已停止。 如何让ssh代理运行?

    • 问题内容: 我有一个包含Java应用程序的JAR文件。如何使它从Windows开始而不需要用户交互? 问题答案: 创建一个.bat文件,并将其放入其中: 然后将.bat文件放入Windows启动文件夹。 还有一件事:使用java和javaw之间是有区别的。虽然在调试应用程序时使用Java更好,但应用程序会打印文本或类似内容,而在不需要时,javaw则更好。为什么?因为java使用控制台显示所有应用