expect 批量自动部署ssh 免密登陆
[root@node2 ssh]# cat auto_ssh.sh #!/usr/bin/expect -f ########################################## #通过SSH服务将id.pas.pub公钥推送到目标服务器实现免密登陆 #参数:1.system_username # 2.system_password # 3.system_hostname # 4.CommandList [多个命令间;间隔] #返回值: # 0 成功 # 1 参数个数不正确 # 2 SSH 服务器服务没有打开 # 3 SSH 用户名密码不正确 # 4 连接SSH服务器超时 ########################################## proc usage {} { regsub ".*/" $::argv0 "" name send_user "Usage:\n" send_user "$name system_username system_password system_hostname CommandList\n" exit 1 } if {[llength $argv] !=3} { usage } #设置变量值 set timeout 10 set system_username [lindex $argv 0] set system_password [lindex $argv 1] set system_hostname [lindex $argv 2] #检查主机是否可达 spawn ping ${system_hostname} -w 2 expect { -nocase -re "100% packet loss" { send_error "Ping ${system_hostname} is unreachable, Please check the IP address.\n" exit 1 } } #超时时间 set timeout 60 set resssh 0 spawn ssh-keygen -t rsa expect { "*file in which to save the key*" { send "\n\r" send_user "/root/.ssh\r" exp_continue "*Overwrite (y/n)*"{ send "n\n\r" } } "*Enter passphrase*" { send "\n\r" exp_continue } "*Enter same passphrase again*" { send "\n\r" exp_continue } } spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $system_username@$system_hostname expect { #first connect, no public key in ~/.ssh/known_hosts "Are you sure you want to continue connecting (yes/no)?" { send "yes\r" expect "password:" send "$system_password\r" } #already has public key in ~/.ssh/known_hosts "password:" { send "$system_password\r" } "Now try logging into the machine" { #it has authorized, do nothing! } } expect eof
本文来自博客园,作者:IT老登,转载请注明原文链接:https://www.cnblogs.com/nb-blog/p/10475676.html
分类:
expect交互式登陆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)