我的服务器上有一个用户帐户,我可以通过 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)
当然,正如其他人指出的那样,除非由团队运营,否则每个帐户拥有多个用户并不是一个好主意。临时特权访问或帐户可能不是一个好主意。
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 更改密码。