以前用脚本scp文件时,都是以.ssh打通为基础的。

但是在脚本中使用scp在机器之间拷贝文件,输入密码成为问题。

第一种方法,用到了expect。

脚本如下:

#! /usr/bin/expect -f

spawn scp 1 koven@192.168.0.2:

expect "*password:"

send "your password\r"

expect eof

当然不只是scp,其它命令也可以用expect自动化

循环处理:

spawn scp 1 koven@192.168.0.2:

for { set i 1 } {$i<500} {incr i} {

expect {"*password:" {send "koven\r"}

"*(yes/no)*" {send "yes\r"}

}

}

注意大括号之间有空格 。

第二种方法,使用密钥文件。

这里假设主机A(192.168.100.3)用来获到主机B(192.168.100.4)的文件。

在主机A上执行如下命令来生成配对密钥:

ssh-keygen -t rsa

遇到提示回车默认即可,公钥被存到用户目录下.ssh目录,比如root存放在:

/root/.ssh/id_rsa.pub

将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys,

到主机A中执行命令和主机B建立信任,例(假设主机B的IP为:192.168.100.4):

scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys

下面就可以用scp、ssh命令不需要密码来获取主机B的文件了

ssh 192.168.100.4 回车就不需要密码了。

注:其实id_rsa.pub内容添加到对方机器的authorized_keys中就行了。

—————————————————————————————————–

#!/usr/bin/expect -f

set password 密码

spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径

set timeout 300

expect "用户名@目标机器ip's password:" #注意:这里的“用户名@目标机器ip” 跟上面的一致

set timeout 300

send "$password\r"

set timeout 300

send "exit\r"

expect eof

附:scp参数

-r:拷贝目录

-c:允许压缩

一个完整的例子

#!/usr/bin/expect -f

set password 123456

#download

spawn scp root@192.168.1.218:/root/a.wmv /home/yangyz/

set timeout 300

expect "root@192.168.1.218's password:"

set timeout 300

send "$password\r"

set timeout 300

send "exit\r"

expect eof

#upload

spawn scp /home/yangyz/abc.sql root@192.168.1.218:/root/test.sql

set timeout 300

expect "root@192.168.1.218's password:"

set timeout 300

send "$password\r"

set timeout 300

send "exit\r"

expect eof

喜欢 (0)or分享 (0)

linux scp 输入密码,scp 在脚本中使用输入密码的解决方法相关推荐

  1. Linux下C/C++程序编译链接加载过程中的常见问题及解决方法

    Linux下C/C++程序编译链接加载过程中的常见问题及解决方法 1 头文件包含的问题 报错信息 该错误通常发生在编译时,常见报错信息如下: run.cpp:2:10: fatal error: dl ...

  2. linux oracle查询乱码问题,linux中oracle中文乱码解决方法

    乱码问题的根源是字符集的修改,下面我们来看一下linux中oracle中文乱码解决方法. 查看客户端的语言编码设置: 配置文件中的配置: cat ~/.bash_profile 注意修改配置信息:ex ...

  3. 在油猴脚本中添加css样式的方法

    由于项目要求,需要在系统页面注入dom元素,且对这些注入的元素在UI界面层有美观度要求,就避免不了要对其CSS样式优化. 通常在油猴脚本中添加CSS样式的方法如下: 一.引入外部css文件 // @r ...

  4. linux安装vscode菜单乱码,在Ubuntu 18.04系统下vscode中zsh乱码的解决方法

    以下为你介绍在Ubuntu 18.04 LTS系统下vscode中zsh乱码的解决方法. 详情 在Ubuntu 18.04 LTS系统下安装了zsh和agnoster主题,但是出现了终端中有乱码的情况 ...

  5. linux不能强制显卡分辨率,Linux系统装显卡驱动及分辨率不正常的解决方法

    Linux系统装显卡驱动及分辨率不正常的解决方法 发布时间:2014-06-13 16:09:53来源:红联作者:velcbo 驱动安装: 这里得说明一下,安装新的显卡驱动也有不完美的地方,就是开机进 ...

  6. Linux执行可执行文件提示No such file or directory的解决方法

    Linux执行可执行文件提示No such file or directory的解决方法 查阅资料后,原因是系统位数与该可执行文件需要的lib库位数不匹配. 用uname命令打印系统信息,发现系统是6 ...

  7. 无法找到脚本文件adsutil.vbs的解决方法

    这篇文章主要介绍了iis7或iis7.5中无法找到脚本文件adsutil.vbs的解决方法,需要的朋友可以参考下 adsutil.vbs是什么,详细请参阅adsutil.vbs脚本基本用法. adsu ...

  8. 动态服务器值 回放报错 没有关联到_性能测试每天两个知识点-web性能脚本回放不成功的解决方法...

    性能测试过程中,绝大部分项目都是web项目的性能测试,而对于大部分性能测试人员认为web项目就是录制脚本,然后修改脚本回放,所有好多人认为性能测试没有难度就是录脚本 ,其实好多性能测试人员也没搞清楚录 ...

  9. mysql开发问题解决_开发过程中mysql常见问题的解决方法

    本篇文章给大家带来的内容是关于开发过程中mysql常见问题的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录开发过程中遇到mysql相关的问题以及解决方法,长期更新. 远 ...

  10. linux安装 中文乱码怎么解决方法,Linux安装GBK/GB2312程序显示乱码的五种解决方法...

    不少用户在Linux系统中安装GBK或GB2312的时候遇到了乱码问题,这主要是系统默认语言是uft8所导致,对于该问题可用五种方法进行解决,接下来是小编为大家收集的Linux安装GBK/GB2312 ...

最新文章

  1. .Net中如何操作IIS(源代码)
  2. mysql with语句_MySQL列举数据库(SHOW DATABASES语句)
  3. Mysql binlog日志及binlog恢复数据库操作
  4. 如何解决局域网内传输速度过慢问题
  5. 神策数据多少含金量?PICOOC 有品帮你智能称量
  6. Flink :刷屏 forceKillApplication over null,Retrying immediately The Client is Stopped
  7. 间歇输入数据的数据处理设计模式
  8. UGUI的ScrollRect
  9. 美通企业日报 | 山姆开启新一轮价格下调;环旭电子拟4.5亿美金收购欧洲第二大EMS公司...
  10. Nginx 安全漏洞
  11. android-下拉更多列表
  12. 大学计算机应用基础及上机实验指导,计算机应用基础上机实验指导
  13. element-plus 兼容低版本浏览器问题(uc内核 55)
  14. python - 图像处理 - 图片拼接和堆叠
  15. MINIO-Bucket数据迁移方案
  16. 漏斗周期漏斗数据关联优化
  17. oracle怎么出出awr报告,如何在Oracle中生成AWR报告
  18. 以马丁格尔(翻倍加仓)为基础的长线交易策略
  19. 高通dw9800W_actuator流程总结
  20. cd ..、cd / 和 cd ~ 的区别

热门文章

  1. golang json 格式化输出对象
  2. 虚拟化与元宇宙:人类文明演化的奇点与治理
  3. 微信官方你真的懂OAuth2?Spring Security OAuth2整合企业微信扫码登录
  4. git reflog 时光穿梭机
  5. 05_JUC强大的辅助类
  6. html+css鼠标悬停发光按钮![HTML鼠标悬停的代码]使用HTML + CSS实现鼠标悬停的一些奇幻效果!
  7. 2019.10.26日常总结兼一码学成普及模拟4比赛选解
  8. 工程下有一个红叉,但是可以照常运行
  9. 万字长文读透 Redis
  10. zynq中的BootROM