起始代理人 SSH 开始时 Git Bash 在 Windows

我用 git bash. 我必须使用


eval `ssh-agent.exe`
ssh-add /my/ssh/location/


每次我开始一个新的时候 git bash.

有没有办法安装 ssh 经纪人不断? 或者 windows 有一种好方法
驱动键 ssh?

我是一个初学者,请给我一个详细的教程,谢谢!
已邀请:

八刀丁二

赞同来自:

在 git bash 会话您可以添加脚本
~/.profile

或者
~/.bashrc

/

/, 为了使指定的自动发布会话
ssh-agent

. 如果文件不存在,只需创建它。

这是什么 GitHub 在该部分描述 "
https://help.github.com/articl ... rases
短语".

在部分 "
https://help.github.com/articl ... ndows
" 本文是一个可靠的脚本,可以检查代理是否有效。 下面只是一个代码片段,请参阅文章 GitHub 完整的解决方案。


# 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


其他资源:

"

" 有类似的场景,但我首先会提到这篇文章 GitHub 以上,这更可靠和相关。

快网

赞同来自:

P.S: 这些说明在上下文中 Bash shell, 在子系统中打开 Windows 10 Linux, 并不提到键的对称绑定 SSH, 由 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
fi


2/ 然后推出
$ source ~/.bashrc

, 重新启动配置。

上述步骤进行了
https://github.com/abergs/ubun ... aunch
3/ 创建配置文件 SSH, 如果缺少。 使用以下命令创建一个新的命令:
.ssh$ touch config


4/ 加b.
~/.ssh/config



Host 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 above="" added="" and="" be="" can="" configs="" github="" hosts="" in="" manner="" mentioned="" similar="">


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://gist.github.com/jiggne ... 5402d

谢。
</user></your_github_username></more></your_github_username>

石油百科

赞同来自:

我发现了实现这一点的更平滑,使用 Pageant 作为代理人 SSH 和 plink.

您需要配置会话 putty 对于遥控器上使用的主机名。

你还需要 plink.exe, 可以从同一站点下载 putty.

而且您需要将竞争与装载的钥匙保持联系。 我有一个标签 pageant 在加载我的密钥的启动文件夹中 SSH 进入系统时。

当你安装时 git-scm, 您可以指定它将使用 tortoise/plink, 但不是 OpenSSH.

清洁效果是您可以打开的 git-bash, 当你想要和推动时/拉扯不被调用密码短语。

同样适用于会话 putty 和 WinSCP, 什么时候 pageant 加载您的钥匙。 它使生活更容易 /和更安全/.

郭文康

赞同来自:

因为我不喜欢使用 putty 在 Windows 作为一个解决方法,我创建了一个非常简单的实用程序
https://github.com/erezak/ssh- ... eases
. 它扫描了你的文件夹 .ssh 并将所有密钥添加到代理人身上。 你只需要把它放在文件夹中 Windows startup, 所以他工作了。

假设

:

SSH代理的方式

shh-add in path /两者都是选择选项 "RED" 安装时 git

封闭键位于文件夹中 %USERPROFILE%/.ssh

封闭的钥匙名称开始 id /例如, id_rsa/

龙天

赞同来自:

我无法基于最佳答案,可能是因为我这样做了 PC 诺布和错过一些明显的东西。 但是只有 FYI 如果这将有助于某人像我一样复杂,那么 FINALLY 工作,是通过其中一个链接完成的
https://help.github.com/en/git ... ndows
/答案中的引用/. 它包括简单地插入我的旁边
.bash_profile

:


env=~/.ssh/agent.env

agent_load_env // { test -f "$env" && . "$env" >| /dev/null ; }

agent_start // {
/umask 077; ssh-agent >| "$env"/
. "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$/ssh-add -l >| /dev/null 2>&1; echo $?/

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi

unset env


我可能配置了一些奇怪的东西,但是当我把它添加到我自己的时候并没有成功
.profile

或者
.bashrc

. 我遇到的另一个真正的问题是我不是此计算机上的管理员,我无法在不接收批准的情况下更改环境变量 IT, 所以这是那些无法访问它的人的解决方案。

如果系统提示您输入密码,则会知道它是有效的 ssh 开放时 git bash. allelujah,终于努力了。

喜特乐

赞同来自:

把它放在你的 ~/.bashrc /或从它开始的文件/, 谁将在不需要的情况下停止几次推出 shell:


if [ -z "$SSH_AGENT_PID" ]; then
eval `ssh-agent -s`
fi


然后添加 "AddKeysToAgent yes" 到 ~/.ssh/config:


Host *
AddKeysToAgent yes


ssh 在您的服务器上 /或者 git pull/ 通常,您将提示您输入密码/密码短语仅占一次一次。

快网

赞同来自:

创建一个新文件 .bashrc 在你的目录〜。

在那里,每次运行时都可以放置您想要执行的命令 bash

龙天

赞同来自:

简单的双线解决方案



:

为了

sh

, bash



t .:


# ~/.profile
if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -s > ~/.ssh-agent.sh; fi
. ~/.ssh-agent.sh


为了

csh

,

tcsh

等等:


# ~/.schrc
sh -c 'if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'
eval `cat ~/.ssh-agent.tcsh`

要回复问题请先登录注册