Expect自动生成密钥对
发布时间:2020-12-15 16:17:06 所属栏目:安全 来源:网络整理
导读:1 实现expect自动生成ssh-keygen 然后复制pub key到其他主机 (传入3个参数 缺点只能传public key到一台主机) [root@server1scripts]#catauto_ssh.sh#!/usr/bin/expectsettimeout10setusername[lindex$argv0]setpassword[lindex$argv1]sethostname[lindex$a
1 实现expect自动生成ssh-keygen 然后复制pub key到其他主机 (传入3个参数 缺点只能传public key到一台主机) [root@server1scripts]#catauto_ssh.sh #!/usr/bin/expect settimeout10 setusername[lindex$argv0] setpassword[lindex$argv1] sethostname[lindex$argv2] spawnssh-keygen-trsa expect{ "*fileinwhichtosavethekey*"{ send"nr" send_user"/root/.sshr" exp_continue "*Overwrite(y/n)*"{ send"nnr" } } "*Enterpassphrase*"{ send"nr" exp_continue } "*Entersamepassphraseagain*"{ send"nr" exp_continue } } spawnssh-copy-id-i/root/.ssh/id_rsa.pub$username@$hostname expect{ #firstconnect,nopublickeyin~/.ssh/known_hosts "Areyousureyouwanttocontinueconnecting(yes/no)?"{ send"yesr" expect"password:" send"$passwordr" } #alreadyhaspublickeyin~/.ssh/known_hosts "password:"{ send"$passwordr" } "Nowtryloggingintothemachine"{ #ithasauthorized,donothing! } } expecteof 2 实现上述脚本, 传入一批主机,并把public key传到一批主机上 实现过程:创建循环脚本和主机列表清单txt 使用循环语句重复执行expect脚本 (利用上述expect脚本 不用传入参数即可循环执行) 用法:把3个文件放在/scritps/之下 主机名/IP写入 serverip.txt 修改auto_issue_SSHpubkey.sh里的密码 [root@server1scripts]#catauto_issue_SSHpubkey.sh #!/bin/bash user="root" passwd="rootpasswd" foriin`cat/scripts/serverip.txt`;do /scripts/auto_ssh.sh$user$passwd$i done [root@server1scripts]#catserverip.txt 192.168.8.1* 192.168.8.2* (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |