温馨提示×

ubuntu sftp怎么用密钥登录

小樊
48
2026-09-20 14:51:18
栏目: 智能运维

在 Ubuntu 上通过 SFTP 使用密钥登录,一般步骤如下(假设你已经有或准备生成 SSH 密钥):


一、在本地生成密钥(如果还没有)

在本地电脑(客户端)执行:

ssh-keygen -t rsa -b 4096

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

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

(也可以指定文件名,如 sftp_key)


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

在本地执行:

ssh-copy-id user@server_ip

示例:

ssh-copy-id ubuntu@192.168.1.100

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

~/.ssh/authorized_keys

✅ 如果不能用 ssh-copy-id,可手动复制:

cat ~/.ssh/id_rsa.pub

然后到服务器:

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

三、使用 SFTP 密钥登录

方法 1:命令行 SFTP

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

如果私钥有密码,会提示输入 密钥密码(不是服务器密码)。


方法 2:指定端口(如 2222)

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

四、(可选)禁止密码登录,只用密钥

在 Ubuntu 服务器 修改:

sudo nano /etc/ssh/sshd_config

确保或修改为:

PubkeyAuthentication yes
PasswordAuthentication no

重启 SSH:

sudo systemctl restart ssh

⚠️ 修改前请确保密钥已能正常登录,否则可能锁死自己。


五、常见问题

1. 权限错误

服务器上权限必须正确:

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

2. 连接慢 / 被拒绝

检查:

  • 防火墙是否放行 22 端口
  • SELinux(一般不默认开)
  • 用户名是否正确

如果你是用 FileZilla / WinSCP / VS Code 等工具登录,我也可以给你对应配置方法。

0 踩