Sample code for 30+ languages & platforms
Ruby

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 Ruby Downloads

Ruby
require 'chilkat'

success = false

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

ssh = Chilkat::CkSsh.new()

# First connect to an SSH server.
success = ssh.Connect("example.com",22)
if (success != true)
    print ssh.lastErrorText() + "\n";
    exit
end

# Wait a max of 5 seconds when reading responses..
ssh.put_IdleTimeoutMs(5000)

# Authenticate..
success = ssh.AuthenticatePw("myLogin","myPassword")
if (success != true)
    print ssh.lastErrorText() + "\n";
    exit
end

# After the SSH object is connected and authenticated, we use it
# as the underlying transport in our SCP object.
scp = Chilkat::CkScp.new()

success = scp.UseSsh(ssh)
if (success != true)
    print scp.lastErrorText() + "\n";
    exit
end

# 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".
jsonEnvVars = Chilkat::CkJsonObject.new()
jsonEnvVars.put_EmitCompact(false)
jsonEnvVars.UpdateString("LCS_PASSWORD","secret")
jsonEnvVars.UpdateString("MY_TEST_NAME","abc")
strEnvVars = jsonEnvVars.emit()

print strEnvVars + "\n";

# Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
# prior to doing the upload or download.
scp.put_SendEnv(strEnvVars)

# Do the upload..
remotePath = "starfish.jpg"
localPath = "qa_data/jpg/starfish.jpg"
success = scp.UploadFile(localPath,remotePath)
if (success != true)
    print scp.lastErrorText() + "\n";
    exit
end

print "SCP upload file success." + "\n";

# Disconnect
ssh.Disconnect()