【发布时间】:2020-02-11 05:11:39
【问题描述】:
登录Linux box后,无需认证即可连接MongoDB。
如何从 Go 代码连接到这样的 MongoDB 实例?我需要使用用户名和密码通过 SSH 连接到 Linux 机器,然后连接到 MongoDB。
尝试了下面的代码,但它抛出:“没有可达的服务器”
在命令提示符下,我可以 ping Linux 机器的 IP 地址,并且我的 IDE 也可以连接到互联网。
mongoDBDialInfo := &mgo.DialInfo{
Addrs: []string{"<LINUX_IP_ADDRESS>"},
Timeout: 60 * time.Second,
Database: "<MONGODB_DATABASE_NAME>",
Username: "<LINUX_USERNAME>",
Password: "<LINUX_PASSWORD>",
}
mongoSession, err := mgo.DialWithInfo(mongoDBDialInfo)
if err != nil {
log.Fatalf("CreateSession: %s\n", err)
}
【问题讨论】:
-
mgo.DialInfo使用 mongo 身份验证,而不是 ssh 凭据。您的“我需要使用用户名和密码通过 SSH 连接到 Linux 机器”是 ssh 隧道。见godoc.org/golang.org/x/crypto/ssh