公钥文件在我的 vps 上,私钥文件在我的本地电脑上。
/etc/ssh/sshd_config
在我的vps中:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
每次我都可以使用以下命令登录我的 vps private key
:
ssh root@$vps_ip
今天我为 sftp 安装了一个新用户:
groupadd sftp
useradd -g sftp -d /sftp -s /sbin/nologin ipcamera
mkdir -p /sftp/ipcamera/files
chmod 500 /sftp
chmod 700 /sftp/ipcamera/files
chown root:sftp /sftp/ipcamera
chown ipcamera:sftp /sftp/ipcamera/files
echo "ipcamera:w+w_w+w" | chpasswd
vim /etc/ssh/sshd_config
AllowGroups ssh sftp
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
PasswordAuthentication yes
在 VPS 中重启我的 sshd
systemctl restart sshd
ipcamera
然后我可以使用用户和密码 登录 sftp w+w_w+w
。
sftp ipcamera@$vps_ip
奇怪的事情发生了,我无法使用ssh命令登录vps!
ssh root@$vps_ip
Permission denied (publickey).
为什么添加新的sftp用户后无法用ssh登录vps?
答案1
我猜想“root”是不允许登录的,因为不是 AllowGroups 中任何组的成员。您已添加AllowGroups ssh sftp
到配置,但忘记将“root”添加到“ssh”组。
使用您的 VPS 提供商的“控制台访问”或“救援外壳”功能来解决此问题。
答案2
将“root”添加到“ssh”组。
usermod -aG ssh root