linux - 为已有 ssh 身份验证的用户添加密码

linux - 为已有 ssh 身份验证的用户添加密码

我的服务器上有一个用户帐户,我可以通过 ssh 密钥身份验证访问该帐户。我想将该帐户的临时访问权限授予第三方。我打算创建一个密码作为替代身份验证方法(因此可以通过密码或 ssh 密钥访问服务器),将其交给第三人让她执行作业,然后在作业完成后删除密码完毕。

我如何创建(然后删除)这样的密码?

答案1

密码问题的答案是:

  • 编辑该/etc/ssh/sshd_config文件以确保启用密码。

PasswordAuthentication yes 
PermitEmptyPasswords no

然后重新启动 ssh 服务(HT - @tonioc)。这适用于 sysvinit 系统:

/etc/init.d/ssh restart

这应该适用于 systemd 系统:

systemctl restart ssh

然后:

  • 使用您的密钥登录,如果密码被锁定,请更改帐户的密码。

或更好):

  • 为新用户添加新用户帐户,并将该用户添加到完成新用户任务所需的最小组中。

或者(甚至更好):

  • 添加一个新用户并让他们给你一个公钥
  • ~/.ssh/authorized_keys如果他们不知道如何自己复制密钥,请将其添加到他们的文件中。

然而,对于最少的更改但安全性较差,您可以简单地添加另一个密钥:

~/.ssh/authorized_keys

在服务器上。

您可以在authorized_keys 文件中拥有任意数量的密钥。每行一个键,前面带有选项。

有许多选项可以添加到该authorized_keys文件中。

这里

和/或:

man authorized_keys

当然,正如其他人指出的那样,每个帐户拥有多个用户并不是一个好主意,除非它是由团队运行的。临时特权访问或帐户可能不是一个好主意。

答案2

1)在sshd_config中,为此用户添加PasswordAuthentication方法:

Match User <thisusername>
  PasswordAuthentication yes

然后重新启动sshd服务。

2) 使用(作为 root 或使用 sudo)设置该用户的密码:

passwd <thisusername>

工作完成后,在 sshd_config 中将 PasswordAuthentication 更改为 no,然后(可选)再次使用 passwd 更改密码。

相关内容