在Debian系统上实现SFTP公钥认证,可以按照以下步骤进行:
1. 生成SSH密钥对
首先,在客户端生成SSH密钥对(如果还没有的话)。
ssh-keygen -t rsa -b 4096
按照提示操作,通常会生成两个文件:~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。
2. 将公钥复制到服务器
将生成的公钥复制到服务器的~/.ssh/authorized_keys文件中。
方法一:使用ssh-copy-id命令
ssh-copy-id user@server_ip
方法二:手动复制
- 在客户端,查看公钥内容:
cat ~/.ssh/id_rsa.pub - 登录到服务器,编辑或创建
~/.ssh/authorized_keys文件:ssh user@server_ip mkdir -p ~/.ssh chmod 700 ~/.ssh echo "公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
3. 配置SSH服务器
确保服务器的SSH配置允许公钥认证。
编辑服务器上的/etc/ssh/sshd_config文件:
sudo nano /etc/ssh/sshd_config
确保以下配置项存在并设置为如下值:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
4. 重启SSH服务
保存并退出编辑器后,重启SSH服务以应用更改:
sudo systemctl restart sshd
5. 测试SFTP连接
现在,尝试使用SFTP连接到服务器:
sftp user@server_ip
如果一切配置正确,你应该能够使用私钥进行认证并成功连接。
6. 配置SFTP子系统(可选)
如果你希望限制SFTP用户的访问权限,可以配置SFTP子系统。
编辑/etc/ssh/sshd_config文件,添加或修改以下内容:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
然后创建一个用户组sftpusers并将需要限制的用户添加到该组:
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
最后,重启SSH服务:
sudo systemctl restart sshd
这样,属于sftpusers组的用户将只能使用SFTP,并且会被限制在其主目录中。
通过以上步骤,你就可以在Debian系统上实现SFTP公钥认证了。
以上就是关于“Debian SFTP如何实现公钥认证”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm