Linux:sftp 刺骨的言语ヽ痛彻心扉 2023-01-08 05:25 128阅读 0赞 # sftp # [官网—没看完][Link 1] * SFTP(SSH文件传输协议)是一种安全的文件传输协议。它运行在SSH协议上。它支持SSH的完整安全性和身份验证功能。 * SFTP已经几乎取代传统的FTP的文件传输协议,并正在迅速取代FTP / S。它提供了这些协议提供的所有功能,但是更安全,更可靠,配置更简单。基本上没有理由再使用旧协议了。 * SFTP还可以防止密码嗅探和中间人攻击。它使用加密和加密哈希函数来保护数据的完整性,并同时使服务器和用户都可以使用。 ## SFTP端口号 ## * SFTP端口号是 [SSH端口22][SSH_22] * 它基本上只是一个SSH服务器。只有用户使用SSH登录到服务器后,才能启动SFTP协议。 * 服务器上没有公开的单独SFTP端口。无需为防火墙配置另一个漏洞。 ## 适用于Windows和Mac的SFTP客户端 ## 有许多SFTP客户端实现。许多SSH客户端支持SFTP。 * [Tectia SSH客户端][Tectia SSH] * [WinSCP][] * [FileZilla][] * [PuTTY][] * [Cyberduck][] ## 适用于Linux,Windows和Mac的SFTP服务器 ## SFTP服务器通常是SSH实现的一部分。大多数组织将Tectia SSH或OpenSSH用作服务器。两者都附带了SFTP服务器实现。 * [Windows版Tectia SSH服务器][Tectia SSH] * [适用于IBM z / OS大型机的Tectia SSH服务器][IBM z _ OS_Tectia SSH] * [OpenSSH][] \-Linux和Unix的开源服务器 * [FileZilla][]\-Windows的免费sftp服务器 # 命令 # # 连接远程服务器 sftp root@192.168.25.140 # 查看当前服务器路径 lpwd # 查看远程服务器路径[默认用户家目录] pwd # 上传文件 put [本地文件的地址] [服务器上文件存储的位置] # 下载文件 get [服务器上文件存储的位置] [本地要存储的位置] # 退出 exit和quit !command * 这个是指在linux上执行command这个命令, 比如!ls是列举linux当前目录下的东东, !rm a.txt是删除linux当前目录下的a.txt文件。 * 这个命令非常非常有用, 因为在sftp> 后输入命令, 默认值针对sftp服务器的, 所以执行rm a.txt删除的是sftp服务器上的a.txt文件, 而非本地的linux上的a.txt文件。 # 使用 # $ sftp root@192.168.0.21 The authenticity of host '192.168.0.21 (192.168.0.21)' can't be established. ECDSA key fingerprint is SHA256:+3EGhCZO4X2XzLff9ocdL4EBQTlYjGikILgXh6azGAo. ECDSA key fingerprint is MD5:be:78:3e:fc:a5:39:0c:89:39:96:7b:62:1b:21:26:76. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.21' (ECDSA) to the list of known hosts. root@192.168.0.21's password: Connected to 192.168.0.21. sftp> lpwd Local working directory: /home/oceanstar/CLionProjects/ssh2_learn/build sftp> pwd Remote working directory: /root sftp> ls //远程目录 miniconda3 test3 web sftp> !ls // 本地目录 a.txt CMakeCache.txt CMakeFiles cmake_install.cmake Makefile ssh2_learn sftp> put a.txt 这个是把linux当前目录下的a.txt文件上传到sftp服务器的当前目录下。 sftp> get a.txt Fetching /root/test3/a.txt to a.txt 这个是把sftp服务器当前目录下的a.txt文件下载到linux当前目录下。 * 如果你试图使用get或mget命令复制一个文件夹,sftp会抱怨它`Cannot download non-regular file: /root/test3/` * 这是因为基本的sftp客户端不允许递归复制 * 然而,scp程序将允许您这样做。 * scp命令将不允许您查看sftp服务器上的内容,因此需要使用sftp客户机定位文件。 * 注意:scp命令是一个Unix命令,需要在Unix提示符下运行。不能在SFTP客户端内。 sftp> get test3/ ./ Fetching /root/test3/ to ./test3 Cannot download non-regular file: /root/test3/ scp copy_from copy_to [Linux sftp命令详解][Linux sftp] [在Linux上使用SFTP访问文件—写的很好][Linux_SFTP] [Link 1]: https://www.ssh.com/ssh/sftp/ [SSH_22]: https://www.ssh.com/ssh/port [Tectia SSH]: https://www.ssh.com/products/tectia-ssh/ [WinSCP]: https://www.ssh.com/ssh/winscp/ [FileZilla]: https://www.ssh.com/ssh/filezilla/ [PuTTY]: https://www.ssh.com/ssh/putty/download [Cyberduck]: https://www.ssh.com/ssh/cyberduck/ [IBM z _ OS_Tectia SSH]: https://www.ssh.com/products/tectia-ssh-zOS [OpenSSH]: https://www.ssh.com/ssh/openssh/ [Linux sftp]: https://www.cnblogs.com/ftl1012/p/sftp.html [Linux_SFTP]: https://kb.wisc.edu/cae/page.php?id=32991
还没有评论,来说两句吧...