Когда я пытаюсь ssh -C user@my_server 'cd /home/me/my_repo'
работает. Когда я пытаюсь ssh user@my_server
, затем cd /home/me/my_repo'
и затем git pull
работает.
Но когда я пытаюсь ssh -C user@my_server 'cd /home/me/my_repo' && git pull
это перестало работать с Permission denied (publickey)
.
Мой вопрос действительно: Почему это даже работает локально? Когда я делаю ssh -C user@my_server 'cd /home/me/my_repo && git pull'
мерзавец заботится, о каком ssh ключе я раньше соединялся с my_server, не только, ssh ключ раньше соединялся с удаленным my_repo?
SSH по умолчанию будет использовать ключи в Вашей .ssh
директории. Обычно это происходит в ~/.ssh/
.
Кажется, Вы написали следующую команду, которая может быть опечаткой:
ssh -C user@my_server 'cd /home/me/my_repo' && git pull
Вышеприведенная команда выполнит ssh, а после успешного завершения (состояние выхода 0), запустите git pull
. Я просто говорю это, так как это может быть связано с вашей проблемой и, надеюсь, поможет без излишней педантичности.
Чтобы ответить на ваш вопрос, по умолчанию git будет использовать ключи в вашей папке .ssh
на машине, где выполняется команда.
Поэтому следует попробовать использовать ключи в доме user@my_server
.
Git не знает о ключах на серверах за пределами того места, где он расположен.
.