我有一个在 Ubuntu Precise 12.04 上运行的 OpenSSH 5.9p1 服务器,它接受来自内部网络和 Internet 的连接。我想要求对来自 Internet 的连接进行公钥身份验证,但对来自内部网络的连接接受公钥或密码身份验证。我可以配置 OpenSSH 来实现这一点吗?
我的 ssh 服务器中有一个使用 和 创建的非常受限的--no-create-home用户--shell /bin/false。我知道我可以为用户的公钥定义authorized_keys文件。sshd_configs但是,如何允许该用户进行公钥身份验证,而不需要访问操作系统上的任何文件?
我正在管理一个 RedHat 服务器,用户使用基于私钥/公钥的身份验证通过 SSH 登录。
我想防止他们意外更改/删除/chmoding 〜/.ssh文件夹的内容。他们中的一些人已经递归地 777-chmod 了他们自己的整个主文件夹,因为“这样更容易与同事共享文件”,结果搬起了石头砸自己的脚。
知道我该如何实现这一目标吗?最好有标准的Linux权限系统。
我想在我们的一些服务器上设置 pam_ldap 以便我们可以集中管理谁有权访问哪个服务器,并且如果有人离开公司,则可以轻松撤销访问权限。
我已经做了一些研究并得到了这个工作。万岁!
但是,我还希望能够使用公钥-私钥登录 - 即允许用户将他们的公钥存储在 LDAP 目录中,并且也可以使用这些登录。
我找不到任何关于能够做到这一点的文档,但我也找不到任何不应该这样做的原因。有没有办法做到这一点,或者是否有一些根本原因使其不起作用?
我已经成功导入了 sshPublicKey 架构,但该属性未显示在 PHPLDAPADMIN 中。
任何人都有这个问题的经验?
我逐字逐句地做了什么:
sudo nano openssh-lpk.ldif
dn: cn=openssh-lpk,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openssh-lpk
olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
DESC 'MANDATORY: OpenSSH Public key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
DESC 'MANDATORY: OpenSSH LPK objectclass'
MAY ( sshPublicKey $ uid )
)
Run Code Online (Sandbox Code Playgroud)
导入架构,我应该更改 ldapi:// 吗?我尝试使用我的 IP/环回,但它不起作用,但它似乎按原样工作。
ldapadd -Y EXTERNAL -H ldapi:/// -f openssh-lpk.ldif
Run Code Online (Sandbox Code Playgroud)
从这里的指南中得到这个 >> https://blog.shichao.io/2015/04/17/setup_openldap_server_with_openssh_lpk_on_ubuntu.html
通过SF上的这篇文章确认了我应该做的事情。
但是他的指示有点含糊……
“更新 LDAP 以包含 OpenSSH-LPK 架构”
我们首先需要使用架构更新 LDAP,以便为用户添加 sshPublicKey …
ssh-keys ×4
ssh ×3
ldap ×2
linux ×1
openldap ×1
pam ×1
permissions ×1
private-key ×1
public-key ×1
schema ×1
security ×1
shell ×1