Histórico da Página
Pré-Requisitos: Putty, OpenSSH e OpenSSL, OpenSSL e Windows Subsystem for Linux (WSL)
Observação Importante: Não se deve utilizar a ferramenta PUTTYGEN para geração dos certificados de LOGIN.
Recomenda-se utilizar apenas a ferramenta ssh-keygen apenas para este processo de geração e a openssl para eventual conversão de formatos de chaves, caso for necessário.
Atualmente, existem vários tipos de certificados de Login que podem ser utilizados no SFTP. São elas:
...
Para gerarmos um par de chaves publica e privada compatível com o subsistema de SFTP do Protheus, devemos realizar os seguintes procedimentos:
Para gerar os pares de chaves públicas e privadas, é necessário utilizar o seguinte comando (Sempre com o parâmetro -m PEM):
ssh-keygen -t rsa -m PEM -f id_rsa
Este comando, gerará um par de certificados público e privado normalmente chamada de (id_rsa.pub e id_rsa) respectivamente. Em ambiente Linux/WSL, favor verificar se os formatos de chaves, com o auxílio do comando file id_rsa*, estão conforme a tabela abaixo:
Arquivo Gerado | Tipo da chave |
---|---|
id_rsa | PEM RSA private key |
id_rsa.pub | OpenSSH RSA public key |
Feito este procedimento, todo o conteúdo do arquivo id_rsa.pub deverá ser acrescentado dentro do arquivo ~/.ssh/authorized_keys no usuário do servidor SFTP em que terá acesso.
No arquivo APPSERVER.INI, devemos configurar, conforme o exemplo abaixo, a seção SFTP para que as funções de download e upload funcionem corretamente:
[SFTP]
privatekey = D:/Keys/id_rsa
publickey = D:/Keys/id_rsa.pub
certpassword = teste12345
Note que o certificado, neste exemplo, foi gerado com uma senha "teste12345". Caso o certificado tenha sido gerado sem nenhuma senha, devemos omitir a chave certpassword nesta seção SFTP.
Observações importantes
Nota: A ferramenta ssh-keygen suporta os seguintes modos de geração do certificados:
...
IMPORTANTE: Caso for observado que o certificado de login gerado nao não esteja no formato PEM, é necessário converter o certificado (no arquivo id_rsa) Os formatos: "RFC4716" (RFC 4716/SSH2 pública ou chave privada) e "PKCS8" (PKCS8 pública ou chave privada) suportados pela a ferramenta ssh-keygen, não estao homologados com subsistema de SFTP do Application Server podendo ocorrer erros ao realizar o Login caso forem utilizados.
...
openssl rsa -in id_rsa -outform pem > id_rsa.pem
Caso necessitar gerar um certificado no formato Putty, para algum outro fim sem ser para uso no Protheus, é possível converter o certificado para o formato PPK utilizando o seguinte comando:
puttygen id_rsa -o minhachave.ppk -O private
Lembrando novamente que este certificado no formato Putty (PPK) não é suportado pelo o Protheus não devendo ser utilizado.
Feito estes procedimentos, é interessante conferir novamente se o formato dos certificados estão de acordo com o reportado ao executar o comando no WSL ou Linux (considerando que os arquivos de certificados estão na mesma pasta):
file *
Ao executar o comando o resultado deverá ser:
...
Nota: O formato da chave privada (id_rsa) nunca deverá ser OpenSSH RSA private key uma vez que este não é suportado.
No arquivo APPSERVER.INI, devemos configurar, conforme o exemplo abaixo, a seção SFTP para que as funções de download e upload funcionem corretamente:
[SFTP]
privatekey = D:/Keys/id_rsa
publickey = D:/Keys/id_rsa.pub
certpassword = teste12345
Note que o certificado, neste exemplo, foi gerado com uma senha "teste12345". Caso o certificado tenha sido gerado sem nenhuma senha, devemos omitir a chave certpassword nesta seção SFTP.IMPORTANTE: Nunca se deve utilizar certificados no formato PUTTY (PPK) para a plataforma Protheus pois não são compatíveis