mac使用expect登录跳板机后的机器
两个文档
#!/usr/bin/expect -f #连接文件名字记录 set ip [lindex $argv 0] catch {spawn ssh 1.1.1.1}## ip地址换成自己的 expect "*Opt>*" { send "$ip\r" } interact
上面这个文件是复用ssh连接问题非必需
1、expect文件
#!/usr/bin/expect -f catch {spawn ssh 1.1.1.1}#跳板机地址,如果要指定端口用户和密码建议在ssh。conf里面配置 expect "*password:*" send "$pwd\r" expect "*MFA*" { set code [exec sh -c {oathtool --totp -b DdDdDdDd] ##Dd 为MFA的私钥,生成6位数字密码。 send "$code\r"} expect "*Opt>*" { send "2.2.2.2\r"# 后端机器地址 } interact
文件必须
2、ssh.conf文件。配合上一个文件使用
Host 1.1.1.1 HostName 跳板机 User ls-name Port 22000 ProxyCommand nc -x 127.0.0.1:1080 %h %p #指定了代理端口转发,如果你内网连接是本地可以不指定
Host *## 自动复用ssh
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
需要的文件
expect(软件)
oathtool(软件)
DdDdDdDd] ##Dd 为MFA的私钥
vpn连接(是否本地)