使用公钥认证连接远程 SFTP 服务器的 Windows 脚本

使用公钥认证连接远程 SFTP 服务器的 Windows 脚本

我正在尝试连接到我们客户的 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.

相关内容