程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Go x / crypto / ssh —如何通过堡垒节点建立与私有实例的ssh连接大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Go x / crypto / ssh —如何通过堡垒节点建立与私有实例的ssh连接?

开发过程中遇到Go x / crypto / ssh —如何通过堡垒节点建立与私有实例的ssh连接的问题如何解决?下面主要结合日常开发的经验,给出你关于Go x / crypto / ssh —如何通过堡垒节点建立与私有实例的ssh连接的解决方法建议,希望对你解决Go x / crypto / ssh —如何通过堡垒节点建立与私有实例的ssh连接有所启发或帮助;

无需使用nc命令“ x / crypto / ssh”,甚至可以更直接地执行此操作,因为有一种方法可以从远程主机拨打连接并将其显示为net.Conn

一旦有了ssh.ClIEnt,您就可以使用该Dial方法net.Conn在您和最终主机之间获取虚拟主机。然后,您可以使用将其转换为新ssh.Connssh.NewClientConn,并使用创建新ssh.ClIEntssh.NewClient

// connect to the bastion host
bClIEnt, err := ssh.Dial("tcp", bastionAddr, config)
if err != nil {
    log.Fatal(err)
}

// Dial a connection to the service host, from the bastion
conn, err := bClIEnt.Dial("tcp", serviceAddr)
if err != nil {
    log.Fatal(err)
}

ncc, chans, reqs, err := ssh.NewClIEntConn(conn, serviceAddr, config)
if err != nil {
    log.Fatal(err)
}

sClIEnt := ssh.NewClIEnt(ncc, chans, reqs)
// sClIEnt is an ssh clIEnt connected to the service host, through the bastion host.

解决方法

我想实现此方案:在AWS上,我有一个VPC,在其中部署了公共和私有子网。在公共子网中,我有一个“堡垒”实例,而在私有子网中,有一个节点在运行某些服务(又称为“服务实例”)。通过使用*
nux ssh命令,我可以执行以下操作从本地笔记本电脑连接到“服务实例”:

ssh -t -o ProxyCommand="ssh -i <key> ubuntu@<bastion-ip> nc %h %p" -i <key> ubuntu@<service-instance-ip>

我有一个Go程序,想做以下事情:

我已经尝试过,但无法执行与执行相同的过程

ssh -t -o ProxyCommand="ssh -i <key> ubuntu@<bastion-ip> nc %h %p" -i <key> ubuntu@<service-instance-ip>

有人可以帮我举个例子吗?谢谢!

便说一句,我发现了这一点:https :
//github.com/golang/go/issues/6223,这意味着它绝对能够做到这一点,对吗?

大佬总结

以上是大佬教程为你收集整理的Go x / crypto / ssh —如何通过堡垒节点建立与私有实例的ssh连接全部内容,希望文章能够帮你解决Go x / crypto / ssh —如何通过堡垒节点建立与私有实例的ssh连接所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:/cryptosshx