如果启用了 SSH 代理转发,如何使用套接字文件访问服务器

如果启用了 SSH 代理转发,如何使用套接字文件访问服务器

我有堡垒主机。我使用用户名/密码连接到堡垒主机。我有目标服务器的私钥。流程:

Local Machine -> Bastion -> Destination

我知道使用代理转发因为有人可能会读我的套接字文件(如果他们有堡垒主机的 root 访问权限)而我的会议开始并访问目标服务器 - 因此我应该使用代理命令!

现在我只是测试 如何访问目标服务器没有私钥如果我有访问堡垒服务器- 代理转发有多危险。

Host bast
     Hostname X.X.X.X
     ForwardAgent yes
     User bastion

问题:

  • 我已经看到堡垒服务器中以下位置有关于活动代理的信息:例如: /tmp/ssh-{名称}/agent.[PID]。我有 root 权限,但我无法读取此文件。我认为只有进程 ID 就足够了对于这个文件,是不是?

  • 如果启用了代理转发,我可以在哪里找到套接字文件?我尝试在/proc/pid/fd/位置,在那里我看到了几个套接字文件。

  • 如何使用套接字文件访问目标服务器?(如何使用套接字文件通过 ssh 访问目标服务器)

它尝试在这里找到套接字文件:

 /proc/PID/fd/

然后对每个插槽 3、4、5、9、11 尝试此命令:

ssh -p 2072  -o "ProxyCommand socat - UNIX-CLIENT:/proc/PID/fd/11" app@[DESTINATION_HOST_URL] 

结果:

2018/08/26 01:53:31 socat[13552] E connect(5, AF=1 "/proc/13510/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host

在此处输入图片描述

日志:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Executing proxy command: exec socat - UNIX-CLIENT:/proc/14003/fd/11
debug1: permanently_set_uid: 0/0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: permanently_drop_suid: 0
2018/08/26 03:10:17 socat[14073] E connect(5, AF=1 "/proc/14003/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host

答案1

我刚刚改变了SSH_AUTH_SOCK当时的值,并且ssh-add -l已经加载了一个密钥。

总结:使用代理转发很危险,因为如果您拥有堡垒主机的 root 访问权限 - 您可以窃取整个会话的密钥。您只需进行更改SSH_AUTH_SOCK即可!

相关内容