debian

Debian SFTP如何配置SSH密钥

小樊
44
2025-10-07 10:52:55
栏目: 智能运维

1. 生成SSH密钥对(客户端操作)
在客户端机器上生成RSA密钥对(推荐4096位强度),用于身份认证。执行以下命令:
ssh-keygen -t rsa -b 4096
按提示操作(可直接按回车键使用默认路径~/.ssh/id_rsa,私钥不建议设置密码短语以简化流程),生成后会得到两个文件:

2. 将公钥复制到Debian SFTP服务器
将客户端的公钥id_rsa.pub内容添加到服务器目标用户的~/.ssh/authorized_keys文件中,实现免密认证。常用两种方法:

3. 配置SSH服务器(Debian系统)
编辑SSH服务的主配置文件/etc/ssh/sshd_config,启用密钥认证并优化SFTP设置:
sudo nano /etc/ssh/sshd_config
找到并修改以下关键参数(取消注释或新增):

# 启用公钥认证(必须)
PubkeyAuthentication yes
# 指定authorized_keys文件路径(默认即可)
AuthorizedKeysFile .ssh/authorized_keys
# 可选:禁用密码认证(仅允许密钥认证,提升安全性)
PasswordAuthentication no
# 可选:禁用PAM认证(若不需要额外认证模块)
ChallengeResponseAuthentication no
# 确保SFTP子系统启用(默认路径)
Subsystem sftp /usr/lib/openssh/sftp-server

若需限制SFTP用户只能访问自己的家目录(chroot jail),可添加以下配置(匹配特定用户组,如sftpusers):

Match Group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

保存并退出编辑器(Ctrl+OEnterCtrl+X)。

4. 重启SSH服务
使配置变更生效,执行以下命令重启SSH服务:
sudo systemctl restart sshd
可通过sudo systemctl status sshd确认服务状态(显示“active (running)”即为正常)。

5. 测试SFTP密钥认证连接
在客户端使用私钥连接服务器,验证配置是否成功:
ssh -i ~/.ssh/id_rsa username@server_ip
或直接使用sftp命令:
sftp -i ~/.ssh/id_rsa username@server_ip
若配置正确,将无需输入密码直接登录服务器(或进入SFTP命令行界面)。

6. 安全加固(可选但推荐)

0
看了该问题的人还看了