#git #ssh #ssh-agent
#git #ssh #ssh-agent
Вопрос:
У меня есть компьютер для разработки «Ноутбук», и здесь у меня есть SSH-ключ для моей учетной записи git в Bitbucket. У меня также есть рабочий сервер «Server», где я не хочу использовать этот ключ, вместо этого я хочу использовать другой ключ с разрешениями только для чтения в Bitbucket.
Мой ожидаемый рабочий процесс состоял в том, чтобы использовать SSH для входа на сервер, и там я бы побежал git pull
. Это работает просто отлично. Однако, когда я выхожу из системы и пытаюсь выполнить git push
с ноутбука, нажатие отклоняется, потому что у меня нет прав на запись. Используя GIT_SSH_COMMAND="ssh -vv" git push
и ssh-add -l
, я обнаружил, что если я добавляю SSH-ключ только для чтения на сервере, он также появляется на моем ноутбуке, поэтому, когда я нажимаю, используется ключ только для чтения. Когда я удаляю его с ноутбука, используя ssh-add -D
его, он также больше не доступен на сервере. Похоже, что когда я регистрируюсь на сервере, агент SSH всегда использует конфигурацию моего ноутбука.
Как я могу это предотвратить? Когда я регистрируюсь на сервере, я хочу использовать ssh-ключ сервера, доступный только для чтения, когда я на ноутбуке, я хочу использовать ssh-ключ моего личного.
Я попытался изменить /etc/ssh/ssh_config
, чтобы включить
Host bitbucket.org
ForwardAgent no
но мне это не помогает.
Я пытался искать другие вопросы, но у всех есть противоположная проблема, и вместо этого они пытаются синхронизировать ключи, поэтому я не смог найти ответ.
Спасибо за любые советы.
Комментарии:
1. Вы пробовали
IdentityFile /path/to/key
? Кстати, вам НЕ следует обновлять/etc/ssh/ssh_config
,~/.ssh/config
это лучший вариант. И у вас должна быть другая конфигурация на сервере или ноутбуке.2. @Calumah Спасибо,
IdentityFile
это правильный вариант для изменения! Я изначально не обновлял~/.ssh/config
, потому что он еще не существовал, поэтому я его создал. Спасибо вам и за это. Вы должны изменить комментарий на ответ!3. Итак, я больше изучил это, и по какой-то причине меня научили подключаться к серверу
ssh -A ...
, поэтому ключ был передан на мой ноутбук при добавлении в ssh agent. Без использования-A
опции и добавления ключа только тогда также решается проблема. 🤦4. Вот вам и ответ 😉 Спасибо вам
Ответ №1:
Вы пробовали IdentityFile /path/to/key
?
Кстати, вам НЕ следует обновлять /etc/ssh/ssh_config
, создание a ~/.ssh/config
— лучший вариант (и рекомендуется).
Также у вас должна быть другая конфигурация на «Сервере» и «ноутбуке».