免密码从windows复制文件到linux

免密码从windows复制文件到linux

2018-7-25 作者: 张子阳 分类: Linux

有时候,我们需要使用编码的方式将文件从Windows系统发送到Linux系统上,这篇文章将记录如何实现这一过程。

一个实际的例子是:现有的程序运行在Windows服务器上,需要将一些文件传输到运行在Linux的Hive数据仓库中。也许有更好的方案可以直接传给Hive,但一种间接的方案是先把文件发到Linux上,然后在Linux上使用load data读入到Hive中。

下载并安装putty

Putty不仅可以作为连接linux系统的客户端,也提供了一个叫做pscp.exe的工具,用于将文件从windows直接拷贝至Linux系统。如果没有安装putty,先前往putty官网下载并安装:https://www.putty.org

使用pscp传输文件

在Windows系统上,Putty的默认安装目录位于:C:\Program Files\PuTTY。打开cmd命令行工具,使用cd命令,进入到该目录下。然后,在D盘根目录创建一个hello.txt文件,尝试将该文件发送至 linux上的 /root/downloads文件夹下。

C:\Program Files\PuTTY>pscp D:\hello.txt root@192.168.1.56:/root/downloads root@192.168.1.56's password: hello.txt | 0 kB | 0.0 kB/s | ETA: 00:00:00 | 100%

因为还没有配置授权密钥,所以此时仍需要输入密码,这个密码输入是没有回显的,正确输入root密码后,可以看到传输已经成功了。

生成客户端密钥

其实使用pscp传文件的认证模式和ssh是一致的,建议先看下这篇文章:linux上配置ssh实现免密登录

现在使用Putty自带的另一个工具,puttygen,来生成密钥对。该工具也位于C:\Program Files\PuTTY文件夹下。

运行pscp

选择RSA,然后点击Generate。接下来晃动鼠标,以鼠标位置作为随机数来来生成Key。

生成密钥

保存私钥

在对话框中点击“save private key”,命名为key.ppk,并保存至D:\根目录下。

保存私钥

复制公钥

复制公钥

复制对话框上面文本框的公钥,然后执行下面的语句,将公钥加至Linux系统的authorized_keys文件中:

# echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAkOCtqdeNszoEszhJvO9WMBsydQ12GQMsMtjD/VBgWl8JilwanfMrjH55SA3YBuw9Dtmy+epMl9fcuoCOMFbYq3sxmKHwft2x9m+g0chPDioeL9Mgscrx+1hbJQokVbS7xnWc2uKrTYcMvs+x2KsFoT5YTEdCbRGXhaTWt0e1y3gUNyNH1AbWlH1m9Rwvg8BICuNcqP/Qd5NtktOoFzO3EBSrKdUrNuIiQX3eYJ62d3nomKmjPr6/Bcx47VqQK+b7eU1Ywmz7SGow9FZpBOPxVJiA6GC87eksH4wxXhGB2cp+d88t29az5f+vsbDbsSGCSHxrbkKtolFBnONQNpUqKw== rsa-key-20180725" >> ~/.ssh/authorized_keys

再次复制文件

再次执行pscp,使用-i标记指定刚才生成的私钥位置,就可以成功复制文件到linux系统了。

C:\Program Files\PuTTY>pscp -i D:\key.ppk D:\hello.txt root@192.168.1.56:/root/downloads hello.txt | 0 kB | 0.0 kB/s | ETA: 00:00:00 | 100%

这样,通过命令行发送文件到linux就成功了,接下来当需要使用编程的方式来发送时。可以启动一个cmd命令行进程,再将上面的语句发送过去执行就可以了。

感谢阅读,希望这篇文章能给你带来帮助!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏惨绿少年

SSH服务详解

第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Wo...

60600
来自专栏云计算教程系列

如何在CentOS上使用双重身份验证

在本教程中,您将学习如何在CentOS 7上使用一次性密码进行SSH上的双重身份验证。

29830
来自专栏java达人

将linux下的rm命令改造成mv到指定的目录下

来源:博客园-BigBao的博客 链接:http://www.cnblogs.com/smail-bao/p/6347347.html(点击文末阅读原文前往) ...

312100
来自专栏Bug生活2048

搭建Ghost 博客详细教程之连接云服务器

这里注意下,新手在创建好SSH密钥后一定记得要绑定你的云服务器,我就踩过这样的坑。

36230
来自专栏潇涧技术专栏

Using Git with multiple Public Keys

很多时候,如果我们在多个网站有了Git账号,例如Github、GitCafe、CodingNet等,当我们与不同网站的代码库进行连接的时候可能会因为我们没有配置...

8620
来自专栏Youngxj

emlog后台登录失败邮件通知

14430
来自专栏云计算教程系列

如何在Ubuntu 14.04上保护Nginx

即使使用默认设置,Nginx也是一个非常安全可靠的Web服务器。但是,有很多方法可以进一步保护Nginx。

19120
来自专栏IT可乐

Hadoop中ssh+IP、ssh+别名免秘钥登录配置

1、为什么要进行 SSH 无密码验证配置?   Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(S...

32160
来自专栏魏艾斯博客www.vpsss.net

LNMP 1.4 正式版安装测试记录及自动生成 Let’s Encrypt 免费证书

19420
来自专栏源码之家

去除word文档保护及去掉打开密码

81140

扫码关注云+社区

领取腾讯云代金券