我有一个运行 debian 的 vps,我可以通过 ssh 以 root 身份访问它。我想设置一个用户帐户以允许 ssh 访问。我以 root 身份登录,创建了一个用户:
useradd -m user
为用户创建了密码:
passwd user
并将该用户添加到 /etc/ssh/sshd_config 文件中:
AllowUsers user
然后在我的本地计算机上,我创建了一个密钥:
ssh-keygen -t rsa -b 4096 -C "user"
在 vps 上,我创建了文件 /home/user/.ssh/authorized_keys
并粘贴到公钥中。
但我无法以用户身份登录:
$ ssh user@vpshost
user@vpshost: Permission denied (publickey).
$
我究竟做错了什么?我在一些地方读到我需要重新启动 ssh 服务(其他地方说没有必要),但由于我对 vps 的唯一访问是通过 ssh,并且我读到你无法在 ssh 上重新启动 ssh (这是有道理的),我想知道这是否是问题所在。
建议?
答案1
典型问题是服务器或客户端上 .ssh 文件夹中的文件权限错误。将pub key复制到服务器的最安全方法是使用ssh-copy-id命令,这将为authorized_keys文件设置适当的权限(如果我没记错的话,600或640)
您还可以尝试增加详细程度,例如
ssh -vvv 用户@vpshost