Estou tentando me conectar a um servidor SFTP de um cliente nosso e enviar arquivos em um processo automatizado usando o MS Windows. Os detalhes que recebi do cliente não incluem a senha. Em vez disso, tenho o par de chaves pública-privada usando PuTTY.
A string de conexão típica usada é a seguinte
open sftp://username:password.SFTPURL:port -hostkey="ssh-dss 1024 XXXXXXX"
No entanto, não entendo como especificar a chave privada nesta conexão, em vez da senha. Como posso informar ao script onde está a chave privada e se existe uma palavra-chave específica para usar ao conectar-se usando a chave pública?
Eu sou novo nisso, então, por favor, tenha paciência comigo.
Obrigado!
Responder1
A ferramenta cliente SFTP é fornecida ou você pode usar uma de sua escolha? Porque se você tiver liberdade de escolha, eu recomendaria experimentarScript FTP do Syncplify.me!, que permite escrever scripts como este,usando autenticação de chave pública sem senha:
var
Cli: TSFTPClient;
begin
Cli := TSFTPClient.Create;
try
Cli.ServerAddr := 'your.remote.host';
Cli.Username := 'username';
Cli.AddPK('c:\user_key.rsa');
if Cli.Open then
begin
// Add your code here...
// ...
Cli.Close;
end;
finally
Cli.Free;
end;
end.