SSH Windows和Linux远程传输文件
环境
Win10
Windows PowerShell
实现代码
@echo off
set upload=upload
set download=download
if %1 == %upload% (
echo uploading
scp -i <secret key path> %2 <username>@<ip address>:%3
echo uploaded successfully
echo save path : %3
) else (
if %1 == %download% (
echo downloading
scp -i <secret key path> <username>@<ip address>:%2 %3
echo downloaded successfully
echo save path : %3
) else (
echo input error!
)
)
其中,<
和>
包围的字段为需要修改的项目
- 密钥文件
<secret key path>
是云服务器密钥保存的路径,例如C:/Users/User1/.ssh/secret.pem
密钥获取方式可以参见云服务器提供商提供的开发者文档 - 用户名
<username>
为用户名,阿里云服务器默认的用户名为root
- IP地址
<ip addresss>
,为云服务器的公网IP,可以到控制台获取 - 命令行参数
%0 为当前路径
%1 为第一个参数,选择上传或下载
%2 为第二个参数,上传文件的源路径或下载文件的源路径
%3 为第三个参数,上传文件的目标(保存)路径或下载文件的目标(保存)路径
测试
上传
- 从本地上传到远程云服务器
.\scp.bat "upload" .\scp.txt /home
- 结果
uploading
scp.txt 100% 0 0.0KB/s 00:00
uploaded successfully
save path : /home
下载
- 从远程云服务器下载到本地
./scp.bat "download" /home/scp .\
- 结果
downloading
scp.txt 100% 0 0.0KB/s 00:00
downloaded successfully
save path : .\
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!