Windows XP中.ssh目录的问题

时间:2016-04-05 09:36:58

标签: powershell ssh

我正在尝试使用Powershell在Windows XP中使用带有SSH密钥的(git)ssh。

当我运行ssh时,它总是试图从一个在Windows上下文中没有意义的位置获取密钥和已知主机。

prompt> ssh -vvv user@server
...
debug1: Trying private key: /.ssh/id_rsa
debug3: no such identity: /.ssh/id_rsa
...
prompt>

在Windows 7中,此行为似乎导致.ssh目录被创建或从c:\Program Files (x86)\Git\bin读取。但是,在Windows XP中,这似乎不是行为

2 个答案:

答案 0 :(得分:0)

尝试直接指定它:

 ssh -i $HOME/.ssh/id_rsa

答案 1 :(得分:0)

似乎这个问题是由于环境变量在Powershell和Windows中的工作方式引起的/与之相关。

很明显,(git)ssh正在获取$env:HOME的值,其中powershell与$ HOME的值不同。

在Windows 7中,可以使用命令setx HOME /c/Users/james设置此值。如果您想将您的家庭位置设置为驱动器(即z:),则必须使用尾部斜杠,否则setx将假定它是一个标志。即setx HOME /z/

这将在您打开的下一个Powershell窗口中生效(但不会在当前窗口中生效)

在Windows XP中,setx并不总是可用(它位于SP2和SP3上),如果您阅读Microsoft文档,您可能会认为setx只是reg add的简写但这实际上是一个谎言。

如果您使用命令reg add HKCU\Environment /v HOME /t REG_SZ /d "/c/Documents and Settings/james/"

虽然这会以与setx看似相同的方式更新注册表。在注销/登录循环之后,(Git)ssh中的更改不可用。