我的服务器上有一个用户帐户,我可以通过 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 更改密码。