Я использую Git Bash. Я должен использовать
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
каждый раз, когда я начинаю новый git bash.
Есть ли способ установить агент SSH навсегда? Или Windows имеет хороший способ управления ключами SSH?
Я новый парень, пожалуйста, дайте мне подробное руководство, спасибо!
/my/ssh/location/
equalivent к чему - то вроде/c/Users/Foobar/.ssh/
?Ответы:
В мерзавец Баш сессии, вы можете добавить сценарий
~/.profile
или~/.bashrc
( с~
будучи обычно устанавливается%USERPROFILE%
), для того , чтобы упомянутой сессии запуска автоматическиssh-agent
. Если файл не существует, просто создайте его.Это то, что GitHub описывает в « Работа с ключевыми словами SSH ».
Раздел « Автоматический запуск ssh-agent в Git для Windows » этой статьи содержит надежный скрипт, который проверяет, работает агент или нет. Ниже приведен фрагмент кода, смотрите статью GitHub для полного решения.
Другие источники:
« Получение ssh-agent для работы с git run из командной оболочки Windows » имеет похожий сценарий, но я бы прежде всего обратился к статье GitHub, которая является более надежной и актуальной.
источник
PS: Эти инструкции относятся к оболочке Bash, открытой в Windows 10 Linux Subsystem и не упоминают о символьных ссылках SSH-ключей, сгенерированных в Windows с помощью Bash в Ubuntu в Windows
1) Обновите ваш .bashrc , добавив в него следующее
2) Затем запустите,
$ source ~/.bashrc
чтобы перезагрузить ваш конфиг.Вышеуказанные шаги были сделаны из https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch
3) Создайте файл конфигурации SSH, если его нет. Используйте следующую команду для создания новой:
.ssh$ touch config
4) Добавить следующее к
~/.ssh/config
5) Добавьте ключ к агенту SSH, используя команду,
$ ssh-add ~/.ssh/id_work_gmail
и тогда вы сможете подключиться к вашей учетной записи github или удаленному хосту, используя ssh. Например, в контексте приведенных выше примеров кода:или
Это добавление ключа к агенту SSH должно выполняться только один раз.
6) Теперь выйдите из сеанса Bash в подсистеме Windows Linux, то есть снова выйдите из всех консолей Bash и снова запустите новую консоль и попробуйте подключиться к SSH к вашему хосту Github или другому хосту, как настроено в конфигурационном файле SSH, и он должен работать без каких-либо дополнительных шаги.
Примечание:
Если вы сталкиваетесь,
Bad owner or permissions on ~/.ssh/config
обновите разрешения с помощью командыchmod 600 ~/.ssh/config
. Ссылка: https://serverfault.com/a/253314/98910Для выполнения описанных выше шагов вам понадобится OpenSSH v 7.2 и новее . Если у вас есть старый, вы можете обновить его, выполнив шаги, указанные на https://stackoverflow.com/a/41555393/936494
Те же подробности можно найти в сущности проблемы SSH-агента Windows 10 Linux Subsystem
Спасибо.
источник
>> "${SSH_ENV}"
? Разве это не должно быть просто> "${SSH_ENV}"
? Ваш, конечно, работает, но он просто заканчивается более длинным и длинным~/.ssh/environment
файлом, потому что (как я сейчас думаю !?) нет причин ... Хотя, большое, большое спасибо! Я считаю, что этот скрипт должен быть включен в стандартную.bashrc
версию WSL Ubuntu, это очень полезно!Я нашел самый плавный способ добиться этого, используя Pageant в качестве агента SSH и plink.
Вам необходимо настроить сеанс замазки для имени хоста, используемого в вашем пульте.
Вам также понадобится plink.exe, который можно скачать с того же сайта, что и putty.
И вам нужно запустить Pageant с загруженным ключом. В моей папке автозагрузки есть ярлык для просмотра страницы, который загружает мой ключ SSH при входе в систему.
Когда вы устанавливаете git-scm, вы можете указать его для использования tortoise / plink, а не OpenSSH.
Чистый эффект в том, что вы можете открывать git-bash в любое время и нажимать / тянуть, не сталкиваясь с парольными фразами.
То же самое относится и к сеансам putty и WinSCP, когда в pageant загружен ваш ключ. Это делает жизнь намного проще (и безопаснее).
источник
Поскольку я не люблю использовать замазку в Windows в качестве обходного пути, я создал очень простую утилиту ssh-agent-wrapper . Он сканирует ваши папки .ssh и добавляет все ваши ключи к агенту. Вам просто нужно поместить его в папку автозагрузки Windows, чтобы он работал.
Предположения :
источник
Я не мог заставить это работать, основываясь на лучшем ответе, вероятно, потому что я - такой noob PC и пропускаю что-то очевидное. Но только к вашему сведению, если это поможет кому-то так же, как мне, то, что НАКОНЕЦ работало, было по одной из ссылок здесь (ссылка в ответах). Это включало просто вставку следующего к моему
.bash_profile
:Возможно, что-то настроено странно, но не удалось, когда я добавил его в свой
.profile
или.bashrc
. Другая реальная проблема, с которой я столкнулся, заключается в том, что я не являюсь администратором на этом компьютере и не могу изменять переменные среды, не получив одобрения ИТ, поэтому это решение для тех, кто не может получить к нему доступ.Вы знаете, что это работает, если у вас запросят пароль ssh при открытии git bash. Аллилуйя, что-то наконец-то сработало.
источник
Поместите это в ваш ~ / .bashrc (или в файл с исходным кодом), что предотвратит ненужный запуск несколько раз для каждой оболочки:
А затем добавьте «AddKeysToAgent yes» в ~ / .ssh / config:
ssh на ваш сервер (или git pull) в обычном режиме, и вам будет предложено ввести пароль / пароль только один раз за сеанс.
источник
Создайте новый файл .bashrc в вашей директории ~.
Там вы можете поместить свои команды, которые вы хотите выполнять при каждом запуске bash
источник
.bashrc
файл (например,echo test
и проверьте, загружен ли он при выполнении Git Bash..bashrc
в свою папку пользователя, напримерC:\Users\john
.Простое двухстрочное решение из этого ответа :
Для sh , bash и т.д .:
Для csh , tcsh и т.д .:
источник