SSH正在寻找Windows上公钥/私钥对的错误位置

Mic*_*isy 36 git github ssh-keys

我正在尝试在我的Windows XP机器上配置GIT,但SSH一直在非感性的地方创建和查找公钥/私钥对,例如/.ssh/id_rsa

在GIT安装Windows中是否有配置文件,我可以将其切换到我的主目录或其他用户定义的位置?默认情况下,它提供了在//.ssh/id_rsa创建新密钥对,但这给了我错误"无法创建目录'//.ssh'." 当我能够找到一个可以创建它的目录时,GIT就不会看到它.

Mic*_*isy 70

想出了如何在Windows XP中手动设置我的主目录:

  1. 右键单击"我的电脑"
  2. 选择"高级"选项卡
  3. 单击"环境变量"按钮
  4. 在"系统变量"部分下,单击"新建"
  5. 在"变量名称"中输入"home".
  6. 在"变量值"中输入您的配置文件的路径.

要通过命令提示符执行相同操作:

setx HOME "your\path\to\home"
Run Code Online (Sandbox Code Playgroud)

(请注意后缀x - 这用于保持更改)

  • 就像提示一样,老实说我不记得XP中是否有此选项,但至少在较新版本的Windows中,您可以将其添加为用户变量而不是系统变量.显然,用户的主目录不是系统范围的东西. (4认同)

go2*_*ull 9

建议从MSYS2方法是设置db_home/etc/nsswitch.conf你的home目录.

感谢@VarunAgw指向了正确的方向.

Git-for-Windows包含envin db_home,应该读取你的HOMEbash变量,但是它不可靠.


cra*_*aig 5

我在 Windows 7 上遇到了类似的问题。HOME环境变量似乎设置正确:

$ echo $HOME
C:\Users\craibuc
Run Code Online (Sandbox Code Playgroud)

但是尝试连接测试github的ssh访问失败:

$ ssh -Tv git@github.com
OpenSSH_6.6.1, OpenSSL 1.0.1i 6 Aug 2014
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
Could not create directory 'C/.ssh'.
debug1: identity file C/.ssh/id_rsa type -1
debug1: identity file C/.ssh/id_rsa-cert type -1
debug1: identity file C/.ssh/id_dsa type -1
debug1: identity file C/.ssh/id_dsa-cert type -1
debug1: identity file C/.ssh/id_ecdsa type -1
debug1: identity file C/.ssh/id_ecdsa-cert type -1
debug1: identity file C/.ssh/id_ed25519 type -1
debug1: identity file C/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
The authenticity of host 'github.com (192.30.252.129)' can't be established.
RSA key fingerprint is xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (C/.ssh/known_hosts).
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: C/.ssh/id_rsa
debug1: Trying private key: C/.ssh/id_dsa
debug1: Trying private key: C/.ssh/id_ecdsa
debug1: Trying private key: C/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

由于某种原因,ssh正在尝试访问C/.ssh.

当我使用设置变量setx HOME /c/users/craibuc并重新启动 shell 时,我能够连接:

$ ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '192.30.252.130' to the list of known hosts.
Hi craibuc! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)


Bou*_*egh 5

检查which ssh您是否正在使用/usr/bin/ssh或其他可能意外安装的东西。

在我的情况下,我的 ssh在安装后被Chocolatey替换rsync。运行后choco uninstall rsync,我的 SSH 又开始工作了。