2017-05-30 222 views
0

我是GoLang的新手,我嘗試使用go連接到遠程服務器。不過,我不斷收到以下錯誤GoLang:「沒有通用的密鑰交換算法」錯誤

Failed to dial: ssh: handshake failed: ssh: no common algorithm for key exchange; client offered: [curve2****-sh****@libssh.org ****-sha*-nis****ecdh-sha2-nistp384 ecdh-sha2-nistp**** diffie-hellman-group14-sha1 diffie-hellman-group1-sha1], server offered: [diffie-hellman-group-exchange-sha***] 
以下

的是,我用它來連接

config := &ssh.ClientConfig{ 

    User: user, 

    HostKeyCallback: nil, 

    Auth: []ssh.AuthMethod{ 

    publicKey, 
    }, 
} 

回答

2

嗯,就像錯誤說的配置,客戶端和服務器沒有他們」任何算法很樂意同意,所以他們不會說話。 Go提供的六個都是它支持的(在openssh所做的12箇中)。該服務器只提供一個這不是任何這些。您的選項:

  1. 說服服務器接受更多的KEX算法;它可能支持更多,並且有人只是超級限制地配置它。
  2. 對x/crypto/ssh自己執行DH Group Exchange,並向上遊發送補丁。
  3. 找到一個不同的客戶端。
+0

如果可能,你能告訴我如何做/任何這些?我對golang和網絡編程非常新,我很感激任何幫助。謝謝 – user1851006