在服务器上我只有 ssh 身份验证,但对于一个用户,我需要添加一个特定的文件夹和基于密码的身份验证。所以我创建了一个用户
sudo adduser myuser
然后在/etc/ssh/sshd_config
文件中我添加:
Match User myuser
PasswordAuthentication yes
RSAAuthentication no
PubkeyAuthentication no
Match all
PasswordAuthentication no
然后重启服务service sshd restart
但我仍然收到错误:
权限被拒绝(公钥,密码)。
系统:FreeBSD 10.1-RELEASE(通用)
答案1
首先,需要将用户添加到文件底部的 AllowUsers 中。我确信您已经在尝试 ssh 进入的机器上创建了 myuser 并设置了密码。
AllowUsers myuser
如果不存在,那么您需要将其添加到文件的最末尾。
删除“match myuser”和“match all”部分,并暂时将密码验证设置为是,将公钥验证设置为否,然后在您尝试连接的计算机上重新启动 sshd 服务。
您需要先创建公钥,然后使用您连接的计算机上的 ssh-copy-id 命令将其复制到文件夹中。以“myuser”身份登录您尝试连接的计算机,然后运行以下命令:
ssh-keygen -t rsa
它会要求您输入并确认密钥的密码,然后告诉您密钥的保存位置,显示指纹,然后显示随机艺术图像。
以下命令将公钥复制到您尝试连接的计算机。它将提示您输入 myuser 的密码。
ssh-copy-id -i ~/.ssh/id_rsa.pub myuser@host
如果您使用 22 以外的端口,请使用以下命令:
ssh-copy-id -p #portnumber -i ~/.ssh/id_rsa.pub myuser@host
完成这些操作后,您可以在尝试连接的计算机上将密码验证设置为否,将公钥验证设置为是,然后再次重新启动 ssh 服务。尝试以 myuser 身份连接,系统会提示您输入您创建的密码短语,然后使用公钥验证进行连接。