SSH sta cercando nel posto sbagliato per il / privato coppia di chiavi pubblica su Windows

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

  •  27-09-2019
  •  | 
  •  

Domanda

Sto cercando di configurare GIT sulla mia macchina Windows XP, ma SSH mantiene la creazione e la ricerca del / privato coppia di chiavi pubblica in luoghi non chiacchiere, per esempio /.ssh/id_rsa

C'è un file di configurazione nella installazione GIT per Windows in cui posso passare questo al mio home directory, o in un altro luogo definito dall'utente? Per impostazione predefinita, offre per creare nuove coppie di chiavi a //.ssh/id_rsa ma che mi dà l'errore "Impossibile creare la directory '//.ssh'." E quando sono in grado di trovare una directory posso creare in, GIT non ci guardare.

È stato utile?

Soluzione

capito come impostare manualmente mia home directory in Windows XP:

  1. Fare clic destro "Risorse del computer"
  2. Scegliere la scheda "Avanzate"
  3. Fare clic sul pulsante "variabili ambientali"
  4. Nella sezione "Variabili di sistema", fare clic su "Nuovo"
  5. Nel campo "Nome variabile" entrare in "casa".
  6. Nella "Valore variabile" entrare nel percorso al tuo profilo.

Per fare lo stesso tramite prompt dei comandi do:

setx HOME "your\path\to\home"

(Si prega di notare il suffisso x - Questo è usato a persistere il cambiamento)

Altri suggerimenti

metodo consigliata da MSYS2 è quello di db_home insieme a /etc/nsswitch.conf a vostra directory home.

Credito al @VarunAgw per indicando nella giusta direzione.

Git-per-Windows include env in db_home, che dovrebbe leggere il tuo variabile HOME bash, tuttavia, è inaffidabile .

Controlla which ssh per vedere se si utilizza /usr/bin/ssh o qualcosa d'altro, che potrebbe avere installato per caso.

Nel mio caso il mio ssh è stato sostituito da Chocolatey dopo l'installazione rsync. Dopo aver eseguito choco uninstall rsync, il mio SSH è stato lavorare di nuovo.

ho avuto un problema simile su Windows 7. La variabile di ambiente HOME sembrava essere impostato correttamente:

$ echo $HOME
C:\Users\craibuc

Tuttavia, i tentativi di connettersi a accesso ssh prova di GitHub fallito:

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

Per qualche ragione, ssh stava tentando di accedere C/.ssh.

Quando imposto la variabile utilizzando setx HOME /c/users/craibuc e riavviato il guscio, sono stato in grado di connettersi:

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

Ho avuto lo stesso tipo di problema quando si utilizza una macchina con criterio di dominio l'impostazione del profilo utente su un'unità di rete (in questo caso mappato a Z:).

Quando si cerca di fare qualsiasi cosa, da Powershell che avrei avuto messaggi come questo. Impostazione variabile PATH home non ha aiutato.

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 ho clonato da bash git è andato tutto bene, come /z/.ssh etc è un modo valido per punto a Z:\.ssh da una conchiglia.

ln -s /c/Users/rofrol/.ssh /home/rofrol/ ha lavorato per me.

Questo non ha:

$ 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

Probabilmente a causa di questo:

  

SSH richiederà / home / $ USER

https://github.com/git-for -Windows / git / temi / 736 # issuecomment-215.123.009

In Windows 7 è sufficiente posizionare la vostra chiave privata (id_rsa) all'interno di C: \ Users \ .ssh Se .ssh Cartella doesnt esistere solo crearlo. Scarica GIT per Windows, cd nella directory del progetto e fare git clone ssh: //@/.git

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top