Sample code for 30+ languages & platforms
PureBasic

SFTP using SOCKS Proxy

See more SFTP Examples

Demonstrates how to connect to an SFTP/SSH server through a SOCKS4 or SOCKS5 proxy.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkSFtp.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    sftp.i = CkSFtp::ckCreate()
    If sftp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; To use a SOCKS4 or SOCKS5 proxy, simply set the following
    ; properties prior to connecting:
    ; The SOCKS hostname may be a domain name or 
    ; IP address:
    CkSFtp::setCkSocksHostname(sftp, "www.mysocksproxyserver.com")
    CkSFtp::setCkSocksPort(sftp, 1080)
    CkSFtp::setCkSocksUsername(sftp, "myProxyLogin")
    CkSFtp::setCkSocksPassword(sftp, "myProxyPassword")

    ; Set the SOCKS version to 4 or 5 based on the version
    ; of the SOCKS proxy server:
    CkSFtp::setCkSocksVersion(sftp, 5)

    ; Note: SOCKS4 servers only support usernames without passwords.
    ; SOCKS5 servers support full login/password authentication.

    ; Connect to the SSH server.  
    ; The standard SSH port = 22
    ; The hostname may be a hostname or IP address.
    hostname.s = "sftp.example.com"
    port.i = 22
    success = CkSFtp::ckConnect(sftp,hostname,port)
    If success <> 1
        Debug CkSFtp::ckLastErrorText(sftp)
        CkSFtp::ckDispose(sftp)
        ProcedureReturn
    EndIf

    ; Your application is now connected to an SFTP/SSH server 
    ; through a SOCKS4 or SOCKS5 proxy. 
    ; ..


    CkSFtp::ckDispose(sftp)


    ProcedureReturn
EndProcedure