我通常会为我的朋友提供解决方案,以解决他们 ubuntu 机器上的问题。他们中的大多数人使用 LAN 上的共享互联网连接,无法打开端口让我通过 ssh 访问他们的机器。是否可以在不打开端口的情况下通过 ssh 进入机器。例如,像 Teamviewer 这样的服务允许用户只接受来自外部的连接请求,如果机器的所有者允许,那么经过身份验证的用户就可以使用该机器。因此,同样,如果机器的所有者允许,通过某种身份验证,人们应该能够通过 ssh 访问机器,而无需打开 NAT 路由器上的端口。
答案1
你可以通过另一个名为 Empathy 的应用程序在 Empathy 的后端(心灵感应)上执行此操作ssh-联系。
我个人没有使用过它,但在我看来,这是一个让两个新手互相 SSH 的好方法。
当然,另一种方法是让他们使用 SSH给你(我假设您有足够的能力管理您的端口转发)并将端口转发回他们机器上的 ssh 服务器。
让它们运行:
ssh -R 48724:localhost:22 your_username@your_ip
显然,您可能不希望他们以您的用户身份登录,因此您可以创建另一个用户,并让其仅用于 SSHing。显然,您和其他用户之间必须有一定程度的信任。
然后运行:
ssh -p 48724 their_username@localhost
我正在使用高端口,因此不需要 root 权限。
当然,你需要openssh-server
安装它们才能连接,但这很简单sudo apt-get install openssh-server
答案2
也许这篇文章关于反向 SSH 隧道可能对你有帮助:
http://www.marksanborn.net/howto/bypass-firewall-and-nat-with-reverse-ssh-tunnel/
答案3
任何以任何方式建立的传入连接都需要打开端口。没有其他方法可以建立网络连接。如果没有可用的现有端口,那么您就不能简单地朝那个方向走。
但是你可以采用另一种方式。如果你让你的朋友打开一个到你机器的 ssh 连接,并转发 ssh 端口,那么你就可以通过他的隧道 ssh 回到他的机器。这样你就可以获得一个到他机器的 ssh 连接,并且只有在他与你的 ssh 连接(完成端口转发)仍然存在的情况下,该连接才会存在。
这种方法还可以避开防火墙。
答案4
直接使用ssh
是不可能的。不过,可能还有其他工具可以完成您要做的事情。