一:使用jumpserver(堡垒机可以登录,登录堡垒机后,跳转相应服务器)
1). 新建文件 login.sh,复制如下命令
!/usr/bin/expect -f
#设置超时时间
set timeout 3
#这里设置机器密码
set password 密码
#连接
spawn ssh -i ~/.ssh/密码文件 用户名@跳板机ip
#如果返回的内容包含*yes/no*,发送yes
expect "*Enter passphrase for key*" {send "$password\r;"}
interact
2)登录时, 执行 expect login.sh
注意: 使用expect 命令需要安装expect和tcl (因为expect 依赖tcl)
- 安装expect
1.1 yum 安装
yum安装就比较简单了,直接运行yum install expect就可以了.
yum install expect
1.2 源码安装
源码安装前我们需要安装unzip和gcc
yum install unzip gcc -y
源码安装我们需要下载两个源码包。tcl源码包和expect源码包。
下载tcl源码包
cd /tmp &&wget http://core.tcl.tk/tcl/zip/release/tcl.zip
下载expect源码包
wget https://jaist.dl.sourceforge.net/project/expect/Expect/5.45.3/expect5.45.3.tar.gz
我们需要先编译安装tcl,因为expect包依赖于tcl。
解压压缩包并编译安装tcl
unzip tcl.zip && cd ./tcl/unix
./configure && make && make install
解压压缩包并编译安装expect.
cd /tmp && tar -xzvf expect5.45.3.tar.gz && cd expect5.45.3/
./configure && make && make install
检查是否安装好(显示安装好的版本号就是已经安装好了)并创建软链接。
expect -v
出现
expect version 5.45.3
即安装成功
最后软链接
ln -s /usr/local/bin/expect /usr/bin/expect
二:使用堡垒机的隧道模式 (堡垒机不可登录)
在堡垒机中加入生成的公钥,借助堡垒机登录服务器;
- 直接使用命令登录实际服务器
ssh -i ~/.ssh/堡垒机私钥文件 实际服务器用户名@实际服务器ip -p 22 -o ProxyCommand='ssh -p 堡垒机端口 堡垒机用户名@堡垒机ip -W %h:%p'
2.也可以将该命令放入到ssh脚本中,执行脚本即可
2.1 选定一个目录
2.2 vim login.sh (脚本名随意取)
复制如下代码即可
# /usr/bin/ssh
ssh -i ~/.ssh/udesk_rsa webuser@10.1.251.69 -p 22 -o ProxyCommand='ssh -p 6979 bastion@120.55.63.178 -W %h:%p'
2.3 登录时,直接 sh login.sh 即可