【问题标题】:Using existing SSH connection to connect to remote host使用现有的 SSH 连接连接到远程主机
【发布时间】:2019-08-05 16:07:43
【问题描述】:

我以前在 python 中使用asyncssh。它有一个特性,你可以提供一个已经可用的连接来连接到一个新的主机。我正在研究 ssh 文档。我没有看到任何可以做到这一点的选项,不确定我是否必须手动进行一些隧道操作。

我想要的是使用具有身份验证的 SSH 连接到一台机器,然后使用该连接连接到另一台具有不同身份验证的机器,然后是第一台机器。

ncmConfig := &ssh.ClientConfig{
    User:            "xyz",
    HostKeyCallback: ssh.InsecureIgnoreHostKey(),
    Auth: []ssh.AuthMethod{
        ssh.Password("xyz!"),
    },
}

routerConfig := &ssh.ClientConfig{
    User:            "xyz1",
    HostKeyCallback: ssh.InsecureIgnoreHostKey(),
    Auth: []ssh.AuthMethod{
        ssh.Password("xyz2"),
    },
}
ncm := "1.1.1.1"
router := "2.2.2.2
conn, err := ssh.Dial("tcp", ncm+":22", ncmConfig)
if err != nil {
    log.Println(err)
}

# how can I use the conn to connect to a new machine.

【问题讨论】:

    标签: go ssh


    【解决方案1】:
    conn2, err := conn.Dial("tcp", router+":22")
    if err != nil {
        log.Println(err)
    }
    
    conn3, chans, reqs, err := ssh.NewClientConn(conn2, router+":22", routerConfig)
    if err != nil {
        log.Println(err)
    }
    
    conn4 := ssh.NewClient(conn3, chans, reqs)
    

    conn4 是新的连接。

    【讨论】:

      猜你喜欢
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 2020-11-07
      • 1970-01-01
      • 2019-10-27
      相关资源
      最近更新 更多