我有堡垒主机。我使用用户名/密码连接到堡垒主机。我有目标服务器的私钥。流程:
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
即可!