Swift
Swift
SSH Commands to Cisco Switch
See more SSH Examples
Demonstrates how to establish an SSH session with a Cisco switch (or something similar) and send commands in a device console session.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let ssh = CkoSsh()!
success = ssh.connect(hostname: "172.16.16.100", port: 22)
if success != true {
print("\(ssh.lastErrorText!)")
return
}
// Authenticate using login/password:
success = ssh.authenticatePw(login: "myLogin", password: "myPassword")
if success != true {
print("\(ssh.lastErrorText!)")
return
}
// Start a shell session.
var channelNum: Int = ssh.quickShell().intValue
if channelNum < 0 {
print("\(ssh.lastErrorText!)")
return
}
// If the CISCO switch returns a prompt with "#", then read until we get the prompt.
// (It's not actually required that we do this, but it helps to know that all is OK at this point..)
success = ssh.channelReceive(untilMatch: channelNum, matchPattern: "#", charset: "utf-8", caseSensitive: true)
if success != true {
print("\(ssh.lastErrorText!)")
return
}
// Show what we received so far:
print("\(ssh.getReceivedText(channelNum: channelNum, charset: "utf-8")!)")
// Send a "show clock" command.
success = ssh.channelSendString(channelNum: channelNum, strData: "show clock\n", charset: "utf-8")
// Read the output to the next interactive prompt.
success = ssh.channelReceive(untilMatch: channelNum, matchPattern: "#", charset: "utf-8", caseSensitive: true)
if success != true {
print("\(ssh.lastErrorText!)")
return
}
print("\(ssh.getReceivedText(channelNum: channelNum, charset: "utf-8")!)")
// Send another command and get the output, and so on...
success = ssh.channelSendString(channelNum: channelNum, strData: "some other command\n", charset: "utf-8")
success = ssh.channelReceive(untilMatch: channelNum, matchPattern: "#", charset: "utf-8", caseSensitive: true)
if success != true {
print("\(ssh.lastErrorText!)")
return
}
print("\(ssh.getReceivedText(channelNum: channelNum, charset: "utf-8")!)")
ssh.disconnect()
}