对于一个golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《通过堡垒主机进行 ssh》,主要介绍了,希望对大家的知识积累有所帮助,快点
对于一个golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《通过堡垒主机进行 ssh》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!
问题内容我刚刚开始使用 Go,我正在尝试通过堡垒主机设置 ssh 连接,我成功地通过了堡垒主机的身份验证,但在 lan 主机上失败了。我读过很多帖子,我发现这个答案非常有帮助。但我不确定那个人的配置中会有什么。我的代码如下。我试图只使用公钥,如果它很重要,我会在Mac上启动,对linux进行身份验证,然后无法与另一个linux主机建立第二个连接。普通 ssh 工作正常
package main
import (
"fmt"
"golang.org/x/crypto/ssh"
"io/ioutil"
"log"
"os/user"
)
const tcp = "tcp"
const port = "22"
func bastionconnect(bastion string, localh string) *ssh.client {
var usr, _ = user.current()
var homedir = usr.homedir
fmt.printf("home is %v\n", homedir)
key, err := ioutil.readfile(homedir + "/.ssh/id_rsa")
if err != nil {
fmt.print("i'm dying at reading ssh key")
panic(err)
}
signer, err := ssh.parseprivatekey(key)
if err != nil {
fmt.print("i'm dying at parsing private key")
panic(err)
}
fmt.printf("i'm returning public keys for %v", signer.publickey())
config := &ssh.clientconfig{
user: usr.username,
hosTKEycallback: ssh.insecureignorehostkey(),
auth: []ssh.authmethod{
ssh.publickeys(signer),
},
}
bclient, err := ssh.dial(tcp, bastion+":22", config)
if err != nil {
log.fatal(err)
}
fmt.print("passed bastion host\n")
// dial a connection to the service host, from the bastion
conn, err := bclient.dial(tcp, fmt.sprintf("%s:%s", localh, port))
if err != nil {
log.fatal(err)
}
ncc, chans, reqs, err := ssh.newclientconn(conn, fmt.sprintf("%s:%s", localh, port), config)
if err != nil {
fmt.printf("error trying to conntect to %s via bastion host\n%v\n", localh, err)
log.fatal(err)
}
sclient := ssh.newclient(ncc, chans, reqs)
return sclient
}
func main() {
var bastion = "jumpdev.example.org"
var lanhost = "devserver01"
bastionconnect(bastion, lanhost)
}
我看到的最后一条日志行是error试图通过堡垒主机
连接到devserver01,错误为
2020/02/03 14:40:17 ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey]
请原谅所有需要的 printfs 来查看发生了什么。 在第二次连接中,公钥配置是否会弄乱它?我也检查过这个项目,但似乎有点矫枉过正。
上面的代码很好,我在一个我总是连接的盒子上遇到了 authorized_keys
问题,但忘记了我本地的 .ssh/config
:(
我想对此进行一些扩展,所以这不仅仅是哎呀,我搞砸了帖子。对于 lanhost 代理连接的完整堡垒,我更新了 GISt
here
本篇关于《通过堡垒主机进行 SSH》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!
--结束END--
本文标题: 通过堡垒主机进行 SSH
本文链接: https://www.lsjlt.com/news/595980.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0