Chinaunix首页 | 论坛 | 博客
  • 博客访问: 383247
  • 博文数量: 67
  • 博客积分: 1486
  • 博客等级: 上尉
  • 技术积分: 610
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-22 18:38
个人简介

...

文章分类
文章存档

2024年(1)

2021年(2)

2016年(9)

2015年(34)

2011年(14)

2010年(7)

分类: LINUX

2015-06-17 14:42:30

sshpass+ssh+expect非交互密码登陆
  • 实现ssh自动登陆 试了下目前有三种方法
1 生成公钥
2 使用expect
3 sshpass+ssh

  • 主要介绍sshpass 用于非交互的ssh 密码验证,shpass 参数 ssh,scp命令
将参数password作为密码
-f passwordfile ;//提取文件passwordfile的第一行作为密码
-e //将环境变量SSHPASS作为密码

sshpass -p "321" ssh root@192.168.2.100
sshpass -p "321" scp file.test root@192.168.2.100:/root/test/
对于ssh的第一次登陆,会提示:
“Are you sure you want to continue connecting (yes/no)”,这时用sshpass会不好使,可以在ssh命令后面 -o StrictHostKeyChecking=no
来解决。比如说上面的命令,就可以写作
ssh  abc@192.168.1.100 -o StrictHostKeyChecking=no
  • sshpass+expect实现远程
修改主机密码
localhost:192.168.2.100
remotehost:192.168.2.101
主机系统版本:Ubuntu 12.04

点击(此处)折叠或打开

  1. #!/bin/bash
  2. password="321"
  3. expect -c " set timeout 5
  4.     spawn sshpass -p "321" ssh root@192.168.2.101
  5.     send "passwd\\r"
  6.     expect {
  7.         Enter* {send -- 123\r; exp_continue}
  8.         Retype* {send -- 123\r; exp_continue}
  9.     }
  10. "





阅读(3641) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~