SSH chiede passphrase su chiave pubblica senza set passphrase


27

Da un po 'di tempo utilizzo l'autenticazione con chiave pubblica sui miei server, ma sto riscontrando problemi su un nuovo "client" che tenta di connettersi a github . Ho letto molti thread per verificare che i miei permessi siano impostati correttamente e che abbia generato una nuova chiave per github. Il problema che sto affrontando è che ssh sta chiedendo la mia passphrase anche se non ho impostato una passphrase. Ho persino rifatto la chiave per essere sicuro al 100% di non aver inserito una passphrase.

ssh -vvv fornisce il seguente output correlato:

debug1: Offering public key: /home/me/.ssh/github.pub
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Remote: Forced command: gerve mygithubusername c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug3: sign_and_send_pubkey
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/me/.ssh/github.pub': 

Ho cercato di capire perché mi sta dicendo che PEM_read_PrivateKey non è riuscito, ma non riesco a trovare una soluzione.

Non uso un agente o altro. Configuro il mio file ~ / .ssh / config simile al seguente:

Host github
Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github.pub

Grazie in anticipo.


@jasonwryan, sposta il tuo commento in una risposta. Sono abbastanza sicuro che tu abbia ragione.
andcoz,

È un po 'banale, e sono un idiota per non averlo notato prima, ma spero che la tua risposta fornirà aiuto agli altri in futuro.
earthmeLon

Risposte:


26

Quando usi l' IdentityFileopzione nella tua ~/.ssh/configpunta alla chiave privata, non pubblica .

Da man ssh_config:

IdentityFile
Specifica un file da cui viene letta l'identità di autenticazione DSA, ECDSA o DSA dell'utente. L'impostazione predefinita è ~ / .ssh / identity per la versione 1 del protocollo e ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa e ~ / .ssh / id_rsa per la versione 2 del protocollo.

Quindi, la tua ~/.ssh/configvoce dovrebbe apparire come:

Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github

2
Sono un tale sciocco. La mia unica grazia salvifica è che questo potrebbe aiutare altri "doofus" in futuro.
earthmeLon

1
È un errore abbastanza facile da fare ...
Jasonwryan,

1
Mi ha appena aiutato, quindi apprezzo la risposta!
Topher Fangio,

1
Colorami un doofus.
Geremia,

Questo è successo per me.
unity100

2

Abbiamo riscontrato questo problema ed è stato un errore di copia e incolla. Alla %fine del file chiave era stato aggiunto un singolo simbolo (quindi l'ultima riga era -----END RSA PRIVATE KEY-----%). Non ci sono stati errori o informazioni di debug o altro per suggerire che la chiave fosse di lunghezza errata o formattata male, ma ssh ha chiesto una passphrase.


1
Una cosa simile mi è successa. Ho copiato la chiave da un altro terminale e ho copiato troppo senza accorgermene.
Guillermo,

1

Nel mio caso, il problema era che il mio client SSH non supporta le chiavi ED25519. La soluzione è creare una chiave RSA e usarla al suo posto.

Questo problema si verifica con OpenSSH <6.5 (esecuzione ssh -V) e PuTTY <0.68 .

Questo può essere visto nel seguente output di ssh -vvv:

debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96
debug2: kex_parse_kexinit: hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com

Il primo blocco descrive ciò che supporta il client e il secondo ciò che supporta il server . Come puoi vedere, non c'è menzione di 'curve25519' nella metà superiore, a indicare che il client non lo supporta.


0

Nel mio team, quando ciò accade, non è un problema con nulla a livello locale. La chiave ssh dell'utente e / o l'accesso non sono stati configurati correttamente sul server a cui si stanno connettendo (nel nostro caso una piattaforma di hosting). Per qualche motivo, questo fa scattare una richiesta per una chiave ssh inesistente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.