centos

怎样使用SSH隧道传输文件

小樊
46
2025-07-12 12:14:43
栏目: 编程语言

使用SSH隧道传输文件通常涉及两个主要步骤:设置SSH隧道和使用SCP或SFTP进行文件传输。以下是详细步骤:

设置SSH隧道

  1. 打开终端

    • 在Linux或macOS上,直接打开终端。
    • 在Windows上,可以使用PuTTY或其他支持SSH的客户端。
  2. 创建SSH隧道

    • 使用ssh命令创建一个隧道。假设你要通过远程服务器(例如remote-server.com)连接到目标服务器(例如target-server.com),并且目标服务器在端口22上运行。
    ssh -L 本地端口:target-server.com:22 user@remote-server.com
    

    解释:

    • -L 本地端口:target-server.com:22:将本地端口转发到目标服务器的22端口。
    • user@remote-server.com:远程服务器的用户名和地址。

    例如,如果你想将本地的端口12345转发到target-server.com的22端口,命令如下:

    ssh -L 12345:target-server.com:22 user@remote-server.com
    
  3. 保持隧道连接

    • 保持终端窗口打开,直到你完成文件传输。

使用SCP或SFTP进行文件传输

使用SCP

  1. 从本地机器传输到目标服务器

    • 假设你想将本地文件local-file.txt传输到目标服务器的/home/user/目录下。
    scp -P 本地端口 local-file.txt user@localhost:/home/user/
    

    解释:

    • -P 本地端口:指定本地端口(即你在SSH隧道中设置的端口)。
    • local-file.txt:要传输的本地文件。
    • user@localhost:目标服务器的用户名和地址(因为隧道已经建立,所以使用localhost)。
    • /home/user/:目标服务器上的目标目录。
  2. 从目标服务器传输到本地机器

    • 假设你想将目标服务器上的文件remote-file.txt传输到本地机器的/home/local-user/目录下。
    scp -P 本地端口 user@localhost:/home/user/remote-file.txt /home/local-user/
    

使用SFTP

  1. 启动SFTP会话

    • 假设你想连接到目标服务器并使用SFTP进行文件传输。
    sftp -P 本地端口 user@localhost
    

    解释:

    • -P 本地端口:指定本地端口(即你在SSH隧道中设置的端口)。
    • user@localhost:目标服务器的用户名和地址(因为隧道已经建立,所以使用localhost)。
  2. 在SFTP会话中进行文件传输

    • 连接成功后,你可以使用SFTP命令进行文件传输。例如:
    put local-file.txt /home/user/
    get remote-file.txt /home/local-user/
    

    解释:

    • put local-file.txt /home/user/:将本地文件上传到目标服务器。
    • get remote-file.txt /home/local-user/:从目标服务器下载文件到本地机器。

通过以上步骤,你可以使用SSH隧道安全地传输文件。确保在传输过程中保持SSH隧道连接,直到文件传输完成。

0
看了该问题的人还看了