如何通过互联网安全地ssh到家里的机器

我将很快旅行,我有一台机器运行运行一堆cron作业等。我需要远程登录以检查作业运行的结果,并在机器上做一些工作。

以下是重要事实:

  1. 要连接的机器(母舰)正在运行Ubuntu 14.0.4 LTS
  2. 母舰通过家中的局域网连接到互联网,因此具有面向公众的IP地址。
  3. IP地址是动态分配的。
  4. 我将使用运行Ubuntu 15.10的笔记本电脑连接到母舰

我更喜欢使用ssh而不是VNC,因为带宽问题 – 而且,无论如何我只需要命令行。

安全地远程连接到我的机器的最佳方法是什么?

您最好的选择可能是在非默认端口上运行SSH服务器,例如2020.这可以防止大多数尝试来自网络的暴力攻击,因为这些机器人往往只查看默认端口。

您还需要在LAN上为服务器分配静态IP地址,因为它始终需要可访问。 您可以在System Settings --> Network 。 为了防止IP地址冲突,建议您告知DHCP服务器(大多数情况下是路由器)采用此IP地址。 该方法因型号而异,但路由器配置中应该有一个区域允许您保留IP地址。

静态IP的原因是您需要在路由器设置中设置端口转发。 这允许从端口到外部IP的连接路由到服务器上的该端口。

如果您的公共IP地址是动态的(可能是它),那么您将需要设置某种动态DNS服务。 我对此服务的建议是No-IP 。 它为您提供了一个始终指向您的公共IP的免费子域。 此设置需要在LAN上的永远在线计算机上安装程序(称为DUC,由No-IP提供)。

一旦你设置了SSH服务器的方式,输入就可以通过SSH连接到它

 ssh user@remotehostip -p XXX 

或者使用您喜欢的任何SSH / SFTP客户端。

如果这些部分中的任何部分需要更详细的说明,请注释,我会将它们添加进去。

如果其他人有麻烦关注,这里有一个聊天室,有更进一步/更详细的步骤: http : //chat.stackexchange.com/rooms/37251/discussion-between-homunculus-reticulli-and-zacharee1

除了Zacharee1的答案之外,你应该安装Fail2ban或DenyHosts(从Precise repos获得.deb)。 如果您正在旅行,则不应使用钥匙进行身份validation。 也使用“安全”密码。 也许设置一个专用的用户帐户,在您不需要管理员的时间内减少访问权限。

我不会触摸服务器上的网络设置,可以从路由器分配静态IP。 路由器IP地址应该是DHCP中分配的“网关”地址。 在它不是(!)的情况下,默认地址应该写在某个地方。 如果你改变了这个,你应该只留下最后一个值。 因此,如果你有一个C类家庭网络,地址将是abcx,其中abc匹配你所有其他的ip地址,x是路由器贴纸的尾随值。 在任何情况下,ISP都应该有帮助页面。

当您使用非标准端口时,请避免使用“22”作为最终数字(例如8122)。 它留下了线索。

NB。 您可以通过SSH访问基于X的应用程序而无需VNC,完全是另一个主题。