温馨提示×

debian sftp密钥怎么用

小樊
39
2026-10-12 10:27:24
栏目: 智能运维

在 Debian 上通过 SFTP 使用密钥登录,一般流程如下(以 OpenSSH 为例):


一、在客户端生成密钥(如果还没有)

在你自己的电脑(客户端)执行:

ssh-keygen -t rsa -b 4096

一路回车即可,默认生成:

  • 私钥:~/.ssh/id_rsa
  • 公钥:~/.ssh/id_rsa.pub

建议设置私钥密码(passphrase),更安全


二、把公钥上传到 Debian 服务器

方法 1:使用 ssh-copy-id(最简单)

ssh-copy-id user@server_ip

输入一次密码后,公钥会自动写入服务器:

~/.ssh/authorized_keys

方法 2:手动复制

在客户端查看公钥:

cat ~/.ssh/id_rsa.pub

在 Debian 服务器上:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

粘贴公钥,保存后:

chmod 600 ~/.ssh/authorized_keys

三、Debian 服务端配置(SSH)

编辑配置文件:

sudo nano /etc/ssh/sshd_config

确保以下内容正确:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no   # 可选,禁止密码登录更安全

重启 SSH:

sudo systemctl restart ssh

四、使用 SFTP 密钥连接

命令行方式

sftp -i ~/.ssh/id_rsa user@server_ip

FileZilla 使用密钥

  1. 打开 FileZilla
  2. 站点管理器 → 协议选 SFTP
  3. 登录类型:密钥文件
  4. 选择你的 id_rsa 私钥
  5. 用户名填服务器用户名

如果私钥有密码,连接时会提示输入


五、常见问题

1. 权限错误导致无法登录

服务器上必须严格:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

家目录不能对组/其他可写

2. SELinux(Debian 一般没有)

Debian 默认无 SELinux,可忽略

3. 只给用户 SFTP 权限(不能 SSH)

在 /etc/ssh/sshd_config 加:

Match User sftpuser
    PasswordAuthentication no
    ForceCommand internal-sftp
    ChrootDirectory /home/sftpuser

如果你是想 只允许 SFTP、禁止 SSH、或 用非 root 用户 + chroot,可以告诉我,我可以给你完整配置示例。

0 踩