Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 4 Próxima »

Estabelece uma conexão com um servidor de SFTP ( SSH File Transfer Protocol ) utilizando o modo de autenticação por login e senha de usuário e ainda com um chave pública e senha desta chave registradas no INI do Application Server.

Este método se difere do ConnectPubKey pois realiza a autenticação em duas etapas (Usuário + Senha) e (Chaves Pública e Privada + Senha da Chave). É um caso especial onde o servidor SFTP encontra-se configurado para realizar autenticação múltipla por mais de um fator de autenticação.

Pré-requisito

Para que a conexão com o servidor SFTP seja bem sucedida é preciso configurar as chaves pública e privada e a respectiva senha da chave pública na seção [SFTP] do arquivo de configuração do Application Server. Exemplo de como configurar:

[SFTP]
privatekey   = D:\Keys\SFTPDEV_PREFERED\withpass\id_rsa
publickey    = D:\Keys\SFTPDEV_PREFERED\withpass\id_rsa.pub
certpassword = m1nh4S3nH4fl3!SXHL3SSD
ShellExec    = 1

Sintaxe

TSFTPClient():ConnectPubKeyEx( < cServer >, < nPort >, < cUser >, < cUserPassword > )

Parâmetros

Os parâmetros que esta função recebe são descritos abaixo:

NomeTipoDescriçãoObrigatórioReferência
cServercaractereEndereço do servidor SFTP a ser conectadoX
nPortnuméricoNúmero da porta do servidor SFTPX
cUsercaractereLogin do usuárioX
cUserPasswordcaractereSenha do usuárioX

Retorno

Conforme a tabela abaixo, esta função retonará um valor numérico. Além disso, no arquivo console.log serão registradas informações adicionais importantes caso forem detectados erros.

RetornoTipoDescrição
nRetnuméricoStatus de conexão ao servidor SFTP.

Exemplo

user function sftp_open_close_connection_ex1()

  local nRet1, nRet2
  Local oSftp1 := tSFTPClient():new()

  nRet1 := oSftp1:ConnectPubKeyEx("server1.exemplo.local","2222","josevitor", "Fs74!@bz*@54/")
  if (nRet1 <> 0)
    conOut("Falha em conectar ao servidor SFTP")
    return .F.
  endif

  nRet2 := oSftp1:Disconnect()
  if (nRet2 <> 0)
    conOut("Falha em desconectar ao servidor SFTP")
    return .F.
  endif

Return .T.

Observações

Note que neste método de conexão, temos dois tipos de senhas que são a do usuário e a da chave pública, no entanto a senha da chave pública é configurada no arquivo de configuração do Application Server.

Segue a lista de códigos de status de retorno indicando sucesso ou falha de conexão:

CódigoSímboloDescrição
0SFTP_OKSucesso de conexão ao servidor SFTP
-1SFTP_HOST_NOT_FOUNDServidor remoto não encontrado
-2SFTP_SOCKET_FAILFalha no socket da conexão
-3SFTP_CONNECTION_FAILFalha ao conectar no servidor remoto
-4SFTP_SESSION_INIT_FAILFalha ao inicializar o socket
-5SFTP_HANDSHAKE_FAILFalha no HandShake da camada SSH
-6SFTP_SFTP_INIT_FAILFalha ao inicializar o subsistema de SFTP
-28SFTP_KNOWNHOSTS_READ_FAILFalha ao realizar leitura do host
-30SFTP_KNOWNHOSTS_FINGERPRINT_FAILFalha ao realizar leitura da assinatura
-31SFTP_KNOWNHOSTS_MISMATCHAssinatura não-conforme no arquivo de KNOWNHOSTS
-32SFTP_KNOWNHOSTS_NOTFOUNDAssinatura não-encontrada no arquivo de KNOWNHOSTS
-33SFTP_KNOWNHOSTS_CHECK_FAILUREFalha ao verificar o arquivo de KNOWNHOSTS
  • Sem rótulos