Nikeza i-SSH client yakwa-Go uxhumano oluvulwe yi-SOCKS
Xhuma endaweni ye-SSH nge-x/net/proxy, bese uqala i-x/crypto/ssh ku-net.Conn etholakeleyo.
I-dialer ye-SOCKS ihlinzeka ngokuthutha; iphakethe le-SSH lenza ukuxhawulana kwe-SSH phezu kwayo. Ukushaya i-ssh.Dial ngemva kwalokho kuzodala uxhumano oluhlukile esikhundleni sokusebenzisa lokho kuthutha.
Umsebenzi wosizo kuhlelo lokusebenza oselusebenzisa i-x/net/proxy ne-x/crypto/ssh ungabuyisela i-SSH client elungiselelwe:
func dialSSHViaSOCKS(proxyAddr, sshAddr string,
config *ssh.ClientConfig) (*ssh.Client, error) {
dialer, err := proxy.SOCKS5("tcp", proxyAddr, nil, proxy.Direct)
if err != nil {
return nil, err
}
conn, err := dialer.Dial("tcp", sshAddr)
if err != nil {
return nil, err
}
transport, channels, requests, err :=
ssh.NewClientConn(conn, sshAddr, config)
if err != nil {
conn.Close()
return nil, err
}
return ssh.NewClient(transport, channels, requests), nil
}Amagama amaphakethe lapha yi-golang.org/x/net/proxy ne-golang.org/x/crypto/ssh. I-proxyAddr ikhomba isilaleli se-SOCKS; i-sshAddr ikhomba iseva yokugcina njenge-host:port.
Nikeza ku-config umsebenzisi we-SSH ojwayelekile wohlelo, izindlela zokuqinisekisa kanye ne-HostKeyCallback. Iphakethe le-knownhosts lingakha leyo callback kusukela kufayela le-known_hosts elithenjiweyo. Dlulisa igama lomsingathi wendawo ku-NewClientConn ukuze ukuqhathanisa ukhiye womsingathi kusebenzise ubunikazi be-SSH obuhlosiwe.
I-agumenti ye-nil ayikhethi zicwangciso ze-SOCKS. Ezingxenyeni zomphakathi ze-SSH ezivunyelwe, umbhalo ongena-akhawunti ovela kuhlu lwe-proxy ye-SOCKS5 ungahlinzeka nge-proxyAddr uma uvumela umsingathi kanye nechweba le-SSH langempela. Uma kudingeka, dlulisa i-proxy.Auth equkethe i-akhawunti ye-proxy; ukuqinisekisa kwe-SSH kuhlala ku-config.
I-NewClient yamukela imifudlana yejelo neyezicelo engenayo ebuyiswa yi-NewClientConn futhi iphatha lowo mshini weklayenti. Vala i-SSH client ebuyisiwe uma umsebenzi wayo uphela. Ukuphatha ukuxhumana ekukhiqizeni nakho kudinga ukushaya okulinganiselwe kanye nenqubomgomo yokuxhawulana; lo msebenzi wosizo ukhombisa kuphela ukudluliswa kokuthutha.