Estabelece uma conexão com um servidor de SFTP ( SSH File Transfer Protocol ) utilizado o modo de autenticação por usuário com a chave publica e senha da chave publica.
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 AppServer. 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():ConnectPubKey( < cServer >, < nPort >, < cUser > )
Parâmetros
Os parâmetros que esta função recebe são descritos abaixo:
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cServer | caractere | Endereço do servidor SFTP a ser conectado | X | |
nPort | caractere | Número da porta do servidor | X | |
cUser | caractere | Login do usuário | X | |
cUserPassword | caractere | Senha do usuário | X |
Retorno
Conforme a Tabela abaixo esta função retonará o valor numérico. Além disso, o console.log conterão informações importantes adicionais caso for detectados erros.
Retorno | Tipo | Descrição |
---|---|---|
nRet | numérico | Status de conexão ao servidor SFTP |
Exemplo
user Function sftp_open_close_connection_ex2()
local nRet1, nRet2
local oSftp1 := tSFTPClient():new()
nRet1 := oSftp1:ConnectPubKey("server1.exemplo.local","2222","josevitor")
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.
Segue a lista de códigos de status de retorno indicando sucesso ou falha de conexão:
Código | Símbolo | Descrição |
---|---|---|
0 | SFTP_OK | Sucesso de conexão ao servidor SFTP |
-1 | SFTP_HOST_NOT_FOUND | Servidor remoto não encontrado |
-2 | SFTP_SOCKET_FAIL | Falha no socket da conexão |
-3 | SFTP_CONNECTION_FAIL | Falha ao conectar no servidor remoto |
-4 | SFTP_SESSION_INIT_FAIL | Falha ao inicializar o socket |
-5 | SFTP_HANDSHAKE_FAIL | Falha no HandShake da camada SSH |
-6 | SFTP_SFTP_INIT_FAIL | Falha ao inicializar o subsistema de SFTP |
-28 | SFTP_KNOWNHOSTS_READ_FAIL | Falha ao realizar leitura do host |
-30 | SFTP_KNOWNHOSTS_FINGERPRINT_FAIL | Falha ao realizar leitura da assinatura |
-31 | SFTP_KNOWNHOSTS_MISMATCH | Assinatura não-conforme no arquivo de KNOWNHOSTS |
-32 | SFTP_KNOWNHOSTS_NOTFOUND | Assinatura não-encontrada no arquivo de KNOWNHOSTS |
-33 | SFTP_KNOWNHOSTS_CHECK_FAILURE | Falha ao verificar o arquivo de KNOWNHOSTS |