我需要能够从远程站点访问我的服务器(Ubuntu 8.04 LTS),但我不想担心密码复杂性。因此,我想要求使用 SSH 密钥而不是名称/密码进行登录。但是,我仍然有很多关于安全性的知识需要学习,并且在我尝试设置它时已经严重破坏了测试盒,我敏锐地意识到在尝试完成此操作时可能会搞砸自己。所以我有第二个目标:我想要求某些 IP 范围(例如 10.0.0.0/8)可以使用名称/密码登录,但其他所有人都必须使用 SSH 密钥登录。
我怎样才能同时满足这两个目标?
这里已经存在一个非常相似的问题,但我无法弄清楚如何从这些信息中得到我想要的。
当前策略:通读 PAM 文档(pam_access 看起来很有希望)并查看 /etc/ssh/sshd_config.conf 。
编辑:或者,有没有办法指定某些用户必须使用 SSH 密钥进行身份验证,而其他用户可以使用名称/密码进行身份验证?
当前有效的解决方案:
# 全局拒绝密码登录,只允许SSH-key登录。
密码认证 否
# 但允许来自 LAN 的连接使用密码。
匹配地址 192.168.*.*
密码认证是
匹配地址块也可以用作匹配用户块,回答我的第二个问题。现在,我只是将解析 CIDR 地址的失败归结为我的安装怪癖,并决定在不久后转到 Ubuntu 10.04 时再试一次。事实证明 PAM 不是必需的。
Zor*_*che 10
不确定 PAM 需要如何适应这个。使用最新版本的 SSH(如 8.04 上可用的版本),它应该像使用 Match 块来获取您希望允许的地址空间一样简单。
所以你的 sshd_config 应该包含这样的内容。
# global option no password auth (keys only)
PasswordAuthentication no
# permit password from rfc1918
Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |