SFTP ( SSH文件传输协议)是一个安全文件协议,用于通过加密的SSH传输访问,管理和传输文件。
传统的FTP协议相比,SFTP提供了FTP的所有功能,并且易于配置。
只允许文件传输的scp command不同,sftp命令允许你对远程文件执行一系列操作并恢复文件传输。
在本教程中linux ssh 传文件,我们向你展示如何使用Linux sftp命令。
在开始之前
要通过SFTP传输和管理文件,你必须对远程系统有写权限,
传输大文件时,建议在screen或tmux会话中运行sftp命令。
运行sftp命令的目录是本地工作目录。
建立SFTP连接
SFTP在客户端服务器模型中工作,它是SSH的一个子系统,支持所有SSH认证机制。
尽管默认情况下会设置传统密码身份验证并且易于使用,但是如果您定期通过SSH/SFTP连接到服务器,建议您创建SSH密钥并设置无密码SFTP登录。
要打开到远程系统的SFTP连接,请使用sftp命令,后跟远程服务器用户名和IP地址或域名:sftp remote_username@server_ip_or_hostname
如果使用密码身份验证连接到主机,系统将提示你输入用户密码。
连接后,将看到sftp提示符,你可以开始与远程计算机交互:Connected to remote_username@server_ip_or_hostname.
sftp>
如果远程SSH服务器未侦听默认端口22,请使用-oPort选项指定备用端口:sftp -oPort=custom_port remote_username@server_ip_or_hostname
SFTP命令
大多数SFTP命令与您在Linux Shell提示符中使用的命令相似或相同。
通过键入help或?,你可以获得所有可用的SFTP命令的列表。helpAvailable commands:
bye Quit sftp
cd path Change remote directory to 'path'
...
...
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
使用SFTP导航
当你登录到远程服务器时硬盘安装linux,你的当前工作目录是远程用户的主目录,可以通过键入以下命令检查:pwdRemote working directory: /home/remote_username
要列出文件和目录,请使用ls命令:ls
若要导航到其他目录,请使用cd命令,例如要切换到/tmp目录,请键入:cd /tmp
以上命令用于导航和处理远程位置。
sftp shell还提供用于本地导航,信息和文件管理的命令,本地命令以字母l作为前缀。
例如要打印本地工作目录,请键入:cd lpwdLocal working directory: /home/local_username
使用SFTP传输文件
使用SFTP,你可以在两台机器之间安全地传输文件,
如果在台式机上工作,你可以使用GUI SFTP客户端,如WinSCP或FileZilla连接到远程服务器并下载或上传文件。
在没有GUI的服务器上工作时,sftp命令非常有用,并且希望传输文件或对远程文件执行其他操作。
使用SFTP命令下载文件
登录到远程服务器后,当前工作目录为远程用户主目录。
使用sftp命令下载文件时,这些文件将下载到你键入sftp命令的目录,
要从远程服务器下载单个文件,请使用get命令:get filename.zip
输出应该如下所示:Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
如果要使用其他名称保存下载的文件,请将新名称指定为第二个参数:get filename.zip local_filename.zip
要从远程系统下载目录,请使用递归-r选项:get -r remote_directory
如果文件传输失败或中断,可以使用reget命令恢复它,
reget的语法与get的语法相同:reget filename.zip
使用SFTP命令上传文件
若要将文件从本地计算机上载到远程SFTP服务器linux操作系统安装,请使用put命令:put filename.zip
输出应该如下所示:Uploading filename.zip to /home/remote_username/filename.zip
filename.zip 100% 12MB 1.7MB/s 00:06
如果要上载的文件不在当前工作目录中,请使用文件的绝对路径。
使用put时,可以使用与get命令相同的选项。
要上载本地目录,请键入:put -r locale_directory
要恢复中断的上传:reput filename.zip
使用SFTP进行文件操作
通常,要在远程服务器上执行任务,可以通过SSH连接到它,并使用shell终端完成工作,但是在某些情况下,用户可能只有SFTP访问远程服务器。
SFTP允许你执行一些基本的文件操作命令,以下是使用SFTP shell的一些示例:
获取有关远程系统的磁盘使用情况的信息:dfSize Used Avail (root) %Capacity
2776 18002580 19067476 7%
在远程服务器上创建新目录:mkdir directory_name
重命名远程服务器上的文件:rename file_name new_file_name
删除远程服务器上的文件:rm file_name
删除远程服务器上的目录:rmdir directory_name
更改远程系统上文件的权限:chmod 644 file_name
更改远程系统上文件的所有者:chown user_id file_name
必须向chown和chgrp命令提供用户ID。
用以下命令更改远程文件的组所有者:chgrp group_id file_name
完成工作后,键入bye或quit关闭连接。
结束语
在本教程中linux ssh 传文件,我们已经向你展示了如何使用sftp命令将文件下载并上传到远程SFTP服务器。
你还可以设置一个基于SSH密钥的身份验证并连接到你的Linux服务器,而无需输入密码。
如果经常连接到同一个系统,通过在SSH配置文件。