linux – 仅允许从内部网络对SSH服务器进行密码验证

我有一个在Ubuntu Precise 12.04上运行的OpenSSH 5.9p1服务器,它接受来自内部网络和Internet的连接.我想要对来自Internet的连接进行公钥认证,但是接受来自内部网络的连接的公钥或密码认证.我可以配置OpenSSH来实现吗?

解决方法

/ etc / ssh / sshd_config中的Match指令允许您有选择地应用配置指令.其中一个可用的匹配条件是连接的源地址,因此可用于实现所需的内容.您可以认禁用密码身份验证,然后为内部网络IP范围的连接启用密码身份验证. (请注意,您还要禁用ChallengeResponseAuthentication以防止使用密码.)此示例允许从所有RFC1918专用IP范围进行密码身份验证.有关详细信息,请参阅 sshd_config manpage.
PasswordAuthentication no
ChallengeResponseAuthentication no

Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

请注意,匹配块应添加文件的末尾,否则其后的所有内容将匹配,直到下一个匹配块. Match块的错误定位可能导致无法连接.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...