问题描述
我有两台电脑,一台是我用的,一台是给孩子们的。我希望能够在他们的计算机上控制它(比如关闭它等),但我很好奇这是做到这一点的最好方法。我们都在同一个房子里,共享相同的互联网连接。
最好的方法是什么?从研究中,我读到了在远程计算机上安装openssh-server但是在尝试连接时难以使用主机名。通常对于VPS’s it’s外部IP但由于我们都共享一个wifi连接,它是硬件IP吗?我们应该通过局域网直接连接还是通过互联网连接?
最佳解决方案
跑:
avahi-browse -tl _workstation._tcp
要获取本地网络中的Ubuntu工作站列表,您可以通过运行以下命令连接到它们:
ssh <username>@<computer-name>.local
次佳解决方案
您可以使用IP地址ssh到孩子的计算机。如果要使用计算机名称,请编辑/etc /hosts文件以包含计算机名称。
192.168.1.104 dad
192.168.1.105 kids
第三种解决方案
我使用ssh自动分析的文件〜/.ssh /config,这是一个例子:
Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p
KeepAlive yes
ServerAliveInterval 60
ServerAliveCountMax 10
ControlPersist 1h
Host server1
User user1
HostName server1-web.example.org
Host server2
User user2
HostName server2-db.example.org
Compression yes
IdentityFile /home/user/.ssh/different_key.pem
请注意,您可以在此文件中使用任何(clientside)变量,并将其设置为全局或每个服务器。
第四种方案
在执行ssh之前,请检查ssh客户端和服务器。如果您没有安装这些服务
sudo apt-get install openssh-client
sudo apt-get install openssh-server
如果你已经做了
ssh username@ipaddress
Enter connecting device login password.
示例:
ssh prem@192.168.1.145
prem@192.168.1.145's password:********
如果您收到任何错误消息:“权限被拒绝,请再试一次。”
请检查两次用户名和IP。
第五种方案
-
如果LAN使用静态IP,您可以直接ssh到本地IP,例如
ssh someuser@192.168.1.2
-
您可以在两台计算机中编辑主机文件,如Ed Manet在其answer中所述。这样你就可以使用计算机的主机名ssh,即
ssh someuser@some_hostname
-
您可以设置本地DNS服务器来解析LAN的主机。通过这种方式,您可以使用计算机的主机名进行ssh,如同在选项2中一样,但通过将DNS服务器指向Ubuntu的网络设置,可以避免编辑每个主机文件。
DNSMasq是非常好的DNS服务器,易于设置。另一种选择是BIND。
第六种方案
使用本地LAN IP地址。备用方法要求某些端口对Internet开放,以允许您登录。
此外,您需要端口映射(在路由器上)。使用’public’ IP地址(在路由器上)作为目标将无法连接到您的两台PC。
最简单的方法是永久分配路由器上的每个IP地址(对于您的2台计算机)。然后只需连接到该IP地址即可。
如果您希望变得聪明(稍后),请设置服务器并开始使用本地DNS服务为每个设备分配有意义的名称。只有2台电脑不值得麻烦。
第七种方案
如果您共享相同的互联网连接,则很可能是在同一个wifi路由器后面。所以你直接连接到你的孩子电脑:
ssh <IP-address>
要么:
ssh <user-name>@<IP-address>
显然,如果孩子的计算机具有静态IP地址,这种方法会更好。否则,您始终需要检查IP是什么。大多数路由器都可以选择为所选设备分配静态(始终相同)IP。某些路由器还可以选择将主机名分配给某个设备 – 然后对于同一网络地址中的任何设备,”kids”意味着相同。如果使用/etc /hosts文件分配主机名,则只有该主机文件所在的计算机才知道主机名。还假设孩子的计算机具有静态IP地址。
你也可以在那台机器上为孩子计算机设置静态IP,但我建议在路由器中完成网络设置的设置。一个控制点 – 更易于管理。如果事情不清楚,请发表评论,我会扩大我的答案。