SSH 到本地网络上的机器的最佳方式是什么?

duk*_*vin 70 ssh networking

我有两台电脑,一台是我用的,一台是给孩子们用的。我希望能够通过 ssh 进入他们的计算机来控制它(比如关闭它等),但我很好奇做到这一点的最佳方法。我们都在同一所房子里,共享同一个互联网连接。

什么是最好的方法来做到这一点?从研究中,我读到在远程计算机上安装 openssh-server ,但在尝试连接时很难使用主机名。通常对于 VPS,它是外部 IP,但由于我们都共享一个 wifi 连接,它会是硬件 IP吗?我们应该通过 LAN 直接连接还是通过 Internet 连接?

Eri*_*lho 67

跑:

avahi-browse -tl _workstation._tcp
Run Code Online (Sandbox Code Playgroud)

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

ssh <username>@<computer-name>.local
Run Code Online (Sandbox Code Playgroud)

  • 注意:对于`avahi-browse`,你需要安装`avahi-utils` 包(它也会引入`avahi-daemon`,提供.local 寻址能力的服务)。 (8认同)
  • 在我运行 `avahi` 后,列表似乎是空的。两台电脑都连接到同一个路由器 (4认同)
  • @Piskvor 好点。这个包已经默认安装在 Ubuntu Desktop 中,但我不知道其他版本(kubuntu、lubuntu 等)。如果没有安装,只需运行`sudo apt-get install avahi-utils`。 (2认同)

Ed *_*net 17

您可以使用 IP 地址通过 ssh 连接到孩子的计算机。如果要使用计算机名称,请编辑 /etc/hosts 文件以包含计算机名称。

192.168.1.104  dad
192.168.1.105  kids
Run Code Online (Sandbox Code Playgroud)

  • 您需要指出 IP 需要静态分配给计算机。 (14认同)
  • 您可以通过在 `~/.ssh/config` 中命名主机来按名称启用 `ssh`,而无需编辑主机文件:http://www.howtogeek.com/75007/stupid-geek-tricks-use-your-ssh -config-file-to-create-aliases-for-hosts/ (3认同)

PAC*_*PAC 11

在做之前ssh,检查 ssh 客户端和服务器。如果您没有这些服务,请使用以下命令安装它们:

sudo apt-get install openssh-client

sudo apt-get install openssh-server
Run Code Online (Sandbox Code Playgroud)

如果您已经安装了它们,只需执行以下操作:

ssh username@ipaddress
Run Code Online (Sandbox Code Playgroud)

并输入连接设备的登录密码。

如果您收到类似 : 的任何错误Permission denied, please try again.,请检查用户名和 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
Run Code Online (Sandbox Code Playgroud)

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


Ste*_*f K 6

  1. 例如,只要您的 LAN 使用静态 IP,您就可以 ssh 直接连接到本地 IP
    ssh someuser@192.168.1.2

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

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

DNSMasq是相当不错的 DNS 服务器,易于设置。
另一种选择是BIND