温馨提示×

centos怎么用密钥登sftp

小樊
44
2026-09-24 06:06:12
栏目: 智能运维

在 CentOS 上使用密钥登录 SFTP(本质就是 SSH 密钥登录),一般步骤如下:


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

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

ssh-keygen -t rsa -b 4096

一路回车即可,会生成:

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

二、把公钥传到 CentOS 服务器

在客户端执行:

ssh-copy-id user@服务器IP

输入一次密码后,以后就可以密钥登录了。

如果是 Windows(如 PuTTY / WinSCP),需要把 id_rsa.pub 内容粘贴到服务器的:

~/.ssh/authorized_keys

并确认权限:

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

三、在 CentOS 上确认 SSH 配置

编辑配置文件:

sudo vi /etc/ssh/sshd_config

确保以下内容:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

(可选)禁用密码登录(更安全):

PasswordAuthentication no

修改后重启 SSH:

sudo systemctl restart sshd

四、使用 SFTP 密钥登录

Linux / macOS 客户端

sftp -i ~/.ssh/id_rsa user@服务器IP

Windows(WinSCP / FileZilla)

  • 协议:SFTP
  • 登录类型:密钥文件
  • 选择 id_rsa 私钥
  • 用户名填写服务器用户

五、常见问题排查

  1. 权限问题

    • 服务器用户家目录不能对其他用户可写
    • .ssh 权限必须是 700
  2. SELinux

    restorecon -Rv ~/.ssh
    
  3. 防火墙

    firewall-cmd --list-all
    

    SFTP 走的是 22 端口(SSH)


如果你是想限制 SFTP 只能传文件、不能登录 shell,或者给某个用户单独配置 SFTP 目录,也可以告诉我,我可以给你专门配置示例。

0 踩