每个用户的SSHd限制


9

我需要限制某些用户,以便他们只能使用ssh密钥通过SSH进行登录,而其他用户可以使用密钥或密码登录。

一个例子:

我希望root用户能够使用密钥远程(通过sshd)登录,因此不会接受任何密码(即使密码正确)

对于其他用户(系统上的所有人),他们可以使用密钥和/或密码登录

我该怎么办?

Answers:


0

我要做的是设置/etc/sshd/sshd_config为:

PermitRootLogin without-password

只是为了提高安全性并避免锁定root密码(这仅允许root使用密钥登录)

我将改为使用AllowGroups而不是AllowUser,因为对我来说,将用户添加到组中比添加用户要方便得多,sshd_config但这可能取决于您的个人喜好。


13

我认为您想要的是“匹配用户”。您可以使用它来匹配用户名,然后缩进一系列专门应用于该用户的配置设置。

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

我使用它有时为客户端设置chroot仅SFTP访问。


请注意,并非所有设置都可以写入该Match块中。有关man 5 sshd_config详细信息,请参见。
ynn

2

如下设置ssh:

nano /etc/ssh/sshd_config

AllowUsers username1 username2 username3

重启SSH

然后将密钥提供给您想要避免使用密码的用户。

ssh-keygen用于为您生成该密钥对。这是创建您自己的个人私钥/公钥对的会话:

#ssh-keygen -t rsa

命令ssh-keygen -t rsa启动了密钥对的创建。

我没有输入设置密码(而是按下Enter键)。

私钥已保存在.ssh / id_rsa中。该文件是只读的,仅供您使用。没有人可以看到该文件的内容,因为该文件用于解密使用公钥加密的所有通信。

公用密钥保存在.ssh / id_rsa.pub中。

然后将其内容复制到您希望SSH的系统的.ssh / authorized_keys文件中,而不会提示您输入密码。

#scp id_rsa.pub remote system:~/.ssh/authorized_keys

最后锁定帐户(仍然可以进行密钥身份验证。)

# passwd -l username1

那不是我要找的东西。假设我希望root仅使用密钥登录,而其他用户可以使用密钥或密码登录
Alexus 2010年

然后不要使用passwd -l username1锁定帐户
Patrick R
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.