为了进行实验,我需要从位于相同域(即大学网络)下的远程PC登录到自己的PC。在这种情况下,如何使用SSH进行远程登录?
例如,我在University X的两台计算机上有一个帐户,me@machine_a.cs.x.ca
并且me@machine_b.cs.x.ca
我的个人笔记本电脑帐户是nawshad@ubuntu
。我需要提供什么额外的信息?
为了进行实验,我需要从位于相同域(即大学网络)下的远程PC登录到自己的PC。在这种情况下,如何使用SSH进行远程登录?
例如,我在University X的两台计算机上有一个帐户,me@machine_a.cs.x.ca
并且me@machine_b.cs.x.ca
我的个人笔记本电脑帐户是nawshad@ubuntu
。我需要提供什么额外的信息?
Answers:
正如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
然后,在上大学时,可以使用以下命令连接到家用PC:
ssh -p 10000 nawshad@localhost
您可以更改 10000
两个命令中的更改为不同的值。只要确保它大于1024。
注意:在此隧道machine_b.cs.x.ca
处于活动状态时,有权访问的每个人都可以尝试登录到您的系统;确保您具有正确的密码。
要关闭隧道,只需终止相应的ssh进程即可,例如
pkill -f 'ssh -f -N -R 10000:localhost:22 me@machine_b.cs.x.ca'
是。使用SSH的情况非常多。
除非您的个人计算机已经在您的大学中通过DNS注册(这不太可能),否则最好通过ipaddress进行此操作。
首先,请确保在您的个人计算机上启用了SSH。检查ps -ef | grep sshd | grep -v grep
是否安装并启动sshd。
一旦运行,尝试通过IP地址SSH到您的计算机,例如 ssh nawshad@0.0.0.0
,应该提示您输入密码。
祝好运!