如何从远程服务器登录到我自己的 PC?

Naw*_*que 9 ssh ssh-tunneling

出于实验目的,我需要从同一域下的远程 PC 登录到我自己的 PC,即:大学网络。在这种情况下如何使用 SSH 进行远程登录?

例如,我在 X 大学的两台机器上有帐户,分别是me@machine_a.cs.x.came@machine_b.cs.x.ca,我的个人笔记本电脑帐户是nawshad@ubuntu。我需要提供哪些额外信息?

dan*_*ann 11

正如 daveh 的回答所指出的那样,这可能就像发布ssh nawshad@ipaddress.

但是,您的 PC 可能无法直接从 Internet 访问,即它位于某种路由器的后面。

一种选择是告诉路由器让到您的 PC 的流量通过。您如何执行此操作取决于路由器。此选项仅适用于您对路由器具有管理访问权限且不涉及其他路由器的情况。

另一种选择是创建反向 SSH 隧道,即从您的 PC 登录到一台(或两台)大学计算机,同时创建从大学计算机到 PC SSH 端口的隧道。您在大学时保持该连接,这样您就可以使用由 SSH 会话创建的隧道重新登录到您的 PC。

http://www.vdomck.org/2005/11/reversing-ssh-connection.html描述了这个过程;抱歉链接,但我不想将所有信息从那里复制到这里。

原则上,您从 PC 发出的命令是(假设您想从 me@machine_b.cs.x.ca 连接)

ssh -f -N -R 10000:localhost:22 me@machine_b.cs.x.ca
Run Code Online (Sandbox Code Playgroud)

然后,在大学时,您可以使用以下命令连接到您的家用 PC:

ssh -p 10000 nawshad@localhost
Run Code Online (Sandbox Code Playgroud)

您可以将10000两个命令中的 更改为不同的值;只要确保它大于 1024。

注意:当这个隧道machine_b.cs.x.ca处于活动状态时,每个有权访问的人都可以尝试登录您的系统;确保你有好的密码。

要关闭隧道,只需杀死相应的 ssh 进程,例如

pkill -f 'ssh -f -N -R 10000:localhost:22 me@machine_b.cs.x.ca'
Run Code Online (Sandbox Code Playgroud)