SSH ищет неправильное место для пары открытый / закрытый ключ в Windows - PullRequest
36 голосов
/ 15 мая 2010

Я пытаюсь настроить GIT на моем компьютере с Windows XP, но SSH продолжает создавать и искать пару открытый / закрытый ключ в несмысленных местах, например. /.ssh/id_rsa

Есть ли файл конфигурации в GIT Installation for Windows, где я могу переключить его в свой домашний каталог или в другое место, определенное пользователем? По умолчанию он предлагает создать новые пары ключей в //.ssh/id_rsa, но это дает мне ошибку «Не удалось создать каталог« //.ssh ».» И когда мне удастся найти каталог, в котором я могу его создать, GIT не будет там смотреть.

Ответы [ 7 ]

65 голосов
/ 15 мая 2010

Понял, как вручную установить мой домашний каталог в Windows XP:

  1. Щелкните правой кнопкой мыши «Мой компьютер»
  2. Выберите вкладку «Дополнительно»
  3. Нажмитекнопка «Переменные среды»
  4. В разделе «Системные переменные» нажмите «Создать»
  5. В поле «Имя переменной» введите «home».
  6. В поле«Значение переменной» введите в пути к вашему профилю.

Чтобы сделать то же самое с помощью командной строки, выполните:

setx HOME "your\path\to\home"

(Обратите внимание на суффикс x - это используется длясохранить изменения)

8 голосов
/ 10 августа 2016

Рекомендуемый метод из MSYS2 - установить db_home в /etc/nsswitch.conf в домашний каталог.

Кредит @ VarunAgw для , указывающий в правильном направлении.

Git-for-Windows включает env в db_home, который должен читать вашу переменную HOME bash, однако она ненадежна .

3 голосов
/ 03 января 2018

Проверьте which ssh, чтобы увидеть, используете ли вы /usr/bin/ssh или что-то еще, что могло быть установлено случайно.

В моем случае мой ssh ​​был заменен на Chocolatey после установки rsync. После запуска choco uninstall rsync мой SSH снова заработал.

2 голосов
/ 09 декабря 2014

У меня была похожая проблема в 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 и перезапустил оболочку, я смог подключиться:

$ 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.
0 голосов
/ 03 сентября 2018

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

0 голосов
/ 23 марта 2015

У меня была такая же проблема при использовании машины с политикой домена, которая настраивала профиль пользователя на сетевой диск (в данном случае сопоставленный 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 и т. Д. Является правильным способом указать на Z:\.ssh из оболочки.

0 голосов
/ 15 июля 2011

В Windows 7 просто поместите свой закрытый ключ (id_rsa) в папку C: \ Users \ .ssh FOLDER Если папка .ssh не существует, просто создайте ее. Загрузите GIT для Windows, перейдите в каталог Project и сделайте git clone ssh: //@/.git

...