1

Я настроил OpenSSH для использования определенного ключа при входе в github ....

[mpenning@mudslide .ssh]$ pwd
/home/mpenning/.ssh
[mpenning@mudslide .ssh]$ ls -la | grep config
-rw-r--r--  1 mpenning mpenning  473 Jan 23 09:49 config
[mpenning@mudslide .ssh]$ head -n 4 config
Host gh
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa_github
[mpenning@mudslide .ssh]$

Однако, когда я выполняю ssh для github без явного вызова секретного ключа github в CLI, аутентификация завершается неудачно:

[mpenning@mudslide .ssh]$ ssh -F ./config git@github.com
Permission denied (publickey).    ^^^^^^^^ This used to work
[mpenning@mudslide .ssh]$

Единственный способ заставить его работать, это явно вызвать закрытый ключ, когда я ssh ...

[mpenning@mudslide .ssh]$ ls -la | grep github
-r--------  1 mpenning mpenning 3243 Nov 24  2016 id_rsa_github
-rw-r--r--  1 mpenning mpenning  743 Nov 24  2016 id_rsa_github.pub
[mpenning@mudslide .ssh]$ ssh -i ./id_rsa_github git@github.com
PTY allocation request failed on channel 0
Hi mpenning! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
[mpenning@mudslide .ssh]$

Мой config файл работал вчера ... Я ничего не изменил в этом. Файл config уже указывает на правильный закрытый ключ.

Внезапно, ssh, похоже, игнорирует мой конфиг github. Он даже никогда не пробует правильный закрытый ключ ...

[mpenning@mudslide .ssh]$ ssh -v git@github.com 2>&1 | grep github
debug1: Connecting to github.com [192.30.253.113] port 22.
debug1: Host 'github.com' is known and matches the RSA host key.
[mpenning@mudslide .ssh]$

Очевидно, это работает, но я не должен использовать -i ...

[mpenning@mudslide .ssh]$ ssh -i id_rsa_github -v git@github.com 2>&1 | grep github
debug1: Connecting to github.com [192.30.253.113] port 22.
debug1: identity file id_rsa_github type 1
debug1: identity file id_rsa_github-cert type -1
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Offering RSA public key: id_rsa_github
Authenticated to github.com ([192.30.253.113]:22).
Connection to github.com closed.
[mpenning@mudslide .ssh]$

Мои вопросы:

  • Что сломало это?
  • Как я могу это исправить?

1 ответ1

3

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

Используйте ssh gh не ssh .... git@github.com

Но почему? - Увидеть ниже:

[mpenning @ mudslide .ssh] $ ssh -F ./config git@github.com Отказано в доступе (publickey). ^^^^^^^^ Это раньше работало

Я не думаю, что это когда-либо было (вы проверяли, используя историю?). Я думаю, что вы использовали ssh -F ./config gh

Вы определили хост как gh в вашей конфигурации:

Host gh
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa_github

Таким образом, вы должны просто позвонить ssh gh . Вы можете передать другие аргументы, если хотите переопределить то, что находится в вашей конфигурации, например, если вы хотите использовать другого пользователя, однако, поскольку вы установили все необходимые переменные, вы должны просто использовать переменную Host и ничего более.

Вам не нужно даже передавать -F ./config чтобы быть честным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .