Windows 无法识别 eval

van*_*aal 8 github ssh-keys

我是初学者,我正在尝试将我的 GitHub 配置文件与我的本地计算机连接。

我正在按照步骤操作,但我的 gitcmd无法识别eval. 我已经生成了一个密钥,并尝试将 SSH 密钥添加到ssh-agent.

这是我收到的消息:

“eval”不被识别为内部或外部命令、可操作程序或批处理文件。

我运行的命令是:

eval "$(ssh-agent -s)"
Run Code Online (Sandbox Code Playgroud)

Key*_*Usr 8

您在错误的控制台中运行该命令。

打开 Powershell 1、 Git Bash 控制台或 WSL bash - 取决于您安装 Git 的方式 - 因为这只是命令提示符 (cmd.exe),它甚至不支持您正在尝试的语法 (Bash)。

或者,确保ssh-agent的文件夹位于PATH环境变量中。然后,您甚至可以从不同的控制台调用它,即命令的一部分。eval $(ssh-agent -s)

然而,该部分的功能与命令提示符控制台不兼容:

     -s      Generate Bourne shell commands on stdout.  This is the default if
             SHELL does not look like it's a csh style of shell.
Run Code Online (Sandbox Code Playgroud)

并输出如下内容:

SSH_AUTH_SOCK=/tmp/ssh-jR0WcW41z0yX/agent.1918430; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1918431; export SSH_AGENT_PID;
echo Agent pid 1918431;
Run Code Online (Sandbox Code Playgroud)

这可以通过使用命令提示符的SET命令来解决,如下所示:

set SSH_AUTH_SOCK=c:\some\path\agent.1918430
set SSH_AGENT_PID=<the number you got>
Run Code Online (Sandbox Code Playgroud)

然后按照该eval $(ssh-agent -s)指令运行命令。


1 个PowerShell 实例,从原始 GitHub 工具包(还包含 Git Bash)打开时出现,它预加载一些别名或其他功能。eval其本身可能不存在于干净的 PowerShell 实例中。当不可用时,使用Invoke-Expression.