由于某种原因,Golang SSH 客户端无法连接到我的 EC2 实例。它抛出以下错误:
ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
这是我的代码:
package main
import (
"fmt"
"github.com/helloyi/go-sshclient"
)
func main() {
client, err := sshclient.DialWithKey("ip:port", "ubuntu", "my_key.pem")
if err != nil {
fmt.Println(err)
return
}
out, err := client.Cmd("help").Output()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(out))
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我在另一台计算机上运行此代码时,连接没有任何错误。所以我认为这一定是电脑的问题,而不是我的代码的问题。我还尝试使用 Paramiko 客户端连接到 Python 中的实例,它工作完美。当然我尝试使用连接sshCMD 和 MobaXTerm 客户端中的命令进行连接 - 两者都有效。我尝试使用其他 Golang SSH 客户端golang.org/x/crypto/ssh,但它不起作用(同样的错误)。
感谢您的帮助。
显然,这是文件的问题go.mod。两者golang.org/x/crypto都已golang.org/x/sys过时,一旦我更新它们,它就开始工作。感谢@kkleejoe 的帮助。
| 归档时间: |
|
| 查看次数: |
6938 次 |
| 最近记录: |