O SSH está procurando no lugar errado o par de chaves pública/privada no Windows

StackOverflow https://stackoverflow.com/questions/2840871

  •  27-09-2019
  •  | 
  •  

Pergunta

Estou tentando configurar o GIT em minha máquina Windows XP, mas o SSH continua criando e procurando o par de chaves pública/privada em locais sem sentido, por exemplo./.ssh/id_rsa

Existe um arquivo de configuração na instalação do GIT para Windows onde posso mudar para meu diretório inicial ou outro local definido pelo usuário?Por padrão, ele se oferece para criar novos pares de chaves em //.ssh/id_rsa, mas isso me dá o erro "não poderia criar diretório '//.ssh'." E quando conseguir encontrar um diretório em que eu possa criá -lo, o Git não vai olhar lá.

Foi útil?

Solução

Descobri como definir manualmente meu diretório pessoal no Windows XP:

  1. Clique com o botão direito em "Meu Computador"
  2. Escolha a guia "Avançado"
  3. Clique no botão "Variáveis ​​Ambientais"
  4. Na seção "Variáveis ​​do sistema", clique em "Novo"
  5. Em “Nome da variável” digite “home”.
  6. Em “Valor da variável” insira o caminho do seu perfil.

Para fazer o mesmo via prompt de comando, faça:

setx HOME "your\path\to\home"

(Observe o sufixo x - usado para persistir a mudança)

Outras dicas

Recomendado o método do msys2 é definido db_home dentro /etc/nsswitch.conf para o seu diretório doméstico.

Crédito para @Varunagw por apontando na direção certa.

Git-for-Windows inclui env dentro db_home, que deve ler o seu HOME variável bash, no entanto, é não confiável.

Verificar which ssh Para ver se você está usando /usr/bin/ssh ou outra coisa, isso pode ter instalado por acidente.

No meu caso, meu ssh foi substituído por Chocolatey Depois de instalar rsync. Depois de correr choco uninstall rsync, meu SSH estava trabalhando novamente.

Eu estava tendo um problema semelhante no Windows 7. o HOME A variável de ambiente parecia estar definido corretamente:

$ echo $HOME
C:\Users\craibuc

No entanto, tentativas de se conectar para testar o GitHub's ssh Acesso falhou:

$ 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).

Por algum motivo, ssh estava tentando acessar C/.ssh.

Quando eu defino a variável usando setx HOME /c/users/craibuc e reiniciei a concha, pude conectar:

$ 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.

Eu tive o mesmo tipo de problema ao usar uma máquina com política de domínio definindo o perfil de usuário para uma unidade de rede (neste caso mapeado para Z:).

Ao tentar fazer qualquer coisa, do PowerShell, eu recebia mensagens como essa. Contexto home A variável de caminho não ajudou.

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.

Quando clonei de Git Bash, estava bem, como /z/.ssh etc é uma maneira válida de apontar para Z:\.ssh de uma concha.

ln -s /c/Users/rofrol/.ssh /home/rofrol/ trabalhou para mim.

Isso não aconteceu:

$ 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

Provavelmente por causa disso:

SSH exigirá /home /$ user

https://github.com/git-for-windows/git/issues/736#issuecomment-215123009

No Windows 7, basta colocar sua chave privada (id_rsa) dentro de c: users .ssh pasta se a pasta .ssh não existe, basta criar. Faça o download do Git for Windows, CD no diretório do seu projeto e faça clone git ssh: ////.git

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top