我正在尝试连接到我们客户的 SFTP 服务器,并使用 MS Windows 自动发送文件。我从客户端收到的详细信息不包含密码。相反,我使用 PuTTY 获得了公钥-私钥对。
典型使用的连接字符串如下
open sftp://username:password.SFTPURL:port -hostkey="ssh-dss 1024 XXXXXXX"
但是我不明白如何在此连接中指定私钥,而不是密码。我如何告诉脚本私钥在哪里,以及在使用公钥连接时是否有特定的关键字要使用?
我对此还很陌生,所以请耐心等待。
谢谢!
答案1
是否提供了 SFTP 客户端工具,或者您可以使用您选择的工具?因为如果您有选择权,那么我建议您尝试Syncplify.me FTP 脚本!,它允许你编写如下脚本,使用无密码公钥认证:
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.