Sample code for 30+ languages & platforms
B4X

Setting Environment Variables for SCP Transfers

See more SCP Examples

Demonstrates how to set remote environment variables for an SCP transfer.

Note 1: This example requires Chilkat v9.5.0.79 or greater.

Note 2: Setting environment variables for SCP is only supported by some SSH servers.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

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

Dim ssh As ChilkatSsh
ssh.Initialize("ssh")

'  First connect to an SSH server.
success = ssh.Connect("example.com", 22)
If success <> True Then
    Log(ssh.LastErrorText)
    Return
End If


'  Wait a max of 5 seconds when reading responses..
ssh.IdleTimeoutMs = 5000

'  Authenticate..
success = ssh.AuthenticatePw("myLogin", "myPassword")
If success <> True Then
    Log(ssh.LastErrorText)
    Return
End If


'  After the SSH object is connected and authenticated, we use it
'  as the underlying transport in our SCP object.
Dim scp As ChilkatScp
scp.Initialize("scp")

success = scp.UseSsh(ssh)
If success <> True Then
    Log(scp.LastErrorText)
    Return
End If


'  Specify the environment variables to be set in JSON as follows.
'  This example sets two environment variables.  One is named "LCS_PASSWORD" and the other "MY_TEST_NAME".
Dim jsonEnvVars As ChilkatJsonObject
jsonEnvVars.Initialize
jsonEnvVars.EmitCompact = False
jsonEnvVars.UpdateString("LCS_PASSWORD", "secret")
jsonEnvVars.UpdateString("MY_TEST_NAME", "abc")
Dim strEnvVars As String = jsonEnvVars.Emit

Log(strEnvVars)

'  Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
'  prior to doing the upload or download.
scp.SendEnv = strEnvVars

'  Do the upload..
Dim remotePath As String = "starfish.jpg"
Dim localPath As String = "qa_data/jpg/starfish.jpg"
success = scp.UploadFile(localPath, remotePath)
If success <> True Then
    Log(scp.LastErrorText)
    Return
End If


Log("SCP upload file success.")

'  Disconnect
ssh.Disconnect