Запуск SSH агента при запуске Git Bash на Windows
Я использую git bash. Я должен использовать
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
каждый раз, когда я начинаю новый Git bash.
есть ли способ установить ssh агент постоянно? Или у windows есть хороший способ
для управления ключами SSH?
Я новый парень, пожалуйста, дайте мне подробный учебник, спасибо!
6 ответов:
в сеансе Git bash вы можете добавить скрипт в
~/.profileили~/.bashrc(С~обычно устанавливается в%USERPROFILE%), для того, чтобы упомянутый сеанс запускался автоматическиssh-agent. Если файл не существует, просто создайте его.это то, что GitHub описывает в "работа с ключевыми паролями SSH".
# This is just a snippet. See the article above. if ! agent_is_running; then agent_start ssh-add elif ! agent_has_keys; then ssh-add fiДругие Ресурсы:
"получение ssh-агента для работы с git запуск из командной оболочки windows " имеет аналогичный скрипт, но я бы сослался на статью GitHub выше в первую очередь, которая является более надежной и актуальной.
P. S: эти инструкции находятся в контексте оболочки Bash, открытой в подсистеме Windows 10 Linux, и не упоминают о ключах SSH sym-linking, созданных в Windows с помощью Bash на Ubuntu в Windows
1) обновите .bashrc добавив следующее в нем
# Set up ssh-agent SSH_ENV="$HOME/.ssh/environment" function start_agent { echo "Initializing new SSH agent..." touch $SSH_ENV chmod 600 "${SSH_ENV}" /usr/bin/ssh-agent | sed 's/^echo/#echo/' >> "${SSH_ENV}" . "${SSH_ENV}" > /dev/null /usr/bin/ssh-add } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null kill -0 $SSH_AGENT_PID 2>/dev/null || { start_agent } else start_agent fi2) затем запустить
$ source ~/.bashrcдля перезагрузки конфигурации.вышеуказанные шаги были сделаны от https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch
3) создайте файл конфигурации SSH, если его нет. Используйте следующую команду для создания нового:
.ssh$ touch config4) добавить следующее
~/.ssh/configHost github.com-<YOUR_GITHUB_USERNAME> HostName github.com User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_work_gmail # path to your private key AddKeysToAgent yes Host csexperimental.abc.com IdentityFile ~/.ssh/id_work_gmail # path to your private key AddKeysToAgent yes <More hosts and github configs can be added in similar manner mentioned above>5) Добавьте свой ключ к агенту SSH с помощью команды
$ ssh-add ~/.ssh/id_work_gmailи тогда вы сможете подключиться к своей учетной записи github или удаленному хосту с помощью ssh. Например, в контексте вышеуказанного кода примеры:$ ssh github.com-<YOUR_GITHUB_USERNAME>или
$ ssh <USER>@csexperimental.abc.comэто добавление ключа к агенту 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
те же детали можно найти в gist Windows 10 Linux Subsystem SSH-agent issues
спасибо.
Я нашел самый гладкий способ добиться этого, используя Pageant в качестве агента SSH и plink.
вам нужно настроить сеанс putty для имени хоста, который используется в вашем удаленном устройстве.
Вам также понадобится плинк.exe, который можно скачать с того же сайта, что и putty.
и нужно, конкурс запущен с ключом. У меня есть ярлык для pageant в моей папке автозагрузки, которая загружает мой ключ SSH при входе в систему.
при установке git-scm вы можете указать его для использования tortoise / plink, а не OpenSSH.
чистый эффект заключается в том, что вы можете открыть git-bash всякий раз, когда вам нравится, и нажимать/тянуть без вызова для парольных фраз.
то же самое относится к сеансам putty и WinSCP, когда pageant загружает ваш ключ. Это делает жизнь намного проще (и безопаснее).
поскольку мне не нравится использовать putty в Windows в качестве обходного пути, я создал очень простую утилиту ssh-agent-wrapper. Он сканирует ваш .ssh папки и добавляет все ваши ключи к агенту. Вам просто нужно положить его в папку автозагрузки Windows, чтобы он работал.
предположения:
- ssh-агент в пути
- shh-добавить в путь (оба, выбрав опцию" красный " при установке git
- закрытые ключи находятся внутри %USERPROFILE%/.ssh папка
- имена закрытых ключей начинаются с id (например, id_rsa)
создать новый .bashrc в каталоге~.
там вы можете поместить свои команды, которые вы хотите выполнить каждый раз, когда вы начинаете bash
простое двухстрочное решение С ответ:
на ш,Баш, etc:
# ~/.profile if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -s > ~/.ssh-agent.sh; fi . ~/.ssh-agent.shна csh, tcsh, etc:
# ~/.schrc sh -c 'if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -c > ~/.ssh-agent.tcsh; fi' eval `cat ~/.ssh-agent.tcsh`
Comments