SSH запрашивает парольную фразу для открытого ключа без установленной парольной фразы

SSH запрашивает парольную фразу для открытого ключа без установленной парольной фразы

Я уже некоторое время использую аутентификацию с открытым ключом на своих серверах, но у меня возникли проблемы с новым «клиентом», пытающимся подключиться кгитхаб. Я прочитал много тем, чтобы убедиться, что мои разрешения настроены правильно, и сгенерировал новый ключ для github. Проблема, с которой я столкнулся, заключается в том, что ssh запрашивает мою парольную фразу, хотя я ее не устанавливал. Я даже переделал ключ, чтобы быть на 100% уверенным, что я не вводил парольную фразу.

ssh -vvvдает следующий связанный вывод:

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': 

Я пытался выяснить, почему он мне это говорит.PEM_read_PrivateKeyне удалось, но я не могу найти решение.

Я не использую агента или что-то еще. Я настраиваю свой файл ~/.ssh/config примерно так:

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

Заранее спасибо.

решение1

Когда вы используете IdentityFileопцию в своем ~/.ssh/configвы указываете на приватный,не публика, ключ.

От man ssh_config:

ФайлИдентификации
Указывает файл, из которого считывается идентификатор аутентификации DSA, ECDSA или DSA пользователя. Значение по умолчанию — ~/.ssh/identity для протокола версии 1 и ~/.ssh/id_dsa, ~/.ssh/id_ecdsa и ~/.ssh/id_rsa для протокола версии 2.

Итак, ваша ~/.ssh/configзапись должна выглядеть так:

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

решение2

У нас была эта проблема, и это была ошибка копирования и вставки. Один %символ был добавлен в конец файла ключа (поэтому последняя строка была -----END RSA PRIVATE KEY-----%). Не было никакой ошибки или отладочной информации или чего-либо еще, что могло бы указать на то, что ключ был неправильной длины или плохо отформатирован, но ssh запросил парольную фразу.

решение3

В моем случае проблема была в том, что мой SSH-клиент не поддерживает ключи ED25519. Решение — создать ключ RSA и использовать его.

Эта проблема возникает сOpenSSH < 6.5(бежать ssh -V) иШпатлевка < 0,68.

Это можно увидеть в следующем выводе 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: [email protected],[email protected],[email protected],[email protected],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,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,[email protected]
debug2: kex_parse_kexinit: hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96
debug2: kex_parse_kexinit: hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],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: [email protected],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,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: none,[email protected]

Theпервый блок описывает то, что поддерживает клиент, а второй — то, что поддерживает сервер. Как вы можете видеть, в верхней половине нет упоминания «curve25519», что указывает на то, что клиент его не поддерживает.

решение4

В моей команде, когда это происходит, это не проблема с чем-то локальным. Ключ ssh пользователя и/или доступ не были правильно настроены на сервере, к которому он подключается (в нашем случае это хостинговая платформа). По какой-то причине это вызывает запрос на несуществующий ключ ssh.

Связанный контент