温馨提示×

ubuntu sftp密钥怎么生成

小樊
37
2026-10-22 20:23:53
栏目: 智能运维

在 Ubuntu 上生成用于 SFTP 密钥登录(SSH 密钥) 的步骤如下:


一、在客户端生成密钥(推荐在本地 Ubuntu 执行)

ssh-keygen -t rsa -b 4096

或使用更安全的:

ssh-keygen -t ed25519

执行后会提示:

  • 保存路径(默认:/home/用户名/.ssh/id_rsa)
  • 是否设置密码(passphrase,建议设置)

生成后你会得到:

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

二、把公钥放到 SFTP 服务器

方法 1:自动方式(服务器已开启 SSH)

ssh-copy-id user@server_ip

方法 2:手动方式

  1. 查看公钥内容:
cat ~/.ssh/id_rsa.pub
  1. 登录服务器,写入到:
~/.ssh/authorized_keys

例如:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

三、使用密钥登录 SFTP

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

四、仅允许密钥登录(服务器安全设置,可选)

编辑服务器 SSH 配置:

sudo nano /etc/ssh/sshd_config

修改:

PubkeyAuthentication yes
PasswordAuthentication no

重启 SSH:

sudo systemctl restart ssh

五、常见问题

  • 权限错误
    确保:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    
  • SFTP 登录失败
    查看日志:

    sudo tail -f /var/log/auth.log
    

如果你是 Windows 客户端 + Ubuntu 服务器,或想配置 SFTP 专用用户 / chroot 限制目录,可以继续问我。

0 踩