Visual FoxPro
Visual FoxPro
Start SSH Tunnel Keyboard-Interactive Authentication
See more SSH Tunnel Examples
Demonstrates the Chilkat SshTunnel.StartKeyboardAuth method, which begins keyboard-interactive authentication. The only argument is the login name. It returns XML describing the server's prompts, which are answered with ContinueKeyboardAuth.
Background: Keyboard-interactive is the prompt-driven authentication method: the server sends one or more questions — a password, a one-time code, a security question — and the client answers each. This is how a tunnel supports two-factor and other challenge-response schemes. The returned XML says exactly what to ask and whether to mask the input.
Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loTunnel
LOCAL lnSshPort
LOCAL lcInfoRequestXml
LOCAL lnWaitForThreadExit
lnSuccess = 0
* Demonstrates the SshTunnel.StartKeyboardAuth method, which begins keyboard-interactive
* authentication. The only argument is the login name. It returns XML describing the server's
* prompts, which are answered with ContinueKeyboardAuth.
loTunnel = CreateObject('Chilkat.SshTunnel')
* The tunnel forwards accepted local connections to this destination through the SSH server.
loTunnel.DestHostname = "db.internal.example.com"
loTunnel.DestPort = 5432
* Connect to the SSH server. This performs the TCP/proxy connection and SSH handshake, but
* does not authenticate yet.
lnSshPort = 22
lnSuccess = loTunnel.Connect("ssh.example.com",lnSshPort)
IF (lnSuccess = 0) THEN
? loTunnel.LastErrorText
RELEASE loTunnel
CANCEL
ENDIF
* Begin keyboard-interactive authentication. The returned XML describes the server's prompts.
lcInfoRequestXml = loTunnel.StartKeyboardAuth("mySshLogin")
IF (loTunnel.LastMethodSuccess = 0) THEN
? loTunnel.LastErrorText
RELEASE loTunnel
CANCEL
ENDIF
? lcInfoRequestXml
* Answer the prompt(s) with ContinueKeyboardAuth, then call BeginAccepting.
lnWaitForThreadExit = 1
lnSuccess = loTunnel.CloseTunnel(lnWaitForThreadExit)
IF (lnSuccess = 0) THEN
? loTunnel.LastErrorText
RELEASE loTunnel
CANCEL
ENDIF
RELEASE loTunnel