windows git bash启动时可以';找不到agent.env

windows git bash启动时可以';找不到agent.env,git,github,ssh,git-bash,ssh-agent,Git,Github,Ssh,Git Bash,Ssh Agent,要使用私钥密码短语配置ssh,我将遵循以下GitHub文档: 具体地说,我在~/.ssh/.bashrc中添加了以下脚本: Windows 10 Git for Windows 64 v2.13.0.windows.1 但是,当我启动Git Bash时,它找不到~/.ssh/agent.env: env=~/.ssh/agent.env agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; } a

要使用私钥密码短语配置ssh,我将遵循以下GitHub文档:

具体地说,我在
~/.ssh/.bashrc
中添加了以下脚本:

Windows 10
Git for Windows 64 v2.13.0.windows.1
但是,当我启动Git Bash时,它找不到
~/.ssh/agent.env

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

什么是
agent.env
以及它通常是如何安装的,或者它应该包含什么?

Point
ssh add
到文件中,例如
ssh add~/.ssh/id\u rsa
c:/somenondefaultlocation/.ssh/id\u rsa

bash: env=~/.ssh/agent.env: No such file or directory
bash: : No such file or directory
bash: : No such file or directory
Could not open a connection to your authentication agent.

另外,请确保为第一行设置了相同的目录,例如
env=~/.ssh/agent.env
env=c:/somenondefaultlocation/.ssh/agent.env

我知道这很旧,但这只是发生在我身上,这就是我发现的

对我来说,它最终是文件的编码,包括字节顺序标记(BOM),它被解释为第一行的一部分,因此它没有设置“env”变量,而是认为它在执行命令(输出中的第一个错误支持这一点)

您可以通过添加
echo“env=$env”
作为第二行进行确认,您将看到“env=”,显示未设置env变量

我已经使用notepad++创建了.bashrc,它默认为带有BOM的utf-8。您可以将编码(encoding菜单)更改为utf-8或ANSI,重新保存文件,现在应该可以按预期工作

或者,删除该文件并从bash重新创建它:

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add

然后编辑文件并粘贴脚本。

我知道这是一个旧线程,但也许我可以帮助遇到此问题的其他人。
在我的例子中,我只需要在用户配置文件中创建.ssh文件夹就可以了。

您建议如何修改您引用的代码部分?
cd ~/
rm .bashrc
umask 077
touch .bashrc