Tabhair do chliant SSH Go an nasc a d'oscail SOCKS
Déan an sprioc SSH a dhiailiú le x/net/proxy, ansin túsaigh x/crypto/ssh ar an net.Conn a thagann as.
Soláthraíonn an dialer SOCKS an t-iompar; déanann an pacáiste SSH an croitheadh láimhe SSH air. Chruthódh glao ar ssh.Dial ina dhiaidh sin nasc ar leithligh in ionad an t-iompar sin a úsáid.
Is féidir le feidhm chúnta in aip a úsáideann x/net/proxy agus x/crypto/ssh cheana an cliant SSH cumraithe a thabhairt ar ais:
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
}Is iad ainmneacha na bpacáistí anseo golang.org/x/net/proxy agus golang.org/x/crypto/ssh. Sainaithníonn proxyAddr an éisteoir SOCKS; sainaithníonn sshAddr an freastalaí deiridh mar host:port.
Cuir gnáth-úsáideoir SSH na haipe, na modhanna fíordheimhniúcháin agus HostKeyCallback ar fáil i config. Is féidir leis an bpacáiste knownhosts an callback sin a thógáil ó chomhad known_hosts iontaofa. Cuir óstainm an sprioc isteach i NewClientConn ionas go n-úsáidfidh meaitseáil eochair an óstaigh an fhéiniúlacht SSH atá beartaithe.
Ní roghnaíonn an argóint nil aon dintiúir SOCKS. I gcás spriocanna SSH poiblí ceadaithe, is féidir le hiontráil gan chuntas ó liosta seachfhreastalaí SOCKS5 proxyAddr a sholáthar má cheadaíonn sé óstach agus port SSH iarbhír. Nuair is gá, cuir proxy.Auth ina bhfuil cuntas an tseachfhreastalaí; fanann fíordheimhniú SSH i config.
Glacann NewClient leis na sruthanna isteach cainéil agus iarratais a thugann NewClientConn ar ais agus láimhseálann sé an mheaisíneacht chliaint sin. Dún an cliant SSH a thugtar ar ais nuair a chríochnaíonn a chuid oibre. Teastaíonn polasaí diailithe teoranta agus croitheadh láimhe ó láimhseáil nasc i dtáirgeadh freisin; ní dhéanann an fheidhm chúnta seo ach aistriú an iompair a léiriú.