2020 年更新

2020 年更新

我正在尝试使用 SSH 通过路由器将运行 11.10 的新笔记本电脑与运行 8.04 的旧笔记本电脑连接起来。

这个问题在 ubuntuforums 上有提出和回答:

http://ubuntuforums.org/showthread.php?t=1648965

我认为在这里得到更明确的答案会有所帮助。

注意:我需要首先在尝试连接的笔记本电脑上安装 openssh-server,然后使用 firestarter 在防火墙中打开 SSH 端口。

答案1

您可以通过多种方式限制对 ssh 服务器的访问。

我认为最重要的是使用 ssh 密钥并禁用密码验证。

有关详细信息,请参阅以下 wiki 页面

您可以通过多种方式限制对特定子网的访问。我假设您的 ssh 服务器位于子网 192.168.0.0/16 上,IP 地址为 192.168.0.10,请进行相应调整 ;)

路由器

一道防线是使用路由器。务必禁用 UPnP 并且不允许端口转发。

SSH 配置

您可以在 中设置多个选项/etc/ssh/sshd_config。一个是监听地址。如果您在子网上设置了监听地址。一个私有IP地址无法通过互联网进行路由。

ListenAddress 192.168.0.10

您还可以使用 AllowUsers

AllowUsers [email protected]/16

有点相关,你也可以更改端口

Port 1234

看:http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html

TCP 包装器

正如论坛帖子中所述,您可以使用 TCP Wrapper 。TCP Wrapper 使用 2 个文件,/etc/hosts.allow并且/etc/hosts.deny

编辑/etc/hosts.allow并添加您的子网

sshd : 192.168.0.

编辑/etc/hosts.deny并拒绝所有

ALL : ALL

也可以看看:http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

防火墙

最后,你可以为服务器设置防火墙。你可以使用 iptables、ufw 或 gufw。

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

请不要DROP使用iptables

ufw

sudo ufw allow from 192.168.0.0/16 to any port 22

ufw具有图形界面:gufw

统一战线

答案2

2020 年更新

由于这个问题,现在可以使用关键字Match来提供一种不太复杂的方法,OpenSSH 6.5/6.5p1(2014)

在里面sshd配置文件(/etc/ssh/sshd_configDebian以及派生的操作系统,例如Ubuntu

# Disable all auth by default
PasswordAuthentication no
PubkeyAuthentication no

[.. then, at the end of the file ..]

# Allow auth from local network
Match Address  192.168.1.*
    PubkeyAuthentication yes
    # if you want, you can even restrict to a specified user
    AllowUsers stephan

提示:最好将自定义规则放到/etc/ssh/sshd_config.d文件夹中的文件中。通常/etc/ssh/sshd_config.d/local_network_only.conf。这可以防止在升级到新版本的 ssh-server 软件包更改 sshd 配置文件时发生冲突。

man sshd_config更多细节

答案3

ssh(安全 shell)用于安全地访问和传输数据(使用 RSA_KEYS 对)。您可以通过两种方式使用 ssh 访问数据 1. 命令行 2. 使用文件浏览器

命令行:为此您不需要安装任何东西。第一个任务是登录到另一台计算机。

ssh other_computer_username@other_computer_ip

此命令将要求输入密码,该密码是另一台计算机的密码(特定用户名的密码)。您刚刚登录到另一台计算机的 shell。认为此终端就像您的计算机 shell 终端。您可以使用 shell 在其他计算机上执行您在计算机上可以执行的所有操作

文件浏览器:需要安装 openssh-server

sudo apt-get install openssh-server

要登录,请转到文件-> connectToServer

在此处输入图片描述

相关内容