ssh免输入及多tab clone的脚本

来源:互联网 发布:mac 关闭手写输入 编辑:程序博客网 时间:2024/06/05 04:22

  1. 安装expect

       

$sudo apt-get install expect

其他linux版本用户请酌情编译源码安装。

  2.编写脚本

        我放在了/home/xx/utils目录中,

      

$vi sshlogin.exp

内容如下:

  

#!/usr/bin/expect# This script needs one argument to(s) connect to remote server:# host = IP Addreess of remote UNIX server, no hostname# For example:#  ./sshadmin 192.168.1.11 admin admin#set Variablesset timeout 30set host [lindex $argv 0]set port [lindex $argv 1]set username [lindex $argv 2]#support to compose produce env password with static part and dynamic partset password [lindex $argv 3]spawn ssh $username@$host -p $portexpect "*password:"send -- "$password\r"#using 'interact' to stop execute spawninteract
3.修改.bash_profile,该文件在用户根目录下(~/.bash_porfile),添加内容如下:

 

source .bashrc


4.在.bash_aliases文件中配置登录信息(信息比较敏感,请酌情使用),如无该文件则创建之,例子如下:

   

alias log56="/home/xxx/utils/sshlogin.exp ip port  username passwd"alias log88="/home/xxx/utils/sshlogin.exp ip port username passwd"

每一条alias定义一个登录信息,登录时使用该名称即可,其他信息请配置完整(tips:sshserver的默认端口为22哦).

   保存,运行如下命令:

 

$. ~/.bash_aliases

5.配置ssh session复制

  运行如下命令:

 

$vi ~/.ssh/config

添加如下内容:

  

host *ControlMaster autoControlPath ~/.ssh/master-%r@%h:%p


赋予600权限

$chmod 600 ~/.ssh/config

配置完毕。在根目录下直接输入aliase的名字如:log56或者log88就可以登录相应的机器,第二次登录时毋须验证即可登录。

0 0
原创粉丝点击