我遇到了这个错误:
$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
! Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.
Run Code Online (Sandbox Code Playgroud)
我试图添加密钥,我在下面收到此错误:
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
Run Code Online (Sandbox Code Playgroud) 我有一个受密码保护的私钥,可以通过SSH访问服务器.
我有2台linux(ubuntu 10.04)机器,ssh-add命令的行为在两者中都不同.
在一台机器上,一旦我使用"ssh-add .ssh/identity"并输入我的密码,密钥就会被永久添加,即每次关闭计算机并再次登录时,密钥都已添加.
在另一个中,我必须在每次登录时添加密钥.
据我记忆,我对两者做了同样的事情.唯一的区别是密钥是在永久添加的密钥上创建的.
有谁知道如何永久地将它添加到其他机器?
我有一个站点作为远程Git repo从Bitbucket.com使用SSH别名拉.我可以在我的服务器上手动启动ssh-agent,但每次通过SSH登录时都必须这样做.
我手动启动ssh-agent:
eval ssh-agent $SHELL
Run Code Online (Sandbox Code Playgroud)
然后我添加代理:
ssh-add ~/.ssh/bitbucket_id
Run Code Online (Sandbox Code Playgroud)
然后它出现在我做的时候:
ssh-add -l
Run Code Online (Sandbox Code Playgroud)
我很高兴去.有没有办法自动化这个过程,所以我不必每次登录都这样做?服务器正在运行RedHat 6.2(Santiago).
当我重新连接断开连接的tmux会话时,我试图找到一种恢复SSH代理的好方法.
原因似乎是SSH代理会话发生了变化,但tmux会话中的环境变量未更新.
在附加会话本身之前,如何自动执行此操作?因为我附加的会话并不总是有bash提示符,所以我无法在其中键入内容.它必须是在创建或附加tmux会话之前运行的东西.
我正在运行的代码示例位于https://gist.github.com/ssbarnea/8646491 - 一个使用tmux创建persistem ssh连接的小ssh包装器.这很有效,但有时ssh代理停止工作,所以我不再能够使用它连接到其他主机.
我正在使用Ansible 1.5.3和Git与ssh代理转发(https://help.github.com/articles/using-ssh-agent-forwarding).我可以登录到我使用Ansible管理的服务器并测试我与git的连接是否正确配置:
ubuntu@test:~$ ssh -T git@github.com
Hi gituser! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)
我也可以使用这个帐户克隆和更新我的一个repos,这样我的git配置看起来不错,当我直接通过ssh登录我的服务器时使用ssh转发.
问题:当我使用Ansible命令模块尝试上面显示的相同测试时.它以"Permission denied"失败.Ansible输出的一部分(详细日志记录)如下所示:
failed: [xxx.xxxxx.com] => {"changed": true, "cmd": ["ssh", "-T", "git@github.com"], "delta": "0:00:00.585481", "end": "2014-06-09 14:11:37.410907", "rc": 255, "start": "2014-06-09 14:11:36.825426"}
stderr: Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
这是运行此命令的简单playbook:
- hosts: webservers
sudo: yes
remote_user: ubuntu
tasks:
- name: Test that git ssh connection is working.
command: ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)
问题:当我通过ssh手动登录并运行命令时,为什么一切正常,但是当同一个命令通过Ansible运行同一个命令时失败?
如果没有其他人打败我,我会很快发布答案.虽然我使用git来演示问题,但是任何依赖于ssh代理转发的模块都可能发生这种情况.它不是Ansible特有的,但我怀疑很多人会在这种情况下首先遇到问题.
我需要添加一个公钥,ssh-agent但我收到以下错误
无法打开与身份验证代理的连接.
我正在使用Windows 7.我发现代理正在运行.但是ssh-add没用,因为它会给出上面的错误.
我有以下问题:
$ git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我已经检查了这样做的连接:
$ ssh -vT git@github.com
Run Code Online (Sandbox Code Playgroud)
和输出看起来不错,我被正确认证.
在进一步检查时,我注意到:
$ ssh-add -l
The agent has no identities.
Run Code Online (Sandbox Code Playgroud)
我试过运行ssh-agent,但没有改变:
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-A1mhFqvqncuO/agent.766; export SSH_AUTH_SOCK;
SSH_AGENT_PID=767; export SSH_AGENT_PID;
echo Agent pid 767;
$ ssh-add -l
Could not open a connection to your authentication agent.
Run Code Online (Sandbox Code Playgroud)
我正在使用Arch Linux.任何帮助将非常感谢!提前致谢!
我安装了msysgit,使用OpenSSH.我正在连接一个gitosis回购.从git bash,我创建了一个.profile文件,每次打开git bash时运行ssh-agent(如果尚未运行),使用此脚本
SSH_ENV=$HOME/.ssh/environment
function start_agent {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
echo succeeded
chmod 600 ${SSH_ENV}
. ${SSH_ENV} > /dev/null
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV} > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cywgin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
Run Code Online (Sandbox Code Playgroud)
我也在使用git扩展,它从Windows命令提示符运行git命令,而不是git bash.所以,ssh没有看到正在运行的ssh-agent.有可能解决这个问题吗?
我正在Windows XP上设置一个git环境(msysGit 1.7.11,TortoiseGit 1.7.14),并尝试实现以下几点:
所以我创建了一个〜/ .ssh/config文件:
Host gitbox
User gitolite
Hostname XX.XX.XX.XX
Port 154
PreferredAuthentications publickey
IdentityFile "/c/Documents and Settings/kraymer/.ssh/id_rsa"
Run Code Online (Sandbox Code Playgroud)
使用git bash CLI时,一切都按预期工作.
我正在与TortoiseGit斗争.
我首先使用Plink安装TortoiseGit并使用Pageant加载ssh私钥.自动身份验证(Pageant)工作但设置失败,因为TortoiseGit无法识别格式为gitolite@gitbox/repo.git的 git repos url .
然后我决定使用openssh客户端安装TortoiseGit,因此ssh客户端可以读取配置文件,并模仿git CLI设置.
我在TortoiseGit设置中选择了msys git附带的ssh.exe作为ssh客户端.
在执行a时git pull,远程URL现在已解析,但在我期望进行ssh-agent自动身份验证时会询问密码短语密码.

是否可以使TortoiseGit与ssh-agent一起使用?
或者让TortoiseGit(Plink)知道.ssh/config?
编辑#1
在@VonC建议后,我配置了我的$ HOME变量.
当我在TortoiseGit中单击显示环境变量时,我现在有:
HOME=C:\Documents and Settings\kraymer
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\kraymer
Run Code Online (Sandbox Code Playgroud)
但git pull仍然要求我输入密码.
我已经设置了我能找到的每一个,但仍然从GitHub克隆一个repo挂起了配置过程.
我有:
的.ssh /配置
Host github.com
ForwardAgent yes
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)复制私钥
vagrant用户身份运行该剧是:
- name: Checkout from git
git: repo=git@github.com:username/repositoryname.git dest=/srv/website
Run Code Online (Sandbox Code Playgroud)