Powershell拷贝文件到远程主机

1,245 阅读1分钟

1.SCP介绍

SCP是建立在SSH协议之上的一个文件传输协议,可以通过SCP命令将本地文件/文件夹拷贝到远程主机,或者将远程主机的文件/文件夹下载到本地。

它的使用方法大致如下:

scp -option source destination

这里的source和destination可以根据我们是要上传或者下载来放置远程主机和本地地址。

我最常用的option是-r,recursive,递归的,也就是说它会遍历该文件夹下的所有子文件夹和文件。

2.上传下载示例

2.1 从远程主机下载文件夹到本地

scp -r user@ssh.example.com:/path/to/remote/source /path/to/local/destination

2.2 从本地上传一个文件夹到远程主机

scp -r /path/to/local/source user@ssh.example.com:/path/to/remote/destination

3.简化操作

在我们开发过程中,通常我们只需要将文件拷贝到一台主机,将每次都要重新输入远程主机的用户名和地址就显得非常麻烦。

所以我们可以编写一个函数,然后将它放到PowerShell的启动执行脚本中。这样之后我们只需要调用这个函数,传入本地目录还有远程目录,就可以省略远程主机的用户名还有地址这一大串字符串了。

  1. 打开Power Shell启动执行脚本
notepad $PROFILE
  1. 在其中添加新函数
function copytoremote($source,$dest){
    scp -r $source osboxes@192.168.0.113:$dest
}
  • 这边我默认使用-r选项,这样不论是文件还是文件夹都可以直接进行拷贝

  • 请将中间的osboxes@192.168.0.113修改成你要连接的远程主机的用户名和IP地址

    • 最好提前设置一下SSH免密登录,这样就不用输入密码了