首页 > 知识库 > 学习教育 >

shell脚本实现ssh自动登录功能分享(如何不用指定密钥文件就使用SSH登录)

学习教育 2022-12-12 18:28:13
文件名:ssh_auto_login复制代码 代码如下:#!/usr/bin/expect### ssh模拟登陆器## ...更多shell脚本实现ssh自动登录功能分享的内容,欢迎关注我们的专题频道。

如何不用指定密钥文件就使用SSH登录

shell脚本实现ssh自动登录功能分享

shell脚本实现ssh自动登录功能分享(如何不用指定密钥文件就使用SSH登录)

文件名:ssh_auto_login

复制代码 代码如下:#!/usr/bin/expect### ssh模拟登陆器## @author zhiyuan ##if {$argc<4} { puts "Error params: $argv" puts "Expect params :user passwd ip port [translate_id]" exit 1}set default_passcode "这里填通道机的默认密码"set user [lindex $argv 0]set password [lindex $argv 1]set ip [lindex $argv 2]set port [lindex $argv 3]set timeout 10while 1 { spawn ssh -p $port $user@$ip  #如果最后的字符匹配则执行命令r结尾表示确定 expect {  "*yes/no" { send "yesr";exp_continue}  "*password:" { send "$passwordr" } }        #这里是需要通过通道机登陆时的匹配流程,根据需要自行修改。 expect {  "*PASSCODE:" {    send_user "请输入通道机动态密码:";   expect_user -re "(.*)n"   set random_passcode $expect_out(1,string)   send "$default_passcode$random_passcoder"   expect {    "Access Denied" { continue }    "Enter:" { send "1r" }   }   set translate_ip [lindex $argv 4]   if { $translate_ip != "" } {    expect "*):" { send "$translate_ipr" }   }  }  #"Last login:*" { } } break}#无法匹配$,还不知道怎么解决#expect -re "*$" { puts "test123"; send "source /etc/profiler" }#expect "*$" { send "cd ~r" }send_user "login success!"interact

上边是ssh的自动登录,可以配合下边的shell使用,很方便。文件名:xxx_launcher复制代码 代码如下:#!/bin/sh### 服务器登陆器## @author zhiyuan ##channel_user="user_namexxx"channel_passwd="xxxx"#内网通道机internal_ip1=xxx.xxx.xxx.xxx#联通unicom_ip1=xxx.xxx.xxx.xxx#电信telecom_ip1=xxx.xxx.xxx.xxxcase "$1" in ci)  expect ssh_auto_login $channel_user $channel_passwd $internal_ip3 22  cl)  expect ssh_auto_login $channel_user $channel_passwd $unicom_ip1 22 cd)  expect ssh_auto_login $channel_user $channel_passwd $telecom_ip1 22 149)  expect ssh_auto_login channel_user channel_passwd xxx.xx.xxx.xxx 22  49)  expect ssh_auto_login $channel_user $channel_passwd $unicom_ip1 22 需要通道机跳转的ipxxx.xxx.xx *)  echo "帮助信息:"  echo "tthere is not a server named [$1]"  echo "t服务器149:t149"  echo "t服务器49:t49"esac

此时登陆某个服务器的时候就直接 用上述shell带要登录的服务器参数即可,如: ./xxx_launcher 49


shell脚本实现ssh自动登录功能分享拓展阅读

shell脚本实现ssh自动登录功能分享(如何不用指定密钥文件就使用SSH登录)

文件名:ssh_auto_login复制代码 代码如下:#!/usr/bin/expect### ssh模拟登陆器## @author zhiyuan ##if....
以上就是关于shell脚本实现ssh自动登录功能分享(如何不用指定密钥文件就使用SSH登录)的所有内容,希望对你学习有所帮助。

标签: shell脚本实现ssh自动登录功能分享

【免责声明】本站所有文章(含图片和视频)由网站用户自行上传发布,平台仅提供信息存储服务,并不代表本站立场和观点,若有侵犯你的权利,请及时联系我们删除。
Copyright © 2016-2020 shuguohai.com All Rights Reserved. 皖ICP备2022016496号