美文网首页
用java 运行proxyCommand 命令,带来命令交互式问

用java 运行proxyCommand 命令,带来命令交互式问

作者: 瑾兰 | 来源:发表于2018-10-15 11:45 被阅读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库

    2、java交互式命令行调研

    3、Netcat, ProxyCommand et les rebonds Ssh

    4、Tunnel Ssh

    5、透过SSH代理穿越跳板机的方法

    6、使用 Java 进行 OpenSSH 和 PuTTY private key 密钥格式的解析与转换

    相关文章

      网友评论

          本文标题:用java 运行proxyCommand 命令,带来命令交互式问

          本文链接:https://www.haomeiwen.com/subject/stcfzftx.html