如何从另一台电脑访问我大学宿舍里的电脑的终端?

如何从另一台电脑访问我大学宿舍里的电脑的终端?

我曾经ssh访问过远程计算机/服务器,他们为我提供了一个username、一个密码和一个 IP 地址(例如xxx:xxx:xx.xx)。我需要做的是:

ssh [email protected]

然后它会要求输入密码。输入密码后,它会给我终端控制权,我可以从这个远程服务器的终端控制一切。

我想要完全一样的东西,但要访问我自己的电脑。我全天候运行我的 ubuntu 电脑。我想主持人我的电脑,以便我可以从另一台电脑/移动终端访问它。如何将我的电脑设置为服务器?

我看到了几个关于的答案openssh-server。我安装了它,然后执行以下操作:

sudo systemctl enable ssh
sudo ufw allow ssh
sudo systemctl start ssh

但我不明白如何访问我的电脑。我的电脑的 IP 地址是什么?我正在寻找分步指南或一些参考资料,了解如何启用此功能以及如何远程访问我的计算机终端。

以下是我的电脑详细信息:

我正在使用 Ubuntu Desktop 20.04.6 LTS(Focal Fossa)。

ubuntu-20.04.6-desktop-amd64.iso从下载发布

我不确定我的 IP 地址。当我通过 检查时https://whatismyipaddress.com/,它显示我有一个Likely static IP。但是,当我连接到不同的路由器时,我的 IP 地址发生了变化。所以,它可能是动态的。

添加:我已按照这个答案由 Aleff 提供。但是,由于我使用的路由器是公共路由器(大学宿舍路由器),我无法访问其配置页面。因此,我无法启用端口转发。我正在寻找此步骤中的解决方法。

答案1

如果你没有访问路由器进行端口转发的权限,但你可以通过 ssh 访问某个服务器,外部您的本地网络并且可以从互联网访问,您可以使用该服务器作为“中间人”来访问您的电脑。

首先,你需要建立一个 ssh隧道在您的 PC 和该服务器之间,通过在您的 PC 上使用以下命令:

ssh -R portnumber:localhost:22 [email protected]

在哪里用户名您的用户名是外部服务器端口号是该服务器上您选择的任何未使用的端口号(例如,9922)。“localhost”的字面意思是localhost

您应该让此连接永久保持活动状态。您必须以某种方式确保此连接始终保持活动状态并且不会断开连接(例如,您可以编写一些脚本定期检查连接是否处于活动状态,如果未处于活动状态则重新连接)。

接下来,如果ssh 服务器外部服务器配置为接受到隧道端口的外部连接(这需要GatewayPorts yes/etc/ssh/sshd_config外部服务器;默认值为no),您可以通过连接到端口号外部服务器,如下所示:

ssh -p portnumber [email protected]

在哪里本地用户你的用户名是你的电脑不是外部服务器!

但是,如果外部服务器不是配置为接受到隧道端口的外部连接(这是更常见的,因为这是默认设置),您需要分两步建立连接。

首先,像平常一样登录外部服务器:

ssh [email protected]

登录后外部服务器,输入以下命令(在服务器上):

ssh -p portnumber localuser@localhost

在哪里本地用户你的用户名是你的电脑,而“localhost”的字面意思是localhost。现在您应该已经登录到您的电脑了。

答案2

要从另一台计算机访问你的 Ubuntu PC 终端,你可以设置安全外壳 (SSH)服务器。SSH 允许您远程连接到您的计算机并通过安全连接访问终端。您可以按照以下方法进行设置:

  1. 安装 SSH 服务器:在 Ubuntu PC 上,打开终端并运行以下命令来安装OpenSSH 服务器
sudo apt update
sudo apt install openssh-server
  1. 配置 SSH:安装完成后,您可以根据需要修改 SSH 服务器配置。配置文件位于/etc/ssh/sshd_config。您可以使用 nano 等文本编辑器进行更改:
sudo nano /etc/ssh/sshd_config

默认情况下,SSH 应该可以正常工作,但您可能需要检查是否启用了密码验证(PasswordAuthentication yes)或者是否允许 root 登录(PermitRootLogin)。

  1. 启用 SSH 服务:要启动并启用 SSH 服务,请运行以下命令:
sudo systemctl enable ssh
sudo systemctl start ssh
  1. 查找 Ubuntu PC 的 IP 地址:要远程连接到您的 PC,您需要知道其 IP 地址。运行以下命令查找 IP 地址:
ip addr show | grep inet

查找以“inet”开头且包含您的 IP 地址的行(例如inet 192.168.0.100)。记下此 IP 地址。

  1. 在路由器上配置端口转发:访问路由器的配置页面。这通常是通过在 Web 浏览器中输入路由器的 IP 地址(例如 192.168.0.1)并使用路由器的凭据登录来完成的。具体步骤可能因路由器型号而异,但您要查找的是“转发端口“ 或者 ”虚拟服务器“ 部分。

    • 使用以下信息创建新的端口转发规则:
      • 外部(WAN)端口:选择您需要的端口号(例如,2222)。
      • 内部(LAN)IP 地址:输入您的 Ubuntu PC 的内部 IP 地址(例如192.168.0.100)。
      • 内部 (LAN) 端口:在这里,您必须选择是保留默认值 22 还是更改默认端口。出于安全原因,最好按照本答案末尾所述更改默认端口。
    • 保存配置并退出路由器设置。
  2. 查找你的公共 IP 地址:要从另一台计算机连接到您的 Ubuntu PC,您需要知道您的公共 IP 地址。在 Ubuntu PC 或任何其他设备上打开 Web 浏览器并搜索“我的 IP 地址是什么“记下显示的公网IP地址。

  3. 从另一台计算机连接:(显然你已经清楚这一点,但为了完整起见,我把它写下来)在远程计算机或移动设备上,打开终端或 SSH 客户端并运行以下命令:

ssh username@public-ip-address -p port-number

将其替换username为您的 Ubuntu PC 的用户名、public-ip-address路由器的公共 IP 地址以及port-number您在步骤 5 中选择的端口号。

  1. 验证并连接:出现提示时,输入您的 Ubuntu PC 密码进行身份验证。身份验证完成后,您将可以从远程计算机访问您的 Ubuntu PC 终端。

笔记:确保您的 Ubuntu PC 具有静态 IP 地址或 DHCP 保留,以确保 IP 地址不会随时间而改变。这将帮助您保持一致的连接。

笔记将 SSH 服务器暴露给互联网会带来一些安全风险。请确保您已强密码,考虑使用基于密钥的身份验证更改默认 SSH 端口(22)到不同的端口,并监控你的服务器日志任何可疑活动。

答案3

我已经将接受的答案中描述的解决方案(具有自动重新连接和严格限制在中间服务器上的 SSH 登录)包装在我已经使用了一段时间的小型打包解决方案中。

sshrew 复制代码作为客户端上的服务运行,它使用证书认证连接到“中间人 SSH 服务器”上的受限 shell。

在服务器上,传入的连接 (a) 打开一个返回客户端(或客户端网络中的任何机器)的反向隧道,以及 (b) 输入 bash 脚本(“入口点”),该脚本进入睡眠状态并定期唤醒以检查客户端是否仍然可以通过隧道访问。

当隧道关闭时,入口点脚本终止,从而终止客户端的 SSH 连接。客户端最终会检测到这种情况(请注意,SSH 连接的中断不会立即显露出来),然后客户端将尝试重新连接到服务器

相关内容