windows使用scp向linux传文件的方法

16 篇文章 0 订阅
传文件时有密码验证,代码中为了避免输入密码,可以在windows中生成公钥,然后放到linux的.ssh文件夹中;

步骤:

①windows安装openssh,方法参考https://blog.csdn.net/qq_33481635/article/details/118052151
使用powershell运行下面的指令
Get-WindowsCapability -Online | ? Name -like ‘OpenSSH*’ ,查询有关openssh安装情况

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0等待ssh服务器安装

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0等待ssh客户端的安装

②生成密钥的方式,参考文档https://blog.csdn.net/weixin_46144186/article/details/124062702
使用powershell运行下面的指令
ssh-keygen,出现判断时,直接回车即可;
最后在路径C:\Users\Administrator.ssh下会生成一个id_rsa.pub,将这个文件拷贝到linux的./ssh目录下,并重命名文件的名称为authorized_keys,若有这个文件,直接追加:cat id_rsa.pub >> authorized_keys即可;

③现在可以在windows中使用命令行传文件了(使用的root,其他的用户好像不能传,能传再更新此文档)
SCP -r D:/Project/Publish/* root@192.168.1.11:/root/share/ --整个文件夹内文件,包含子文件夹
SCP D:\downloads\kafka_2.12-3.0.0.tgz root@192.168.1.11:/root/software --单个文件

④若使用代码的话,参考文档https://blog.csdn.net/shayueqing/article/details/124485102
在这里插入图片描述
在这里插入图片描述
(注意OpenSSH文件夹需整个的拷贝)
scp模仿上面的写法;(其他方式写的话吗,在waitForFinished时,总是返回false,使用上述的例子好像不会)

注意:代码使用scp时,安装路径下的C:\Windows\System32\OpenSSH路径可能会访问不到,所以将此路径拷贝一份出来,放到其他可以访问到的路径即可,代码就可以调通scp,这个坑了我一两天,使用批处理bat里面放scp的指令也不行,使用system()直接调用也不行,但是使用鼠标双击却可以,总之,代码调用时,就是没有权限能访问到openssh目录。
-------------------------------就这些内容,记录一下-------------------------------

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值