DataFlex
DataFlex
Open a Custom SSH Channel Type
See more SSH Examples
Demonstrates the Chilkat Ssh.OpenCustomChannel method, which requests a channel whose application-defined type is supplied as the only argument. It returns the channel number, or -1 if the server rejects the channel. The server must implement that channel type.
Background: The SSH protocol allows vendor- and application-specific channel types beyond the standard
session and direct-tcpip kinds; by convention these carry an @domain suffix to avoid name collisions. This method is the escape hatch for talking to a server that implements such a type. On rejection, inspect ChannelOpenFailCode to learn why.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSsh
Integer iSshPort
String sPassword
String sChannelType
Integer iChannelNum
String sTemp1
Move False To iSuccess
// Demonstrates the Ssh.OpenCustomChannel method, which requests a custom SSH channel whose
// application-defined type is supplied as the only argument. It returns the channel number,
// or -1 if the server rejects the channel. The server must implement that channel type.
Get Create (RefClass(cComChilkatSsh)) To hoSsh
If (Not(IsComObjectCreated(hoSsh))) Begin
Send CreateComObject of hoSsh
End
Move 22 To iSshPort
Get ComConnect Of hoSsh "ssh.example.com" iSshPort To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSsh To sTemp1
Showln sTemp1
Procedure_Return
End
// Normally you would not hard-code the password in source. You should instead obtain it
// from an interactive prompt, environment variable, or a secrets vault.
Move "mySshPassword" To sPassword
Get ComAuthenticatePw Of hoSsh "mySshLogin" sPassword To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSsh To sTemp1
Showln sTemp1
Procedure_Return
End
// Request an application-defined channel type. The server must support it.
Move "my-custom-channel@example.com" To sChannelType
Get ComOpenCustomChannel Of hoSsh sChannelType To iChannelNum
If (iChannelNum < 0) Begin
Get ComLastErrorText Of hoSsh To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Opened custom channel: " iChannelNum
// The channel is used with the normal channel send, receive, EOF, CLOSE, and release methods.
Send ComDisconnect To hoSsh
End_Procedure