Agħti lill-klijent SSH ta' Go l-konnessjoni li fetaħ SOCKS
Iddial id-destinazzjoni SSH b'x/net/proxy, imbagħad inizjalizza x/crypto/ssh fuq in-net.Conn li jirriżulta.
Id-dialer SOCKS jipprovdi t-trasport; il-pakkett SSH iwettaq il-handshake SSH fuqu. Sejħa lil ssh.Dial wara toħloq konnessjoni separata minflok tuża dak it-trasport.
Funzjoni awżiljarja f'applikazzjoni li diġà tuża x/net/proxy u x/crypto/ssh tista' tirritorna l-klijent SSH konfigurat:
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
}L-ismijiet tal-pakketti hawn huma golang.org/x/net/proxy u golang.org/x/crypto/ssh. proxyAddr jidentifika s-semmiegħ SOCKS; sshAddr jidentifika s-server finali bħala host:port.
Ipprovdi fil-config l-utent SSH tas-soltu tal-applikazzjoni, il-metodi ta' awtentikazzjoni u HostKeyCallback. Il-pakkett knownhosts jista' jibni dak il-callback minn fajl known_hosts afdat. Għaddi l-isem tal-host tad-destinazzjoni lil NewClientConn biex it-tqabbil taċ-ċavetta tal-host juża l-identità SSH mahsuba.
L-argument nil ma jagħżel l-ebda kredenzjali SOCKS. Għal destinazzjonijiet SSH pubbliċi permessi, entrata mingħajr kont mil-lista tal-proxies SOCKS5 tista' tipprovdi proxyAddr jekk tippermetti l-host u l-port SSH reali. Meta jkun meħtieġ, għaddi proxy.Auth li jkun fih il-kont tal-proxy; l-awtentikazzjoni SSH tibqa' fil-config.
NewClient jirċievi l-flussi tal-kanali u tat-talbiet li jidħlu li jirritorna NewClientConn u jamministra dik il-mekkanika tal-klijent. Agħlaq il-klijent SSH li jirritorna meta x-xogħol tiegħu jispiċċa. L-immaniġġjar tal-konnessjonijiet fil-produzzjoni jeħtieġ ukoll dialing limitat u politika tal-handshake; din il-funzjoni awżiljarja turi biss il-kunsinna tat-trasport.