温馨提示×

ubuntu sftp密钥怎么配置

小樊
35
2026-10-05 06:35:05
栏目: 智能运维

在 Ubuntu 上配置 SFTP 使用密钥登录(而非密码登录),一般步骤如下:


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

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

ssh-keygen -t rsa -b 4096

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

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

二、将公钥上传到 Ubuntu 服务器

方法 1:使用 ssh-copy-id(推荐)

ssh-copy-id user@server_ip

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

~/.ssh/authorized_keys

方法 2:手动复制

在客户端查看公钥:

cat ~/.ssh/id_rsa.pub

登录服务器后:

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

粘贴公钥内容,然后:

chmod 600 ~/.ssh/authorized_keys

三、确保 SSH 服务配置正确(服务器端)

编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

确认以下配置:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

(一般默认就是开启的)


四、限制用户只能使用 SFTP(可选)

如果你希望该用户 只能用 SFTP,不能 SSH 登录:

Match User sftpuser
    PasswordAuthentication no
    ForceCommand internal-sftp
    ChrootDirectory /home/sftpuser
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

修改后重启 SSH:

sudo systemctl restart ssh

五、配置目录权限(Chroot 必需)

如果使用 ChrootDirectory,目录权限必须:

sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

用户上传目录:

sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload

六、使用 SFTP 登录测试

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

或普通连接(默认使用密钥):

sftp user@server_ip

七、关闭密码登录(可选,提高安全性)

确认密钥可用后:

PasswordAuthentication no

然后:

sudo systemctl restart ssh

如果你愿意,可以告诉我:

  • 是 服务器配置 还是 客户端连接
  • 是否要 限制目录 / 多用户
  • 使用的是 Ubuntu 版本

我可以给你更精确的配置示例。

0 踩