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

jim*_*iat 3 linux password

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

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

Rub*_*amp 10

密码问题的答案是:

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

PasswordAuthentication yes 
PermitEmptyPasswords no
Run Code Online (Sandbox Code Playgroud)

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

/etc/init.d/ssh restart
Run Code Online (Sandbox Code Playgroud)

这应该适用于 systemd 系统:

systemctl restart ssh
Run Code Online (Sandbox Code Playgroud)

然后要么:

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

或更好):

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

或者(甚至更好):

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

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

~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

在服务器上。

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

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

这里

和/或:

man authorized_keys
Run Code Online (Sandbox Code Playgroud)

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


ton*_*ioc 5

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

Match User <thisusername>
  PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)

然后重新启动sshd服务。

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

passwd <thisusername>
Run Code Online (Sandbox Code Playgroud)

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