ssh-ключ неожиданно передается на мой собственный компьютер

#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 — лучший вариант (и рекомендуется).

Также у вас должна быть другая конфигурация на «Сервере» и «ноутбуке».