SOCKS ডায়েলেৰে পৰিবহন যোগান ধৰে; SSH পেকেজে তাৰ ওপৰত SSH হেণ্ডশ্বেক কৰে। পিছত ssh.Dial মাতিলে সেই পৰিবহন ব্যৱহাৰ নকৰি এটা পৃথক সংযোগ সৃষ্টি হয়।

x/net/proxy আৰু x/crypto/ssh ব্যৱহাৰ কৰি থকা এপ্লিকেচনত এটা সহায়ক ফাংচনে সংৰূপিত SSH ক্লায়েন্ট ঘূৰাই দিব পাৰে:

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
}

ইয়াত পেকেজৰ নাম golang.org/x/net/proxy আৰু golang.org/x/crypto/ssh। proxyAddr এ SOCKS শ্ৰৱণকৰ্তাক চিনাক্ত কৰে; sshAddr এ host:port ৰূপত চূড়ান্ত চাৰ্ভাৰক চিনাক্ত কৰে।

config ত এপ্লিকেচনৰ স্বাভাৱিক SSH ব্যৱহাৰকৰ্তা, প্ৰমাণীকৰণ পদ্ধতি আৰু HostKeyCallback যোগান ধৰক। knownhosts পেকেজে বিশ্বস্ত known_hosts ফাইলৰ পৰা সেই callback তৈয়াৰ কৰিব পাৰে। গন্তব্য হষ্টনাম NewClientConn লৈ পঠিয়াওক যাতে হষ্ট-কী মিলাই ইচ্ছাকৃত SSH পৰিচয় ব্যৱহাৰ কৰে।

nil যুক্তিয়ে কোনো SOCKS প্ৰমাণপত্ৰ নিৰ্বাচন নকৰে। অনুমোদিত ৰাজহুৱা SSH গন্তব্যৰ বাবে SOCKS5 প্ৰক্সি তালিকাৰ এটা একাউণ্টবিহীন এণ্ট্ৰিয়ে proxyAddr যোগান ধৰিব পাৰে যদিহে ই প্ৰকৃত SSH হষ্ট আৰু পৰ্ট অনুমোদন কৰে। প্ৰয়োজন হ'লে প্ৰক্সি একাউণ্ট থকা proxy.Auth পঠিয়াওক; SSH প্ৰমাণীকৰণ config তেই থাকে।

NewClient এ NewClientConn ৰ পৰা অহা চেনেল আৰু অনুৰোধ প্ৰবাহ লাভ কৰি সেই ক্লায়েন্ট যন্ত্ৰ চলায়। কাম শেষ হ'লে ঘূৰাই দিয়া SSH ক্লায়েন্ট বন্ধ কৰক। উৎপাদনত সংযোগ পৰিচালনাৰ বাবে সীমিত ডায়েলিং আৰু হেণ্ডশ্বেক নীতিৰো প্ৰয়োজন; এই সহায়কে কেৱল পৰিবহন হস্তান্তৰ দেখুৱায়।

সম্পৰ্কিত প্ৰবন্ধ