如果使用的是 Windows 及其内置 OpenSSH 客户端,请按照以下步骤配置 OpenSSH 客户端,以便可以在没有提示的情况下使用受口令短语保护的 SSH 密钥。
检查是否已存在 SSH 密钥。请参阅 GitHub 文档:检查现有 SSH 密钥。
如果没有 SSH 密钥:
检查 C:\Users\<YourUserName>\.ssh\config 是否存在。注意:在有些应用程序(例如 Git Bash)中,.ssh 是一个隐藏的子目录。
如果 C:\Users\<YourUserName>\.ssh\config 不存在,则创建它。
向 C:\Users\<YourUserName>\.ssh\config 添加以下内容,以设置要在身份验证代理中加载的密钥,并指定目标服务器对密钥的使用。确保在标记为 Host * 的任何全局设置之前添加此条目。
Host SERVER_NAME
IdentitiesOnly yes
IdentityFile FILE_PATH
SERVER_NAME 是使用 IdentityFile 指定的文件的服务器。示例值为 github.com。FILE_PATH 是您创建的 SSH 文件的完全限定路径。示例值为 C:\Users\<YourUserName>\.ssh\<FILE>,其中 <FILE> 可以是 id_rsa、id_ecdsa、id_ed25519 或自定义名称。示例:
Host github.com
IdentitiesOnly yes
IdentityFile C:/Users/user1/.ssh/id_ed25519
打开 Windows PowerShell,确保通过选择以管理员身份运行 (Run as Administrator) 来将其打开。
通过运行以下命令,配置 SSH 身份验证代理服务,使其在每次重新启动计算机时启动:
Get-Service ssh-agent | Set-Service -StartupType Automatic
通过运行以下命令启动服务:
Start-Service ssh-agent
通过运行以下命令检查服务是否正在运行,并确认 Status 值为 Running:
Get-Service ssh-agent
将密钥文件加载到 ssh-agent 中,将 <FILE> 替换为密钥的实际文件名,然后在提示时键入口令短语。
ssh-add $env:USERPROFILE\.ssh\<FILE>
示例:
ssh-add $env:USERPROFILE\.ssh\id_ed25519
使用以下任一方法,确保 Git 使用 Windows OpenSSH 客户端而不是 Git 附带的 SSH 客户端:
对于系统范围的配置,请创建名为 GIT_SSH_COMMAND 的环境变量,其值为 C:/Windows/System32/OpenSSH/ssh.exe。重要提示:确保在路径中使用正斜杠。
要设置特定范围的配置,请在终端中运行以下 git config 命令。有关详细信息,请参阅 git 配置文档。例如:
git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe
重要提示:确保在路径中使用正斜杠。
现在可以使用 Unity Package Manager,借助受口令短语保护的 SSH 密钥通过 SSH 从该 Git 代码仓库获取包。