我正在尝试在我的Windows XP计算机上配置GIT,但是SSH不断创建并在非感知位置查找公钥/私钥对,例如/.ssh/id_rsa
在GIT Installation for Windows中是否有配置文件,我可以将其切换到我的主目录或其他用户定义的位置?默认情况下,它提供了在//.ssh/id_rsa创建新密钥对,但这给了我错误“无法创建目录'//.ssh'。”当我能够找到一个可以创建它的目录时,GIT就不会看到它。
答案 0 :(得分:65)
了解如何在Windows XP中手动设置我的主目录:
通过命令提示符执行相同的操作:
setx HOME "your\path\to\home"
(请注意后缀x - 这用于保留更改)
答案 1 :(得分:8)
Recommended方法是将db_home
中的/etc/nsswitch.conf
设置为您的主目录。
Git-for-Windows在env
中包含db_home
,应该会读取您的HOME
bash变量,但是unreliable。
答案 2 :(得分:3)
检查which ssh
以查看您是否正在使用/usr/bin/ssh
或其他可能已意外安装的内容。
在我的情况下,安装rsync
后,我的ssh被 Chocolatey 取代。运行choco uninstall rsync
后,我的SSH再次运行。
答案 3 :(得分:2)
我在Windows 7上遇到了类似的问题。HOME
环境变量似乎设置正确:
$ echo $HOME
C:\Users\craibuc
但是,尝试连接到测试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).
出于某种原因,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.
答案 4 :(得分:0)
当使用具有域策略的计算机将用户配置文件设置为网络驱动器(在这种情况下映射到Z:
)时,我遇到了同样的问题。
当试图从Powershell做任何事情时,我会收到这样的消息。设置home
PATH变量没有帮助。
git clone ssh://myusername@mydomain.com:1234/myproject
Cloning into 'myproject'...
Could not create directory '/z/.ssh'.
The authenticity of host '[mydomain.com]:1234 ([1.1.1.1]:1234)' can't be established.
RSA key fingerprint is 00:11:22:33:$4:55:66:77:88.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/z/.ssh/known_hosts).
Permission denied (publickey).
Please make sure you have the correct access rights
and the repository exists.
当我从git bash克隆时,它很好,因为/z/.ssh
等是从shell指向Z:\.ssh
的有效方法。
答案 5 :(得分:0)
ln -s /c/Users/rofrol/.ssh /home/rofrol/
为我工作。
这没有:
$ echo $HOME
/c/Users/rofrol
$ cat ~/nsswitch.conf
db_home: /c/Users/rofrol
$ cat /home/rofrol/nsswitch.conf
db_home: /c/Users/rofrol
$ cat /etc/nsswitch.conf
# Begin /etc/nsswitch.conf
passwd: files db
group: files db
db_enum: cache builtin
#db_home: cygwin desc
db_home: /c/Users/rofrol
db_shell: cygwin desc
db_gecos: cygwin desc
# End /etc/nsswitch.conf
可能是因为这个原因:
SSH将需要/ home / $ USER
https://github.com/git-for-windows/git/issues/736#issuecomment-215123009
答案 6 :(得分:-3)
在Windows 7上只需将您的私钥(id_rsa)放在C:\ Users \ .ssh FOLDER中 如果.ssh文件夹不存在,只需创建它。 下载GIT for Windows,进入项目目录并执行操作 git clone ssh://@/.git