У меня есть репозиторий Github, к которому я хочу получить доступ с двух разных компьютеров Linux.
Для первой машины я следовал инструкциям Github для генерации ключей SSH и добавил полученный открытый ключ в Github. Этот клиент работает нормально.
Для второго клиента я скопировал /home/{user}/.ssh/id_rsa
файл с первого клиента. Я подумал, что это все, что мне нужно сделать, но когда я пытаюсь подключиться, я получаю «Отказано в доступе (publickey)».
Что мне не хватает?
Если вы получаете отказ в разрешении со стороны Github, возможно, он не получает ваш скопированный файл ключа SSH, а скорее системную настройку. Простой способ обойти это - создать отличный
~/.ssh/config
файл и поместить в него следующее:Это заставит ваш SSH-клиент использовать этот ключ только для github.com.
Надеюсь это поможет.
источник
Я знаю, что это старый, но думал, что я бы указал, что вам также нужно скопировать открытый ключ во второй клиент
(или пересчитать его с помощью ssh-keygen -y -f ~ / .ssh / id_rsa_ ..> ~ / .ssh / id_rsa ... pub)
От 1]:
Ваш ssh-клиент начинает аутентификацию, отправляя открытый ключ (подпись, упомянутая жирным шрифтом выше) на сервер. Сервер, если открытый ключ является авторизованным ключом, отправляет случайный идентификатор сеанса обратно вашему клиенту. Затем ваш клиент кодирует этот идентификатор сеанса с помощью закрытого ключа и отправляет его обратно на сервер. Сервер декодирует этот идентификатор сеанса, используя открытый ключ, и, если он совпадает с исходным идентификатором сеанса, аутентифицирует вашего клиента.
[1] [ http://www.openssh.org/txt/rfc4252.txt][1]
источник
Вероятно, потому, что вы не скопировали разрешение файла на втором клиенте.
Но закрытый ключ является закрытым , правильный способ - создать новый закрытый ключ на втором клиенте, а затем добавить его открытый ключ в Github.
источник