Почему ssh игнорирует мой ~ / .ssh / config? Невозможно зафиксировать в github

591
Mike Pennington

Я настроил 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
Помимо ответа, вы всегда используете `ssh-agent` /` ssh-add`. Daniel B 6 лет назад 0
@DanielB, какое преимущество ssh-agent / ssh-add имеет по сравнению с моим статус-кво Mike Pennington 6 лет назад 0
Это просто другой способ иметь дело с аутентификацией открытого ключа SSH. Он предлагает некоторые незначительные преимущества, такие как необходимость вводить ключевую фразу ключа только один раз (при вызове `ssh-add`). Daniel B 6 лет назад 0

1 ответ на вопрос

3
djsmiley2k

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

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чтобы быть честным.

Я не могу понять, почему это работало месяцами и сегодня не получалось ... но изменение имени моей конфигурации с `` gh`` на `` github.com`` сработало Mike Pennington 6 лет назад 1
Рад, что вы получили это отсортировано :) djsmiley2k 6 лет назад 0

Похожие вопросы