Odmowa dostępu SSH Github (publickey)

0

Przez ostatnie kilka dni miałem problemy z połączeniem się z kontem github.

Mam:

  • Postępowałem zgodnie z instrukcjami, aby wygenerować klucze i dodać do github
  • Postępowano zgodnie z instrukcją rozwiązywania problemów dotyczącą Odmowy uprawnień (Mój skrót MD5 lokalnie odpowiada temu z mojego konta github).
  • Próbowałem pełnego wyjścia podczas testowania połączenia ssh

Oto wynik dla ssh -vT [email protected]

OpenSSH_7.5p1, OpenSSL 1.0.2l  25 May 2017
debug1: Reading configuration data /Users/[obfuscated]/.ssh/config
debug1: /Users/[obfuscated]/.ssh/config line 13: Applying options for *
debug1: /Users/[obfuscated]/.ssh/config line 24: Applying options for github.com
debug1: Reading configuration data /usr/local/etc/ssh/ssh_config
debug1: Connecting to github.com [192.30.253.112] port 22.
debug1: fd 5 clearing O_NONBLOCK
debug1: Connection established.
debug1: identity file /Users/[obfuscated]/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/[obfuscated]/.ssh/id_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.5
debug1: Remote protocol version 2.0, remote software version libssh_0.7.0
debug1: no match: libssh_0.7.0
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: [email protected]
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: [email protected]
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

Coś interesującego, co zauważyłem, to to, że nie mam debug1: Offering RSA public key: /Users/you/.ssh/id_rsalub debug1: Trying private key: /Users/you/.ssh/id_rsaw debugowaniu. Prawie tak, jakby ta część była pomijana. Mam debug1: identity file /Users/[obfuscated]/.ssh/id_rsa type 1jednak, więc wygląda na to, że znalazł plik.

Oto moje .ssh/config:

Host localhost
  ControlMaster no

# default for all hosts
Host *
     ConnectTimeout 30
     ServerAliveInterval 30
     ControlMaster auto
     ControlPersist 60s
     HashKnownHosts yes
     GSSAPIAuthentication no
     IdentitiesOnly yes
     Compression yes

# github user
Host github.com
     HostName github.com
     User git
     PreferredAuthentications publicKey
     IdentityFile ~/.ssh/id_rsa

# the local raspberry pi dns ad block server
Host pi
     HostName [obfuscated]
     User pi
     IdentityFile ~/.ssh/pi_rsa

Uprawnienia do plików ssh

 8 -rw-r--r--   1 [obfuscated]  staff   802B Sep  9 21:45 config
 8 -rw-------   1 [obfuscated]  staff   3.2K Sep  9 21:16 id_rsa
 8 -rw-r--r--   1 [obfuscated]  staff   747B Sep  9 21:16 id_rsa.pub
 8 -rw-r--r--   1 [obfuscated]  staff   885B Sep  9 21:37 known_hosts
 8 -rw-------   1 [obfuscated]  staff   1.7K Oct 21  2016 pi_rsa
 8 -rw-r--r--   1 [obfuscated]  staff   405B Oct 21  2016 pi_rsa.pub
maffo
źródło
Jestem w stanie ssh do pi za pomocą tej konfiguracji
maffo 10.09.17

Odpowiedzi:

1

Krótka odpowiedź: miałem literówkę .ssh/config.

PreferredAuthentications publicKey

powinien był mieć małą literę k

PreferredAuthentications publickey

Jak odkryłem problem:

W większości systemów domyślne klucze prywatne (~ / .ssh / id_rsa, ~ / .ssh / id_dsa i ~ / .ssh / identity) są automatycznie dodawane do agenta uwierzytelniania SSH. Nie powinieneś uruchamiać ssh-add path / to / key, chyba że nadpisujesz nazwę pliku podczas generowania klucza.

Wiedząc o tym, usunąłem niestandardową konfigurację, github.comaby agent uwierzytelniania SSH domyślnie używał mojego klucza.

To pozwoliło mi się połączyć. Następnie dodawałem jedną linię na raz, aż okazało się, że PreferredAuthentications publicKeyto nie działa. Poszukałem go, żeby sprawdzić składnię, i okazało się, że problem to duża litera K.

maffo
źródło