OpenSSH - 它是ssh-agent转发吗?

时间:2017-02-23 10:53:33

标签: ssh ssh-keys openssh ssh-tunnel

我正在尝试调试CPU变高的OpenSSH问题。但在此之前,我想确认是否已将SSH-Agent转发功能用于此连接。以下是已分配两个通道的子SSH服务器的核心转储。 频道[1]似乎在与ssh-agent谈话。

我需要帮助:

  

1)据我所知,ssh-agent与SSH客户端进行了对话,但似乎在这里   与SSH服务器交谈。我们可以说我们有ssh-agent转发   在角色?

     

2)我可以做些什么来重现这种情况?

     

3)你可能想要告诉我的任何其他事情   给出的数据。

(gdb) p *channels[0]
      type = 0x4,
      self = 0x0,
      remote_id = 0x0,
      istate = 0x0,
      ostate = 0x3,
      flags = 0x0,
      rfd = 0xd,
      wfd = 0xffffffff,
      efd = 0xffffffff,
      sock = 0xffffffff,
      ctl_chan = 0xffffffff,
      isatty = 0x1,
      client_tty = 0x0,
      path = 0x0,
      listening_port = 0x0,
      listening_addr = 0x0,
      host_port = 0x0,
      remote_name = 0xb0f2e4a0 "server-session",
      ctype = 0x187df64 "session",
      open_confirm = 0,
      open_confirm_ctx = 0x0,
      detach_user = 0x1855650 <session_close_by_channel>,
      detach_close = 0x1,
    =============================
(gdb) p *channels[1]
      type = 0x6,
      self = 0x1,
      remote_id = 0xffffffff,
      istate = 0x0,
      ostate = 0x0,
      flags = 0x0,
      rfd = 0x9,
      wfd = 0x9,
      efd = 0xffffffff,
      sock = 0x9,
      ctl_chan = 0xffffffff,
      path = 0xb0f2e7a0 "/tmp/ssh-00015945aa/agent.15945",
      listening_port = 0x0,
      listening_addr = 0x0,
      host_port = 0x0,
      remote_name = 0xb0f2e720 "auth socket",
      ctype = 0x187d92c "auth socket"

1 个答案:

答案 0 :(得分:1)

  

1)我知道ssh-agent与SSH客户端的对话,但是在这里它似乎与SSH服务器通信。我们可以说我们在角色中有ssh-agent转发吗?

这是另一种方式。客户与代理商交谈。如果将套接字转发到服务器,则该服务器上的其他客户端可以与您计算机上的代理进行通信。

这就是全部。服务器只有转发身份验证套接字的作用。

  

2)我可以做些什么来重现这种情况?

启动ssh-agent并使用ssh -A server启动与座席转发的连接。

  

3)根据给出的数据,您可能想要告诉我的任何其他内容。

(gdb) p *channels[0]
  type = 0x4, /* SSH_CHANNEL_OPEN -- shell or command */

(gdb) p *channels[1]
  type = 0x6, /* SSH_CHANNEL_AUTH_SOCKET -- ssh-agent forwarding */

是的,这是代理转发。