[命令] Linux 命令 sftp 的使用 (通过 SFTP 协议传输文件)

正文:

案例一:显示 sftp 命令在执行过程中的详细步骤

# sftp -v 192.168.0.1

(补充:这里以使用 sftp 命令连接 IP 地址 192.168.0.1 为例)

案例二:非交互式将远处的文件拷贝到本地

# sftp eternalcenter@192.168.0.1:/tmp/test.txt

(补充:这里以通过用户 eternalcenter 登录,直接将 IP 地址 192.168.0.1 的文件 /tmp/test.txt 拷贝到本地的当前目录为例)

案例三:非交互式将本地的文件拷贝到远处

# sftp eternalcenter@192.168.0.1:/tmp/ <<< $"put test.txt"

或者:

# a=test;sftp eternalcenter@192.168.0.1:/tmp/ <<< $"put $a.txt"

(补充:这里以通过用户 eternalcenter 登录,直接将本地当前目录的 test.txt 文件拷贝到 IP 地址 192.168.0.1 的 /tmp/ 目录为例)

案例四:通过代理连接

# sftp -v -o ProxyCommand='ncat --proxy 10.0.0.1:10000 --proxy-type http 192.168.0.1 22' eternalcenter@192.168.0.1:/tmp/test.txt


补充:这里以
1) 通过代理 IP 地址 10.0.0.1 的 10000 端口,代理协议是 http,连接远程 IP 地址 192.168.0.1 的 22 端口
2) 通过用户 eternalcenter 登录
3) 直接将 IP 地址 192.168.0.1 的文件 /tmp/test.txt 拷贝到本地的当前目录
为例

参考文献:

https://www.endpointdev.com/blog/2013/04/socat-and-netcat-proxycommand-ssh
https://www.man7.org/linux/man-pages/man1/ncat.1.html