首页主机资讯如何在CentOS上使用SFTP客户端

如何在CentOS上使用SFTP客户端

时间2025-11-28 17:53:03发布访客分类主机资讯浏览893
导读:在CentOS上使用SFTP客户端 一 准备与安装 大多数 CentOS 已内置 OpenSSH 客户端,可直接使用 sftp 命令。若未安装,执行: CentOS 7:sudo yum install -y openssh-clien...

在CentOS上使用SFTP客户端

一 准备与安装

  • 大多数 CentOS 已内置 OpenSSH 客户端,可直接使用 sftp 命令。若未安装,执行:
    • CentOS 7:sudo yum install -y openssh-clients
    • CentOS 8/Stream:sudo dnf install -y openssh-clients
  • 如需作为 SFTP 服务器提供上传下载,还需安装并启动 OpenSSH 服务器:sudo yum/dnf install -y openssh-server;sudo systemctl start sshd;sudo systemctl enable sshd
  • 确保防火墙放行 SSH 端口 22:sudo firewall-cmd --permanent --add-service=ssh;sudo firewall-cmd --reload。

二 连接与常用命令

  • 基本连接:
    • sftp user@hostname(默认端口 22
    • 指定端口:sftp -oPort=2222 user@hostname 或 sftp -P 2222 user@hostname
  • 会话内常用命令:
    • 目录与文件:pwd(远端)、lpwd(本地)、ls(远端)、lls(本地)、cd、lcd
    • 传输:put localfile [remotefile]、get remotefile [localfile]
    • 其他:mkdir、rm、!command(在本地执行命令)、help、exit/quit
  • 提示:put/get 默认作用于当前工作目录;如需递归上传目录,可结合 shell 循环或使用其他工具(见下文批量/自动化)。

三 免密登录与自动化备份

  • 生成密钥:ssh-keygen -t rsa -b 4096
  • 分发公钥:ssh-copy-id user@remote_host(之后连接无需输入密码)
  • 简单备份脚本示例(使用 SFTP 交互式批处理):
    • 创建脚本 backup.sh:
      #!/bin/bash
      LOCAL_DIR="/path/to/local/backup"
      REMOTE_USER="user"
      REMOTE_HOST="remote_host"
      REMOTE_DIR="/path/to/remote/backup"
      
      mkdir -p "$LOCAL_DIR"
      sftp "$REMOTE_USER@$REMOTE_HOST" <
          <
          EOF
      cd "$REMOTE_DIR"
      put "$LOCAL_DIR"/*
      bye
      EOF
      echo "Backup completed."
      
    • 赋权与定时:chmod +x backup.sh;crontab -e 添加如:0 2 * * * /path/to/backup.sh
  • 如需完全非交互(不推荐在脚本中明文写密码),可用 expect 自动化输入密码,或优先采用 SSH 密钥方式。

四 服务器端安全与仅SFTP访问配置

  • 编辑 /etc/ssh/sshd_config,推荐使用内置子系统并限制仅 SFTP:
    Subsystem sftp internal-sftp
    
    Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
  • 创建受限用户与目录(示例):
    • 建组:sudo groupadd sftpusers
    • 建用户并加入组:sudo useradd -m -G sftpusers sftpuser;sudo passwd sftpuser
    • 目录与权限(Chroot 要求根目录属主为 root 且权限 ≤ 755):
      sudo chown root:sftpusers /home/sftpuser
      sudo chmod 755 /home/sftpuser
      sudo mkdir -p /home/sftpuser/upload
      sudo chown sftpuser:sftpusers /home/sftpuser/upload
  • 使配置生效:sudo systemctl restart sshd;如需排查,查看 /var/log/secure

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在CentOS上使用SFTP客户端
本文地址: https://pptw.com/jishu/759238.html
CentOS下如何配置Apache2的SSL证书 CentOS中Tomcat集群搭建方法

游客 回复需填写必要信息