SSH到本地网络上的计算机的最佳方法是什么?


61

我有两台计算机,一台是我用的,一台是给孩子用的。我希望能够通过ssh进入他们的计算机来对其进行控制(例如将其关闭等),但是我很好奇这样做的最佳方法。我们俩都在同一个房子里,共享相同的互联网连接。

最好的方法是什么?从研究中,我读到了在远程计算机上安装openssh-server的信息,但是在尝试连接时却迷惑了主机名的使用方法。通常用于VPS,它是外部IP,但既然我们俩都共享wifi连接,那么它将是硬件IP吗?我们应该直接通过局域网还是通过互联网进行接口?

Answers:


58

跑:

avahi-browse -tl _workstation._tcp

要获取本地网络中的Ubuntu工作站列表,则可以通过运行以下命令连接到它们:

ssh <username>@<computer-name>.local

7
注意:,对于avahi-browse,您需要安装avahi-utils软件包(该软件包还将avahi-daemon拉入提供.local可寻址性的服务)。
Piskvor 2013年

2
@Piskvor好点。默认情况下,此软件包已在Ubuntu桌面中安装,但我不了解其他版本(kubuntu,lubuntu等)。如果未安装,请运行sudo apt-get install avahi-utils
Eric Carvalho 2013年

所以是否有必要设置一个SSH服务器,或者默认情况下,例如ubuntu 14.04是否运行一台?
tobi

1
默认情况下,未安装@tobi SSH服务器。您必须安装它。
埃里克·卡瓦略

2
我跑步后清单似乎空了avahi。两台计算机都连接到同一路由器
Jose Ospina

15

您可以使用IP地址SSH进入孩子的计算机。如果要使用计算机名称,请编辑/ etc / hosts文件以包含计算机名称。

192.168.1.104  dad
192.168.1.105  kids

12
您需要指出,IP需要静态分配给计算机。
Alaa Ali 2013年

3
您可以ssh通过以下方式在不命名主机文件的情况下按名称启用ing ~/.ssh/config:在howtogeek.com/75007/…中
Nathan Long

@NathanLong-不错的提示!尽管有人可能会争辩说将其保存在主机文件中可以使任何人访问任何服务(如果需要)。
stefgosselin 2013年

9

在执行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。


8

我使用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

请注意,您可以在此文件中使用任何(客户端)变量,并且可以全局设置或按服务器设置。


那么,如何配置家用Internet网关设备的DNS设施以使其关联server1-web.example.orgserver2-db.example.org与各自的服务器关联?
Damian Yerrick '17

5
  1. 如果您的LAN使用静态IP,则可以直接ssh到本地IP。
    ssh someuser@192.168.1.2

  2. 您可以在两台计算机上编辑主机文件,正如Ed Manet在回答中提到的那样。这样,您就可以使用计算机的主机名ssh了,即ssh someuser@some_hostname

  3. 您可以设置本地DNS服务器来解析您的LAN主机。这样,您将能够如选项2中那样使用计算机的主机名进行ssh加密,但另外一个好处是,通过将DNS服务器指向Ubuntu的网络设置,避免了编辑每个主机文件。

DNSMasq是易于安装的非常好的DNS服务器。
另一种选择是BIND


3

使用本地LAN IP地址。另一种方法是需要一些端口开放到Internet,以允许您登录。

另外,您将需要端口映射(在路由器上)。将“公用” IP地址(在路由器上)用作目标将不会连接到两台PC之一。


最简单的方法是在路由器上永久分配每个IP地址(用于2台计算机)。然后只需连接到该IP地址即可。

如果您想变得更聪明(以后),请设置服务器并开始使用本地DNS服务为每个设备分配有意义的名称。仅2台PC确实不值得麻烦。


1
注意:如今,许多不错的家用路由器都会在分配IP地址时读取工作站的主机名,并将其解析为本地DNS。,这还不是通用功能。
Piskvor 2013年

2

如果您共享同一个Internet连接,则您很可能在同一个wifi路由器后面。因此,您可以直接连接到您的孩子计算机:

ssh <IP-address>

要么:

ssh <user-name>@<IP-address>

显然,如果儿童计算机具有静态IP地址,则此方法效果更好。否则,您始终需要检查IP是什么。大多数路由器都可以选择为选定的设备分配静态(始终相同)的IP。某些路由器还可以选择将主机名分配给特定设备-那么对于具有相同网络地址的任何设备,“孩子”的含义都相同。如果使用/ etc / hosts文件分配主机名,则只有该主机文件所在的计算机才知道该主机名。还假定儿童计算机具有静态IP地址。

您也可以在该计算机上为儿童计算机设置静态IP,但我建议在路由器中进行网络设置的安装程序。一站式控制-易于管理。如果不清楚,请发表评论,我将扩大答案。


我已经尝试过您的建议,但出现错误:ssh: connect to host xxx.xxx.x.xx port 22: connection refused-是否需要任何其他配置?
lukaszkups

该计算机上需要运行ssh服务器,并且没有防火墙对其进行阻止等等。可能已将ssh配置为期望在其他端口上建立连接,在这种情况下,可以使用-p标志使用默认端口(22)之外的其他端口。
Tanel Mae

0

您可以使用IP地址代替主机名,也可以在/etc/hosts文件中分配自定义主机名。

要在孩子的计算机上获取IP:在网络菜单上,请参阅“连接信息” ifconfig在命令行上运行(这些操作必须在孩子的计算机上完成)。

您的wifi路由器会分配这些IP地址,并且您应该能够对其进行配置,以为它们当前分配给的计算机保留特定的IP地址。(否则,IP可能会不时更改)。


0

您只需为孩子的计算机指定分配计算名称即可。
然后简单地做,
ssh MachineName

我从未使用过,只是在我脑海中分享了一个想法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.