用java 运行proxyCommand 命令,带来命令交互式问
2018-10-15 本文已影响67人
瑾兰
问题:
linux 运行 proxyCommand 命令 需要交互输入两次密码 ;跳板机密码和目标服务器密码。
解决:
最终要解决的是:跳板机与目标服务器之间 无密码跳转
解决方案:
1、 做公钥认证,不使用秘钥认认证,太麻烦。 需要交互式输入密码;本机、跳板机、目标机器三者已经做过公钥认证。
使用命令能够实现。
2、 UserInfo 实现 UIKeyboardInteractive ,赋值交互式命令的值。
一、ProxyJump
demo:
wkvm2 (模拟本机)、wcl:堡垒机、wkvm1(目标主机)
在wkvm2中~/.ssh/config
文件中写入
Host wkvm1 #目标机名称
HostName 192.168.0.11 #目标机ip
ProxyJump root@192.168.0.85:22 #堡垒机 用户名@IP:22
User root #目标机用户
在 wkvm2 中运行 ssh -J 堡垒机用户@堡垒机IP:22 目标机用户@目标机IP
[root@wkvm2 ~]# ssh -J root@192.168.0.85:22 root@192.168.0.11
root@192.168.0.85's password:
Last login: Fri Oct 12 13:25:16 2018 from 192.168.0.85
[root@wkvm1 ~]#
注意这儿也需要交互输入。
第一次输入yes or no {首次输入,秘钥}
第二次输入堡垒机密码
二、ProxyCommand
ssh -o ProxyCommand='ssh 堡垒机用户@堡垒机IP nc 目标机IP 22' 目标机用户@目标机IP
ssh -o ProxyCommand='ssh root@192.168.0.85 nc 192.168.0.11 22' root@192.168.0.11
注意这个也是需要交互输入的 。
第一次输入yes or no {首次输入,是否保存堡垒机秘钥}
第二次输入堡垒机密码
第三次输入yes or no {首次输入,是否保存目标机秘钥}
第二次输入目标机密码
三、ssh 公钥私钥认证操作及原理
待续
参考链接:
1、JLine :处理控制台输入的java库