码迷,mamicode.com
首页 > 其他好文 > 详细

shell---scp远程传输文件不需要手动输入密码

时间:2014-09-17 18:53:53      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:linux scp sshpass expect

1.通过sshpass让ssh记住密码实现ssh自动登陆
(1)安装sshpass
sudo apt-get install sshpass
或者
下载sshpass-1.05.tar.gz
shell>tar xvf sshpass-1.05.tar.gz
shell>cd sshpass-1.05
shell>make && make install
(2)测试
shell>/usr/local/bin/sshpass -p 密码 ssh root@127.0.0.1
(3)设置避免公钥确认
ssh在首次链接时会提示公钥确定,这会导致某些自动化任务失败
shell>sudo vim /etc/ssh/ssh_config
##添加下面一句
StrictHostKeyChecking no
(4)把本机的~/examples.desktop传到192.168.1.1的~目录下
sshpass -p 123456 scp ~/examples.desktop root@192.168.1.1:~

2.通过expect传输文件
(1)安装expect
sudo apt-get install expect
(2)测试
把192.168.1.1的/home/test/soft.tar传输到本机的/home/test
#!/usr/bin/expect -f
#filename: scp_expect.sh

set password 123456
spawn scp -r  test@192.168.1.1:/home/test/soft.tar /home/test
set timeout 3
expect {
"yes/no" {send "yes\r";exp_continue}
}
set timeout 3
send "$password\r"
##传输需要的时间
set timeout 300
send "exit\r"
expect eof


本文出自 “笔记” 博客,请务必保留此出处http://sunflower2.blog.51cto.com/8837503/1554419

shell---scp远程传输文件不需要手动输入密码

标签:linux scp sshpass expect

原文地址:http://sunflower2.blog.51cto.com/8837503/1554419

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!