我一直在寻找一个解决scheme,在过去的2小时以下的问题,没有运气。 发展: 我正在使用公钥authentication来连接到我的服务器。 我使用ssh-agent转发为了不必pipe理公共/私有密钥。 假设我有服务器A, B and C 如果我从LOCAL —> A —> B连接,这个工作得很好。 它也工作得很好,如果我做LOCAL —> A —> C 现在,如果我尝试LOCAL —> A —> B —> C ,SSH不能从B to C连接B to C 值得注意的是:我连接到服务器A作为stream动性,而我连接到服务器B作为根。 连接到服务器B作为stream动性解决了这个问题,但这不是我的select。 根据用户的build议,我每次使用ssh -A来确保代理转发已启用。 我发现了一个类似的问题,在这里没有答案: 是否有可能链接ssh代理转发通过多跳? 根据@Zoredache这里: https ://serverfault.com/a/561576/45671我只需要调整我的客户端configuration在每个中间系统。 我相信我做了。
我正在尝试创build一个shell脚本,其中包括启动ssh-agent并将私钥添加到代理。 例: #!/bin/bash # … ssh-agent $SHELL ssh-add /path/to/key # … 这个问题是ssh-agent显然开始了$ SHELL的另一个实例(在我的情况下是bash),并且从脚本的angular度来看,它执行了所有的事情,并且ssh-add从来没有运行过。 我怎样才能从我的shell脚本运行ssh-agent并保持它在命令列表上移动?
比方说,我有一个关键Github,以及其他键。 我在我的家庭计算机上添加了很多密钥给我的ssh代理( ssh-add -L返回很多行)。在我的.ssh/config我已经设置了哪个密钥与哪个主机一起使用,例如 ssh -T -vvv [email protected] 2>&1 | grep Offering 给 debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github 如预期的那样,只提供一个密钥。 但是,然后使用ForwardAgent yes对某个主机B进行ssh,然后重复相同的命令 debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.linode2 debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.helium debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github 这意味着它尝试我所有的密钥。 这是有问题的,因为在服务器返回Too many authentication failures之前,只能使用有限数量的密钥。 所以我试着在主机B上编辑.ssh/config来包含 Host github.com IdentityFile /Users/doxna/.ssh/id_rsa.github IdentitiesOnly yes 但是我没有得到重要的产品,而是 debug2: key: […]
每当Windows服务器启动时(在用户以交互方式login之前),我需要向Putty Agent(pagent.exe)添加一个私有SSH密钥。 关键是要被服务使用。 如果是需要使用密钥的普通用户,则只需在Startup文件夹中放置一个快捷方式,但是,这不适用于服务器,因为没有用户login。 我需要Windows Server 2008以及Windows Server 2003。 我认为这一定是一个非常常见的用例,因为使用SSH和SFTP的公钥authentication变得更为普遍。
我现在使用的是msysgit,因为GUI工具使用了Putty的Pageant和PLink工具,但是我使用Cygwin作为一般的SSHterminal。 我一直在Cygwin上使用ssh-agent,但这意味着我必须为两个SSH密钥pipe理器input我的SSH密钥密码。 是否可以configuration我所有的Unix端口工具(msys,git,cygwin,Ruby Net:SSH等)来使用PLink / Pageant而不是ssh-agent? PLink似乎是这样做的,但我找不到文档。
如果我有一个服务器A,我可以使用我的ssh密钥login到服务器,并且我可以“sudo su – otheruser”,所以我丢失了密钥转发,因为envvariables被删除,并且套接字只能由我原来的用户读取。 有没有一种方法可以通过“sudo su – otheruser”桥接密钥转发,所以我可以使用转发密钥(我的情况下为git clone和rsync)在服务器B上执行一些操作? 我能想到的唯一方法是将我的密钥添加到其他用户的authorized_keys和“ssh otheruser @ localhost”,但是对于我可能拥有的每个用户和服务器组合,这样做很麻烦。 简而言之: $ sudo -HE ssh user@host (success) $ sudo -HE -u otheruser ssh user@host Permission denied (publickey).