Сделал ssh-add в PowerShell, чтобы добавить мой ключ Git, получив отказано в разрешении - PullRequest
0 голосов
/ 27 марта 2019

Я немного настраиваю свою консоль разработки. В данный момент я пытаюсь немного изменить свой опыт в PowerShell и хочу использовать его в качестве основной консоли.

Это работает довольно хорошо, и теперь я занят внедрением моего ключа Git на консоль, поэтому я могу толкать, тянуть и т. Д. Через PowerShell. На данный момент я установил Git для Windows, и при установке расширений Git я убедился, что добавил команды Linux в свой путь, выбрав опцию Use Git and optional Unix tools from the Windows Command Prompt.

После этого я выполнил следующие команды.

# Check status of service
Get-Service ssh-agent

# Check the start type of the service
Get-Service ssh-agent | Select StartType

# Set the start type to manual
Get-Service -Name ssh-agent | Set-Service -StartupType Manual

# Start the service
Start-Service ssh-agent

# Adding my certificate
ssh-add $env:USERPROFILE\.ssh\myCertificate

Когда я выполняю push (или извлекаю / извлекаю), я получаю сообщение Permission denied.

PS> git push origin master
Warning: Permanently added the RSA host key for IP address '140.82.118.4' to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Я получаю это сообщение в нескольких системах. Точно такой же ключ работает в установленной консоли Git Bash, так что это не должно быть проблемой.

Я предполагаю, что загруженный ключ SSH не используется при извлечении / отправке / извлечении через PowerShell, но это только предположение.

Есть ли что-то еще, что мне нужно настроить в PowerShell, чтобы использовать загруженный SSH-ключ для работы в Git?

Обновление

Я нашел обходной путь, но это неоптимально .

Я также попробовал следующую команду ssh -vT git@github.com. Когда я запускаю эту команду, я вижу, что многое происходит, и в конце концов она пытается подключиться к GitHub через мой сертификат C:\\Users\\jan/.ssh/myCertificate. После использования этого сертификата я успешно подключился к GitHub. Так что, если этот сертификат используется, я действительно могу делать вещи.

1 Ответ

0 голосов
/ 29 марта 2019

Ну, я понял (частично).

Git по умолчанию ищет ключ с именем id_rsa, которого нет в моей системе. Я назвал свой закрытый ключ jan (или в вопросе выше myCertificate.

Несмотря на то, что я загрузил этот сертификат через ssh-add, он не используется при попытке сделать pull, push и т. Д. После переименования моего файла в id_rsa я могу выполнить эти действия (если я еще раз укажу свою фразу-пароль).

Пока это работает, я не хочу использовать этот переименованный файл. Чтобы использовать другой закрытый ключ для GitHub, я создал следующий файл ~\.ssh\config со следующим содержимым.

host github.com
 HostName github.com
 IdentityFile ~/.ssh/jan
 User git

Хотя это работает, на мой взгляд, это неоптимальное решение. Кроме того, потому что мне нужно снова указывать свою фразу-пароль при выполнении каких-либо действий с моим пультом (ами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...