sftp [username]@[hostname]
,然后使用密码登录。使用 put [local_file]
命令将本地文件上传到远程服务器。Linux SFTP 上传文件与文件夹指南
一、SFTP简介
SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种基于SSH(Secure Shell)的文件传输协议,与传统的FTP相比,SFTP提供了更强的安全性,通过加密传输数据来防止窃听和篡改,SFTP允许用户在本地和远程系统之间安全地传输文件和目录,并且支持递归复制、权限保留等高级功能。
二、SFTP的基本使用步骤
1. 登录到远程服务器
需要建立与远程服务器的安全连接,假设用户名为username
,远程服务器地址为remote_host
:
sftp username@remote_host
如果使用了SSH密钥进行身份验证,可以指定密钥文件路径:
sftp -i /path/to/keyfile username@remote_host
系统会提示输入密码或使用密钥文件进行认证,成功登录后,将进入SFTP交互模式。
2. 查看帮助
在SFTP交互模式下,可以使用help
命令查看所有可用的命令及其用法。
sftp> help
3. 常用命令
查看目录:列出远程或本地目录的内容。
ls # 列出远程目录内容 lls # 列出本地目录内容
切换目录:更改当前工作的远程或本地目录。
cd remote_directory # 切换到远程目录 lcd local_directory # 切换到本地目录
上传文件:将本地文件上传到远程服务器。
put local_file remote_file # 上传文件并重命名为remote_file
下载文件:从远程服务器下载文件到本地。
get remote_file local_file # 下载文件并重命名为local_file
上传目录:递归上传整个目录及其子目录和文件。
put -r local_directory remote_directory # 上传整个目录
> 注意:如果远程目录不存在,需要先创建相应的目录。
下载目录:递归下载整个目录及其子目录和文件。
get -r remote_directory local_directory # 下载整个目录
创建目录:在远程或本地创建新目录。
mkdir remote_directory # 在远程创建目录 lmkdir local_directory # 在本地创建目录
删除文件或目录:删除远程或本地的文件和目录。
rm remote_file # 删除远程文件 lrm local_file # 删除本地文件 rmdir remote_directory # 删除远程空目录 lrmdir local_directory # 删除本地空目录
退出SFTP会话:结束SFTP会话并断开连接。
bye # 退出并断开连接 exit # 同bye命令
三、实例操作演示
1. 上传文件
假设我们需要将本地文件/home/user/test.txt
上传到远程服务器的/home/user/documents
目录下,并将其重命名为uploaded_test.txt
:
sftp>username@remote_host sftp> pwd # 确认当前工作目录 lcd /home/user # 切换到本地目录 cd /home/user/documents # 切换到远程目录 put test.txt uploaded_test.txt # 上传并重命名文件 bye # 退出SFTP会话
2. 上传目录
假设我们需要将本地目录/home/user/projects
上传到远程服务器的/home/user/backup
目录下:
sftp>username@remote_host sftp> pwd # 确认当前工作目录 lcd /home/user/projects # 切换到本地目录 cd /home/user/backup # 切换到远程目录(可能需要先创建) mkdir -p projects # 如果不存在则创建目录 put -r projects/* # 递归上传目录内容 bye # 退出SFTP会话
>注意:直接使用put -r projects
会导致错误,因为目标目录必须存在且为空,需要先创建目标目录或将内容上传到已存在的目录中。
3. 下载文件
假设我们需要将远程服务器上的文件/home/user/data.csv
下载到本地的/home/user/downloads
目录下,并将其重命名为downloaded_data.csv
:
sftp>username@remote_host sftp> pwd # 确认当前工作目录 lcd /home/user/downloads # 切换到本地目录 cd /home/user # 切换到远程目录 get data.csv downloaded_data.csv # 下载并重命名文件 bye # 退出SFTP会话
4. 下载目录
假设我们需要将远程服务器上的目录/home/user/archives
下载到本地的/home/user/backup
目录下:
sftp>username@remote_host sftp> pwd # 确认当前工作目录 lcd /home/user/backup # 切换到本地目录 cd /home/user # 切换到远程目录 get -r archives # 递归下载目录 bye # 退出SFTP会话
四、常见问题解答(FAQs)
1. SFTP连接失败怎么办?
检查网络连接:确保本地和远程服务器之间的网络连接正常。
验证凭证:确保提供的用户名和密码或密钥文件正确无误。
防火墙设置:检查本地和远程服务器的防火墙设置,确保允许SFTP(通常使用SSH的端口22)。
查看日志:查阅系统日志或SFTP客户端的错误消息,以获取更多关于失败原因的信息。
尝试不同的SSH配置:有时修改~/.ssh/config
文件中的配置可以帮助解决问题,指定使用特定的加密算法或禁用严格主机密钥检查(仅用于测试目的)。
2. 如何保留文件的修改时间和权限?
上传文件时使用-p
参数:该参数告诉SFTP保留文件的原始修改时间、访问时间和权限。
put -p local_file remote_file
确保文件系统的兼容性:某些文件系统可能不支持UNIX风格的权限和时间戳,在这种情况下,即使使用了-p
参数,也可能无法完全保留这些属性。
检查SFTP版本:不同版本的SFTP实现可能在处理文件属性方面存在差异,确保客户端和服务器都使用兼容的版本。
手动设置权限和时间戳:作为最后的手段,可以在上传后使用chmod
和touch
命令手动设置文件的权限和时间戳,不过,这通常不是最佳实践,因为它增加了额外的步骤并可能导致错误。
本文详细介绍了如何在Linux环境下使用SFTP进行文件和文件夹的上传与下载,通过掌握SFTP的基本命令和操作步骤,用户可以方便地在本地和远程系统之间传输数据,同时确保传输过程的安全性,还介绍了常见的问题及其解决方法,帮助用户更好地应对实际使用中的困难,无论是日常维护还是紧急恢复,SFTP都是一个强大而可靠的工具。
以上就是关于“linux sftp 上传”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1305321.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复