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.

Artaigilean co-cheangailte