在 Ubuntu 上生成用于 SFTP 密钥登录(SSH 密钥) 的步骤如下:
ssh-keygen -t rsa -b 4096
或使用更安全的:
ssh-keygen -t ed25519
执行后会提示:
/home/用户名/.ssh/id_rsa)生成后你会得到:
~/.ssh/id_rsa~/.ssh/id_rsa.pubssh-copy-id user@server_ip
cat ~/.ssh/id_rsa.pub
~/.ssh/authorized_keys
例如:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
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 限制目录,可以继续问我。