设置 sftp 使用密码,但 ssh 不使用密码

设置 sftp 使用密码,但 ssh 不使用密码

是否可以使用 openssh 在 ubuntu 上设置用户,以便 ssh 不使用密码验证但 sftp 使用密码验证?

我假设如果我改变/etc/ssh/ssh_configPasswordAuthentication yes一点,用户就可以使用密码通过 ssh 和 sftp 登录。

编辑:我的目的是让一些用户使用密码而不是密钥文件进行 sftp。但我不希望 ssh 用户能够使用密码登录,我希望他们必须使用密钥文件。如果有帮助的话,我不需要 sftp 用户能够登录,他们只需要执行 sftp。

答案1

据我了解,你(至少对于这个特定问题)有两个清楚的用户组,一个可以通过 SSH 登录并获得交互式 shell (我们称之为组ssh),另一个可以通过 SFTP 登录并且只能获得 SFTP shell (我们称之为组sftp)。

现在创建组ssh,并sftp在您的系统上使用groupadd,将相应的用户放入组中(gpasswd -a $USERNAME $GROUPNAME)并在末尾附加以下几行(这个很重要!)sshd_config位于/etc/ssh/sshd_config

Match Group sftp
  PasswordAuthentication yes
  # Further directives for users in the "sftp" group

Match Group ssh
  PasswordAuthentication no
  # Further directives for users in the "ssh" group

详细了解该Match指令sshd_配置(5)以及关于允许模式ssh_配置(5)

您还必须重新启动该ssh过程才能使其生效:

sudo /etc/init.d/ssh restart

答案2

不,我也不明白这如何能提高安全性,那有什么意义呢?

授权密钥如果您需要的话,可以允许不同的键使用不同的命令。否则,您可以选择创建多个帐户并使用 acls 或 sudo。

答案3

虽然这是在瞎猜,但你可能会发现这个帖子很有趣。

将我的 SFTP 用户限制在他们的主目录中是否公平?

相关内容