在linux终端下使用scp与远程windows传输文件

来源:互联网 发布:python编程实例 编辑:程序博客网 时间:2024/05/18 17:00


这几天遇到了个问题,需要在linux终端下往远程windows xp(同一局域网)传输文件。 由于之前在该linux下都是往远程的linux传输文件,而当时使用的是scp。远程切到windows以后,也想继续使用scp来完成,在网上搜集了一下资料,可以通过安装openssh for windows来实现。


openssh for windows,官网在国内无法访问,我是通过镜像网站来下载的,版本为3.8p1。安装过程此处略过。说一下安装过后的基本配置。

  • 打开命令行,切换到openssh安装目录中的bin文件夹,执行如下命令:
        mkgroup -l >> ..\etc\group        mkpasswd -l -u ziven >> ..\etc\passwd
        其中ziven是windows上的用户的用户名。
  • 修改防火墙,例外当中添加22端口(默认ssh端口,如果在etc\sshd_config当中更改了port的值,此处应该是相应的值)。
  • 如果总是提示无法切换到/home/ziven目录(No such files or directory),可以使用编辑器打开安装目录下的etc\passwd文件,将刚刚ziven用户对应的/home/ziven更改为其他的目录(已经存在的目录),例如更改为/cygdrive/c/ziven(即c:\ziven文件夹)。

此时应该已经可以在远程使用scp来完成复制了,语法还是之前的语法,此处特别需要注意的一项是,远程windows当中的路径的表示方法。由于一开始没有看帮助文档,总是写不对路径,后来查看帮助文档才了解到,路径的正确写法(默认情况下)应该是(假设路径为D:\test\data\):

/cygdrive/d/test/data/

所以如果要甚至本地文件test到刚刚的目录,命令应该是:

scp test ziven@10.130.9.72:/cygdrive/d/test/data/


PS:

后续将继续添加ssh公钥认证以及修改默认的路径表示法。

0 0
原创粉丝点击