![如何允许 ssh 通过机器进行隧道/转发,而无需授予中间机器访问权限](https://linux22.com/image/736358/%E5%A6%82%E4%BD%95%E5%85%81%E8%AE%B8%20ssh%20%E9%80%9A%E8%BF%87%E6%9C%BA%E5%99%A8%E8%BF%9B%E8%A1%8C%E9%9A%A7%E9%81%93%2F%E8%BD%AC%E5%8F%91%EF%BC%8C%E8%80%8C%E6%97%A0%E9%9C%80%E6%8E%88%E4%BA%88%E4%B8%AD%E9%97%B4%E6%9C%BA%E5%99%A8%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90.png)
假设我有一台机器,上面有几个虚拟机,我该如何将 ssh 连接转发到这些虚拟机而不授予主机访问权限?只向外界公开一个端口是否可以做到这一点?这也适用于一台机器,后面还有一些其他机器。
我想根据所使用的密钥进行重定向,或者根据客户端上 ssh 命令中设置的标志进行重定向。
答案1
您可以创建用户 tunel 并将其主 shell 设置为 /bin/true。
这将允许ssh -N -L local_port:ip_of_vm:port_of_vm tunel@your_ip
工作,但如果用户尝试获取 shell,他将只获得 shell 的优雅结束。
你应该考虑的第二件事是,你是否可以将虚拟机暴露到互联网上,以便第二方拥有完全访问权限