Thoir do chliant SSH Go an ceangal a dh'fhosgail SOCKS
Dèan dial air an t-seòladh SSH le x/net/proxy, an uair sin tòisich x/crypto/ssh air an net.Conn a thig às.
Bheir an dialer SOCKS an giùlan; nì am pasgan SSH an crathadh-làimhe SSH air. Chruthaicheadh gairm air ssh.Dial an dèidh sin ceangal air leth an àite a bhith a' cleachdadh a' ghiùlain sin.
Faodaidh gnìomh cuideachaidh ann an aplacaid a tha mu thràth a' cleachdadh x/net/proxy agus x/crypto/ssh an cliant SSH rèitichte a thilleadh:
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
}'S e ainmean nam pasgan an seo golang.org/x/net/proxy agus golang.org/x/crypto/ssh. Comharraichidh proxyAddr an èistear SOCKS; comharraichidh sshAddr an fhrithealaiche mu dheireadh mar host:port.
Thoir seachad ann an config àbhaisteach cleachdaiche SSH na h-aplacaid, na dòighean dearbhaidh agus HostKeyCallback. 'S urrainn don phasgan knownhosts an callback sin a thogail bho fhaidhle known_hosts earbsach. Cuir ainm-òstair an t-seòlaidh a-steach do NewClientConn gus an cleachd co-fhreagradh iuchair an òstair an dearbh-aithne SSH a thathar an dùil.
Cha tagh an argamaid nil teisteas SOCKS sam bith. Airson seòlaidhean SSH poblach ceadaichte, 's urrainn do chlàr gun chunntas bhon liosta proxies SOCKS5 proxyAddr a thoirt seachad ma cheadaicheas e fìor òstair agus port SSH. Nuair a tha feum air, thoir seachad proxy.Auth le cunntas a' phroxy; fuirichidh dearbhadh SSH ann an config.
Gabh NewClient ris na sruthan a-steach de sheanail is de dh'iarrtasan a bheir NewClientConn air ais agus làimhsichidh e an innealan cliant sin. Dùin an cliant SSH a thèid a thilleadh nuair a chrìochnaicheas an obair aige. Feumaidh làimhseachadh cheangal ann an cinneasachadh poileasaidh dialaidh cuibhrichte agus crathadh-làimhe cuideachd; chan eil an gnìomh cuideachaidh seo ach a' sealltainn gluasad a' ghiùlain.