linux scp 输入密码,scp 在脚本中使用输入密码的解决方法
以前用脚本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 在脚本中使用输入密码的解决方法相关推荐
- Linux下C/C++程序编译链接加载过程中的常见问题及解决方法
Linux下C/C++程序编译链接加载过程中的常见问题及解决方法 1 头文件包含的问题 报错信息 该错误通常发生在编译时,常见报错信息如下: run.cpp:2:10: fatal error: dl ...
- linux oracle查询乱码问题,linux中oracle中文乱码解决方法
乱码问题的根源是字符集的修改,下面我们来看一下linux中oracle中文乱码解决方法. 查看客户端的语言编码设置: 配置文件中的配置: cat ~/.bash_profile 注意修改配置信息:ex ...
- 在油猴脚本中添加css样式的方法
由于项目要求,需要在系统页面注入dom元素,且对这些注入的元素在UI界面层有美观度要求,就避免不了要对其CSS样式优化. 通常在油猴脚本中添加CSS样式的方法如下: 一.引入外部css文件 // @r ...
- linux安装vscode菜单乱码,在Ubuntu 18.04系统下vscode中zsh乱码的解决方法
以下为你介绍在Ubuntu 18.04 LTS系统下vscode中zsh乱码的解决方法. 详情 在Ubuntu 18.04 LTS系统下安装了zsh和agnoster主题,但是出现了终端中有乱码的情况 ...
- linux不能强制显卡分辨率,Linux系统装显卡驱动及分辨率不正常的解决方法
Linux系统装显卡驱动及分辨率不正常的解决方法 发布时间:2014-06-13 16:09:53来源:红联作者:velcbo 驱动安装: 这里得说明一下,安装新的显卡驱动也有不完美的地方,就是开机进 ...
- Linux执行可执行文件提示No such file or directory的解决方法
Linux执行可执行文件提示No such file or directory的解决方法 查阅资料后,原因是系统位数与该可执行文件需要的lib库位数不匹配. 用uname命令打印系统信息,发现系统是6 ...
- 无法找到脚本文件adsutil.vbs的解决方法
这篇文章主要介绍了iis7或iis7.5中无法找到脚本文件adsutil.vbs的解决方法,需要的朋友可以参考下 adsutil.vbs是什么,详细请参阅adsutil.vbs脚本基本用法. adsu ...
- 动态服务器值 回放报错 没有关联到_性能测试每天两个知识点-web性能脚本回放不成功的解决方法...
性能测试过程中,绝大部分项目都是web项目的性能测试,而对于大部分性能测试人员认为web项目就是录制脚本,然后修改脚本回放,所有好多人认为性能测试没有难度就是录脚本 ,其实好多性能测试人员也没搞清楚录 ...
- mysql开发问题解决_开发过程中mysql常见问题的解决方法
本篇文章给大家带来的内容是关于开发过程中mysql常见问题的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录开发过程中遇到mysql相关的问题以及解决方法,长期更新. 远 ...
- linux安装 中文乱码怎么解决方法,Linux安装GBK/GB2312程序显示乱码的五种解决方法...
不少用户在Linux系统中安装GBK或GB2312的时候遇到了乱码问题,这主要是系统默认语言是uft8所导致,对于该问题可用五种方法进行解决,接下来是小编为大家收集的Linux安装GBK/GB2312 ...
最新文章
- .Net中如何操作IIS(源代码)
- mysql with语句_MySQL列举数据库(SHOW DATABASES语句)
- Mysql binlog日志及binlog恢复数据库操作
- 如何解决局域网内传输速度过慢问题
- 神策数据多少含金量?PICOOC 有品帮你智能称量
- Flink :刷屏 forceKillApplication over null,Retrying immediately The Client is Stopped
- 间歇输入数据的数据处理设计模式
- UGUI的ScrollRect
- 美通企业日报 | 山姆开启新一轮价格下调;环旭电子拟4.5亿美金收购欧洲第二大EMS公司...
- Nginx 安全漏洞
- android-下拉更多列表
- 大学计算机应用基础及上机实验指导,计算机应用基础上机实验指导
- element-plus 兼容低版本浏览器问题(uc内核 55)
- python - 图像处理 - 图片拼接和堆叠
- MINIO-Bucket数据迁移方案
- 漏斗周期漏斗数据关联优化
- oracle怎么出出awr报告,如何在Oracle中生成AWR报告
- 以马丁格尔(翻倍加仓)为基础的长线交易策略
- 高通dw9800W_actuator流程总结
- cd ..、cd / 和 cd ~ 的区别