我想使用 ssh 访问另一台 Ubuntu 计算机的 shell 并发出一些命令。我对如何在以下场景中形成 shh 命令感兴趣。为了简单起见,我不会使用受密码保护的帐户。我主要想关注建立连接的命令形成。
两台本地 Ubuntu 计算机通过以太网电缆直接连接:
两台远程 Ubuntu 计算机,每台计算机通过电缆调制解调器连接(每台计算机都有自己的 IP):
与前面相同,但其中一个使用 NAT:
两台远程 Ubuntu 计算机,其中一台通过电缆调制解调器连接,另一台通过无线路由器连接:
两个本地盒子连接到同一个无线路由器:
答案1
对于本地 Ubuntu 机器,无论是直接连接还是使用交换机,您都可以使用 hostname.local 进行连接。因此,如果您的笔记本电脑名为 bambuntulaptop,那么您可以使用 bambuntulaptop.local 连接到它。
对于非本地连接,您必须使用 IP 地址或设置 DNS 服务器。您可以ddclient
结合使用 dyndns.org 等服务。
NAT 与 ssh 关系不大。您需要将端口 22 转发到正确的机器,或者配置 ssh 服务器以使用另一个端口并转发该端口。端口 22 是默认的 ssh 端口。
您不得允许未受保护的帐户。有成千上万台计算机正在扫描可滥用的内容。允许互联网上的任何用户在您的计算机上运行程序是一个非常糟糕的主意。Ubuntu 是安全的,但不是那安全。事实上,我认为您不允许使用不受密码保护的 ssh 帐户。如果您想这样做,则需要设置密钥。这将是另一个问题。
建立连接本身的命令再简单不过了:ssh username@host
。换句话说,重复使用上面的例子;。ssh [email protected]
答案2
ssh 在所有这些场景中都以相同的方式工作。网络配置并不重要。(好吧,您可能需要设置端口映射才能跨越 NAT)。
最简单的方法是运行
ssh {host}
不使用密码并不会使事情变得更简单,因为您必须设置密钥,这稍微复杂一些。
设置 ssh 很简单,只需安装 openssh-server 和 openssh-client,然后使用ssh {host}