【标题描述】SSH代理转发(agent-forwarding)功能不受AllowAgentForwarding开关控制
【环境信息】
硬件信息:
1) aarch64
2) 虚拟机
软件信息:
1) openEuler 22.03 LTS
2) kernel 5.10.0
如果有特殊组网,请提供网络拓扑图
【问题复现步骤】
参考链接:https://www.zsythink.net/archives/2422
准备3台虚拟机NODE1,NODE2,NODE3:
在NODE1上执行:
# 在NODE1生成了默认名称的密钥对id_rsa与id_rsa.pub
ssh-keygen
# 把私钥添加到ssh-agent中
ssh-add /root/.ssh/id_rsa
# ForwardAgent yes表示允许客户端进行代理转发
sed -i 's/# ForwardAgent no/ForwardAgent yes/g' /etc/ssh/ssh_config
在NODE2上执行:touch /home/test.txt
在NODE1上执行:
scp ${NODE2_USER}@${NODE2_IPV4}:/home/test.txt ${NODE3_USER}@${NODE3_IPV4}:/home,预期结果1
在NODE2上执行:修改/etc/ssh/sshd_config配置,将AllowAgentForwarding的值设置为yes
在NODE1上执行:
scp ${NODE2_USER}@${NODE2_IPV4}:/home/test.txt ${NODE3_USER}@${NODE3_IPV4}:/home,预期结果2
【预期结果1】
需要输入密码
【实际结果1】
无需输入密码
【预期结果2】
无需输入密码
【实际结果2】
无需输入密码
【附件信息】
比如系统message日志/组件日志、dump信息、图片等
Hi yanglijin, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Networking, and any of the maintainers: @Randy.Wang , @seuzw , @luzhihao , @Apricity
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@jinjin
可以将网页的副本附加在issue里吗?似乎是没法访问的
https://www.zsythink.net/archives/2422
经过定位,在openssh-8.8p1上SSH代理转发(agent-forwarding)功能仍然可以被AllowAgentForwarding开关控制,仅是scp功能不受AllowAgentForwarding开关控制
当配置AllowAgentForwarding为no时,在环境上使用:
ssh -t ${NODE2_USER}@${NODE2_IPV4} ssh ${NODE3_USER}@${NODE3_IPV4}
将需要输入NODE3的密码。
在openssh社区的提交中,将scp的默认参数修改为了scp -3,-3参数代表scp将直接连接NODE2和NODE3,此时NODE3将直接向NODE1询问认证凭据,因此不需要使用代理转发就能免密登录。
而先前版本的scp默认参数为scp -R,-R参数代表scp将先连接NODE2,再通过NODE2连接NODE3,此时NODE3将向NODE2询问认证凭据,因此需要使用代理转发才能免密登录。
社区代码修改:
https://anongit.mindrot.org/openssh.git/commit/?id=bfdd4b722f124a4fa9173d20dd64dd0fc69856be
登录 后才可以发表评论