如果 UNIX 用户通过 SSH 访问服务器,而我们只想允许公钥登录,那么是否还有其他需要添加到此列表中的项目,我应该关注?
pubkey login在sshd_config服务器上的文件中。最好告诉您需要什么 SSH 服务器以及什么(一组)Unix 系统。
!并且*当您在/etc/passwdor 中看到它们时不是密码/etc/shadow(用于getent阅读这些条目)。
它们是表示帐户是否有密码以及是否被锁定的标记。
这是一个重要的区别,取决于 PAM 的配置和版本以及发行版,如果您使用的是 Linux。如果锁定,则不太可能允许您登录,但另一方面,它可能在旧系统上开箱即用(至少这是我的经验)。
您可以使用(作为超级用户)passwd -l <name>来锁定帐户 ( !) 或passwd -d <name>从中删除密码 ( *),您也可以将两者结合使用,这将确保删除任何现有密码:passwd -dl <name>。
你不说,但假设 OpenSSH 中的相关指令/etc/ssh/sshd_config(路径可能会有所不同)是:
HostKey ...
Run Code Online (Sandbox Code Playgroud)
服务器必须有一个主机密钥或 RSA2 或 DSA(更现代的实现也添加了两个椭圆曲线实现)。RSA1 早已被所有常见的 SSH 服务器实现所放弃。
然后:
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)
我也总是建议设置/etc/sudoers并完全禁止root通过 SSH ( PermitRootLogin no)登录。但是,这种更安全的设置可能有一个小缺点,当磁盘已满并且您的非特权sudo成员无法写入磁盘时,但root会(由于保留空间)。所以YMMV。
创建一个组ssh-users(或您喜欢的任何名称)并在sshd_config. root根据您根据上述信息选择的策略,确保该用户是或不是该组的成员。
AllowGroups ssh-users
Run Code Online (Sandbox Code Playgroud)
在sshd_config下面,然后将确保用户无法逃脱/home和某些功能对他们无效。
Match group sftponly
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)
所以是的,如果在 Linux 上,则必须考虑添加 PAM。
还有是否允许代理转发或将其留给您的用户。
最后但并非最不重要的是是否允许他们转发端口或 X11 连接。特别是端口可能是不可取的,因为它们允许用户将您的服务器用作代理。
该Match指令还允许您限制用户连接的位置(防火墙或 TCP 包装器也可以这样做)。
您希望您的用户被允许管理密钥,还是希望将其抽象化并使authorized_keys他们无法直接访问?
当然还有更多方面,但它们大多处于更细粒度的细节水平,以及上述各点的变化。
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |