Привет, я подключаюсь к удаленному серверу через PuTTy. На этом сервере я также работаю над некоторым кодом, который я хотел бы отправить в репозиторий git, для которого требуется аутентификация ssh-rsa.
Так что при нажатии
git push origin master
сервер запрашивает пароль. Однако я загрузил свой закрытый ключ с помощью pageant, поэтому PuTTy должен знать мой закрытый ключ и не запрашивать пароль, а просто принимать push.
Мой главный вопрос: Какова стандартная процедура, если вы хотите отправить git-push на удаленный сервер, требующий аутентификации (у пользователя есть действующий закрытый ключ) через PuTTy?
Выгрузка моего ключа на сервер, конечно, не лучший вариант.
Вам необходимо включить переадресацию агента в PuTTy. В конфигурации Putty перейдите в Connection -> SSH -> Auth и установите флажок "Allow Agent dorwarding".
РЕДАКТИРОВАТЬ: после включения переадресации агента в PuTTy и SSHing в систему, у которой есть ваш открытый ключ, вы сможете использовать ssh из этой системы во вторую систему, которая также имеет ваш открытый ключ. Для этого вам не нужно делать ничего особенного. Вам не нужно включать переадресацию агента при подключении ко второй системе (либо с -А или с ForwardAgent Да в твоем ~ / .ssh / config). Вам нужно только включить переадресацию агента, когда вы собираетесь сделать еще один прыжок из системы, в которую вы входите.
Когда вы подключаетесь со своего компьютера к серверу, вы собираетесь сделать еще один прыжок (используя git), поэтому вы должны включить переадресацию агента. Когда git подключается через ssh к другому серверу, он не собирается делать еще один прыжок, поэтому вам не нужно включать пересылку агента.
Если вы хотите понять, как работает переадресация агентов, посмотрите на отличный Иллюстрированное руководство по переадресации агента SSh.
Ключ в pageant известен PuTTy, но код git запускает ssh-клиент на удаленном сервере, а не на вашем рабочем столе, поэтому вам нужно будет либо создать пару ключей, чтобы использовать его для отправки кода, либо войти в систему с помощью пароля.