我正在尝试使用 SSH 通过路由器将运行 11.10 的新笔记本电脑与运行 8.04 的旧笔记本电脑连接起来。
这个问题在 ubuntuforums 上有提出和回答:
http://ubuntuforums.org/showthread.php?t=1648965
我认为在这里得到更明确的答案会有所帮助。
注意:我需要首先在尝试连接的笔记本电脑上安装 openssh-server,然后使用 firestarter 在防火墙中打开 SSH 端口。
答案1
您可以通过多种方式限制对 ssh 服务器的访问。
我认为最重要的是使用 ssh 密钥并禁用密码验证。
有关详细信息,请参阅以下 wiki 页面
- https://help.ubuntu.com/community/SSH/OpenSSH/Keys
- https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication
您可以通过多种方式限制对特定子网的访问。我假设您的 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
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_config
在Debian以及派生的操作系统,例如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