插件窝 干货文章 如何在Linux上设置远程文件传输(如SCP和SFTP)

如何在Linux上设置远程文件传输(如SCP和SFTP)

远程 文件 bash 目录 626    来源:    2025-04-15

Linux远程文件传输设置指南 (SCP & SFTP)

SCP (Secure Copy Protocol) 设置

SCP是基于SSH的安全文件传输协议,几乎所有Linux系统默认都已安装。

基本使用方法

从本地复制到远程:

scp /本地/文件/路径 username@远程主机IP:/远程/目录/路径

从远程复制到本地:

scp username@远程主机IP:/远程/文件/路径 /本地/目录/路径

复制整个目录(使用-r参数):

scp -r /本地/目录 username@远程主机IP:/远程/目录

使用特定端口

如果SSH服务不在默认的22端口:

scp -P 端口号 文件 用户名@主机:路径

SFTP (SSH File Transfer Protocol) 设置

SFTP也是基于SSH的文件传输协议,提供交互式文件传输体验。

基本连接方法

sftp username@远程主机IP

连接后可以使用以下常用命令: - put 本地文件 - 上传文件 - get 远程文件 - 下载文件 - ls - 列出远程目录内容 - lls - 列出本地目录内容 - cd - 更改远程目录 - lcd - 更改本地目录 - exit - 退出SFTP会话

使用特定端口

sftp -oPort=端口号 username@远程主机IP

服务器端配置

要允许SCP/SFTP连接,只需确保SSH服务正在运行:

  1. 检查SSH服务状态:
sudo systemctl status sshd
  1. 如果未运行,启动SSH服务:
sudo systemctl start sshd
  1. 设置开机自启:
sudo systemctl enable sshd

安全增强配置

编辑SSH配置文件 /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

推荐修改: - 更改默认端口: Port 2222 (或其他非标准端口) - 禁用root登录: PermitRootLogin no - 限制用户访问: AllowUsers 用户名 - 启用密钥认证: PasswordAuthentication no (配置密钥后)

修改后重启SSH服务:

sudo systemctl restart sshd

密钥认证设置(更安全的方式)

  1. 本地生成密钥对:
ssh-keygen -t rsa -b 4096
  1. 将公钥复制到服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@远程主机IP
  1. 测试无密码登录:
ssh username@远程主机IP

图形界面工具推荐

  • FileZilla - 支持SFTP的跨平台GUI工具
  • WinSCP (Windows) - SCP/SFTP客户端
  • Cyberduck (Mac) - 支持多种协议的文件传输工具

常见问题解决

  1. 连接被拒绝:

    • 检查SSH服务是否运行
    • 检查防火墙设置
    • 确认端口是否正确
  2. 权限问题:

    • 确保远程目录有写入权限
    • 检查SELinux状态(如有必要可临时禁用测试)
  3. 速度慢:

    • 尝试使用压缩选项 -C
    • 检查网络状况
    • 考虑使用rsync进行大文件传输

以上设置可以让您在Linux系统上安全高效地进行远程文件传输。