无法打开与身份验证代理的连接(审核)

时间:2015-12-19 00:43:12

标签: linux ssh centos putty

首先,我知道此问题已在堆栈溢出hereherehere以及in some other places中多次发布。

但是,我决定打开一个新的主题(冒着被投票的风险),因为我不认为我的机器存在实际问题,但是有PUTTY。

环境描述

简而言之,我有一台运行虚拟机(VMWare)的Windows机器。

  1. 主机:Windows 7(64位)
  2. 来宾机:具有图形窗口环境的CentOS 6。
  3. 网络连接完美设置,因此防火墙没有问题。这两台机器都可以互相固定,我可以从两个网上冲浪。
  4. 在客人机器上禁用了Selinux
  5. Putty配置正确(或者我认为)。备份该声明的原因是我可以使用我为此创建的加密SSH密钥从主机SSH连接来宾计算机。但是,我认为仍然缺少一些配置。继续阅读。
  6. 我在来宾计算机上配置了GITOLITE,它已启动并运行。
  7. 虽然与此问题无关,但我在来宾计算机上配置了Samba共享,我是否有我的所有回购。共享可以从主机访问,我可以编辑文件,没有任何问题。
  8. VM Player 7
  9. 最近重新启动了来宾计算机,并且未发出其他命令。
  10. PUTTY安装在主机上
  11. 案例场景#1(可行)

    此案例场景描述了我期望实现的行为。基本上,此过程正在 VM本身内完成。这意味着,通过VM Player 操作机器。

    1. 以root身份打开终端
    2. service sshd status会产生 openssh-daemon (pid 1557) is running...
    3. ssh-add -l会产生 2048 1b:31 [...] b8:de Git Admin (RSA) 2048 d2:58 [...] f6:2b pando (RSA) (2048) be:9b [...] dc:e9 web (RSA) 。这些是我在虚拟机中配置的三个用户。 SSH密钥已自动加载并添加到SSH服务的标识列表中。
    4. 从CLI以root身份注销。我现在是标准用户(pando用户)。
    5. 在其中一个repos中编辑一个文件
    6. git commit -a -m "My message"成功,因为Git Admin密钥位于SSH代理的身份列表中
    7. git push origin master也是成功的,出于同样的原因
    8. 案例场景#2(它不起作用)

      此案例场景描述了相同的过程,但是来自Putty终端。我向Pageant添加了与案例场景#1,第3点中描述的相同的SSH密钥。看起来Putty一切正常,因为我可以成功SSH我的虚拟机

      1. 打开Putty Terminal。我以用户pando(这是Case Scenario 1中提到的身份之一)登录。
      2. su
      3. service sshd status会产生 openssh-daemon (pid 1557) is running... (请注意,它与第一种情况下第2点的结果相同)
      4. ssh-add -l会产生 Could not open a connection to your authentication agent
      5. 由于上一步失败,我在本文开头的超链接主题中描述了所有问题。
      6. 现在,我熟悉eval $(ssh-agent)的过程,然后手动在SSH文件夹中添加SSH密钥。事实上,每次我SSH虚拟机时都这样做。但我其实不喜欢这样做。

        我也熟悉在.bashsrc文件中添加一些脚本,但是上次我这样做时,我得到了Puppet的附带效果。

        所以基本的问题是:即使我使用相同的SSH密钥,两种情况下的区别是什么? Pageant是不转发密钥吗?如果是这样,为什么我能够SSH我的机器?为什么我应该在第二种情况下更改.bashrc用户的pando文件,如果在第一种情况下没有它我可以完全相同的事情?我想我错过了一条基本的信息

        希望这是有道理的。

        的问候。

1 个答案:

答案 0 :(得分:1)

openssh-daemon authentication-daemon 不是一回事。您感兴趣的是身份验证ssh-agent,这是您的个人密钥存储区。 openssh-deamon 又名sshd是服务器,它在系统范围内运行并接受与您计算机的连接。

桌面环境通常默认启动身份验证代理(ssh-agentseahorsegnome-keyring),因此ssh-add适合您。但是连接存储在环境变量中,这些变量在从用户到超级用户(su)的过渡中被删除。

您可以使用-m切换到su来允许连接持久性。这将保留环境变量,从而保存与身份验证代理的连接。

  

即使我使用相同的SSH密钥,两种情况之间的区别是什么?

除了su部分删除环境变量并且在更改用户时不执行.bashrc和类似脚本时,应该没有区别(您可以强制su的行为方式与使用su -l登录shell,但不是问题)。问题是与身份验证代理的连接保留为环境变量和UNIX域套接字,在su期间丢失。您可以使用su -m它应该适合您。

  

Pageant不转发密钥吗?

PuTTY需要允许转发: enter image description here