Эта ветка является ответом на озаглавленный вопрос: Почему ssh-agent не пересылает мой сертификат SSH? На самом деле я не смог найти никакой информации во время поиска. Мне пришлось читать C-код ssh-add решить мою проблему..
Проблема
Я получил действующий сертификат SSH:
$ ssh-keygen -L -f ~/.ssh/id_rsa-cert.pub
/home/user/.ssh/id_rsa-cert.pub:
Type: [email protected] user certificate
Public key: RSA-CERT SHA256:YgFzKPkUdZHLLi8bEKUs5/hLumNoMNG+oDJ+KD6mS3s
Signing CA: RSA SHA256:w+Cjpu/QQUunuojs9Af82ENdBUreCDXo+APao9X4dHw
Key ID: "user_key"
Serial: 0
Valid: from 2017-12-06T10:53:00 to 2017-12-07T10:54:57
Principals:
user
admin
Critical Options: (none)
Extensions:
permit-X11-forwarding
permit-agent-forwarding
permit-port-forwarding
permit-pty
permit-user-rc
Это мой список ключей ssh-agent:
$ ssh-add -l
4096 SHA256:YgFzKPkUdAGBPi8bEKUs5/hLumNoAds+oDJ+KD6mS3s user_key (RSA)
Когда я SSH на удаленном сервере, он работает. У меня нет ~/.ssh/authorized_keys
, и мой ключ, вероятно, хорошо переадресован, потому что я получил тот же предыдущий результат.
Теперь я хотел бы подключиться по SSH к другому серверу с первого (с ForwardAgent yes
):
$ ssh srv1
srv1:~$ ssh srv2 -vvv
...
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: user_key
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
...
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
srv1:~$
Что я сделал не так ?