Windows 10 Linux подсистема ssh-agent не сохраняет добавленные идентификаторы

3403
Jignesh Gohel

Я начал использовать свою Windows 10 для разработки на Rails и использую подсистему Linux для нее.

Недавно я столкнулся с проблемой подключения к удаленной машине через SSH из терминала. Открытый ключ уже доступен на удаленном компьютере.

После некоторого устранения неполадок, основанных на ресурсах, которые я нашел в сети, я заметил, что агент SSH не работает, потому что ssh-add -lкоманда не предоставила ожидаемый результат.

Чтобы запустить агент SSH при запуске, я следовал инструкциям на https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch, и он работал безупречно.

Теперь, когда агент SSH запускается автоматически, я добавил в него свой файл идентификации, используя команду ssh-add path/to/identity/file..

Обратите внимание, что при создании ключей SSH я использовал произвольное имя файла id_work_gmail и id_work_gmail.pub . Таким образом, мне пришлось добавить его к агенту, используя приведенную выше команду.

После этого я могу успешно подключиться к удаленной машине через SSH.

До этого все шло гладко. Однако, как только я закрыл каждую консоль Cmder Ubuntu Bash и запустил новую, ssh-add -lсообщается, что у агента нет идентификаторов. , Итак, я снова должен был добавить свой индивидуальный файл идентификации к агенту.

Так что это то, что мне нужно делать каждый раз, когда я убиваю каждую из консолей Ubuntu Bash и запускаю новую.

Мой вопрос: как мы можем сделать ssh-add path/to/identity/file/custom-namedдействие постоянным, как это происходит на реальной машине с Ubuntu? И мне любопытно узнать, что делает его одноразовым на компьютере с Ubuntu и повторным на подсистеме Windows 10 Linux.

Благодарю.

1

1 ответ на вопрос

1
Jakuje

И мне любопытно узнать, что делает его одноразовым на компьютере с Ubuntu и повторным на подсистеме Windows 10 Linux.

Обычно он ssh-agentзапускается в вашем сеансе, поэтому он не закрывается раньше, чем вы выходите из своей учетной записи в Linux.

Если вы используете его из WLS и закроете (вероятно) последнее окно, оно выполнит разумную очистку и, вероятно, остановит вашу ssh-agent, что является разумным и безопасным для удаления конфиденциальных данных из памяти.

У меня вопрос: как мы можем сделать так, чтобы действие ssh-add path / to / identity / file / custom-named было постоянным, как это происходит на реальной машине с Ubuntu?

Только не закрывайте это окно (или оставляйте открытым на заднем плане ... это тоже может помочь). Или настройте sshвыполнение этого шага автоматически при первом использовании ключа. Просто напишите в свой~/.ssh/config

Host server-you-are-connecting.to IdentityFile path/to/identity/file/custom-named AddKeysToAgent yes 
Спасибо за подробный ответ. Ваше предложение использовать опцию «AddIdentityToAgent yes» привело к «Плохой конфигурации: addidentitytoagent». Я обратился к руководству по адресу https://linux.die.net/man/5/ssh_config, и там я не смог найти эту опцию в поддерживаемых опциях, и, следовательно, я предполагаю эту ошибку. Jignesh Gohel 7 лет назад 0
Сожалею. Я имел в виду `AddKeysToAgent` вместо. Jakuje 7 лет назад 0
та же ошибка `Неверная опция конфигурации: addkeystoagent` Jignesh Gohel 7 лет назад 0
Тогда у вас есть старый OpenSSH (он работает с 7.2 и новее), так что либо обновите, либо перейдите к первому варианту. Jakuje 7 лет назад 0
Спасибо, я постараюсь обновить его. Кстати, я также нашел соответствующий пост SO https://unix.stackexchange.com/a/269132/146438 по этому варианту. Jignesh Gohel 7 лет назад 0
Я обновил SSH на своем WLS, однако, используя ваше предложение использовать файл конфигурации и добавить к нему опцию `AddKeysToAgent`, это не помогает мне в исходной проблеме, то есть после выхода из последнего сеанса и повторного входа в систему мне необходимо повторно добавить ключ с помощью ssh-add. Я задокументировал это в гисте https://gist.github.com/jiggneshhgohel/afe96f0d57bdbf8beba305a73905402d. Jignesh Gohel 7 лет назад 0
Ваши комментарии показывают, что вы подключаетесь к github.com, а не к хостам, для которых вы определили опцию, и поэтому она не применяется. Jakuje 7 лет назад 0
Благодарю. Вы правы. Я добавил новые комментарии в суть, показывающие, что проблема решена. Jignesh Gohel 7 лет назад 0

Похожие вопросы