无法连接到复制数据工具中的SFTP(带有私钥文件)

时间:2019-05-31 11:17:52

标签: azure-data-factory-2

我正在尝试将数据从SFTP复制到blob,但是在创建SFTP源时卡住了。

我有详细的连接信息,可以轻松地在Filezilla或WinSCP上进行连接。但是,我无法在Azure数据工厂中使用它。

我不是在使用代码,而是在用户界面上。

创建SFTP源的页面上的连接详细信息: 通过集成运行时连接:AutoResolveIntegrationRuntime(默认)

Host: xyz

Port: 22 (can't remove it as it doesn't like it)

SSH Host Key Validation: Enable SSH Host Key Validation

SSH Host Key Finger-print: taken from WinSCP - Session - Server/protocol information

Authentication type: SSH Public Key Authentication   -can't use basic as the private key holds the security info

User name:XXX

Private Key Type: Use Key Content

Private key content: loaded the .ppk file, tried also tried loading the .pem file and got different errors

Pass Phrase: none

在WinSCP或FileZilla中设置此sftp时,它会自动将提供的.pem文件转换为.ppk。 当我将.ppk文件加载到ADF中时,出现错误:为'SshPublicKey'身份验证类型提供了无效的Sftp凭据。 当我加载.pem文件时,得到:连接到Sftp服务器'spiderftp.firstgroup.com',SocketErrorCode:'TimedOut',遇到网络问题。

我还尝试了SSH主机密钥验证中的“禁用SSH主机密钥验证”,并且没有区别。

我还打开了PuttyGen中的.ppk文件,并使用了主机的指纹,但仍然没有运气。

根据我加载的文件,只会出现这两个错误。

在网上找不到有关此内容的任何信息,请多多指教。

2 个答案:

答案 0 :(得分:1)

您已经在本文档中阅读了此说明吗?

https://docs.microsoft.com/en-us/azure/data-factory/connector-sftp#using-ssh-public-key-authentication

SFTP连接器支持RSA / DSA OpenSSH密钥。确保您的密钥文件内容以“ ----- BEGIN [RSA / DSA] PRIVATE KEY -----”开头。如果私钥文件是ppk格式的文件,请使用Putty工具将.ppk转换为OpenSSH格式。

答案 1 :(得分:1)

今天可以进行这项工作。像您一样,可以使用WinSCP进行连接,而在使用ADF时失败。

刘芳分享的链接包含了我们的答案,但我的问题不是私钥。我怀疑方的建议解决了您的问题,我在这里分享我的答案,以帮助可能遇到类似问题的其他人。

我的问题: 在ADF中使用私钥身份验证时,密码将成为密码短语,并且您将不再能够提供密码。 为解决此问题,我们为用户禁用了密码身份验证,并且SFTP连接开始工作。

如文档中所述。 密码短语用于解密私密密钥(如果已被加密)。

也值得注意:

  1. 如果将私钥的内容存储在Key Vault中,则需要 以base64编码导出密钥的全部内容并使用 该字符串。其中包括“ ----- BEGIN RSA PRIVATE KEY -----”和 结束。如果要将值粘贴到 SFTP链接服务编辑屏幕的文本框。
  2. 我没有尝试手动编辑链接服务的JSON以显式提供密码,这对于某些人测试是否无法禁用密码可能是一种解决方法。
  3. 我使用PuTTYGen将PPK导出到私钥,并且也存在相同的指纹问题,因此我只是禁用了证书验证。有趣的是,您可以使用错误提供的指纹,并且指纹可以通过验证,因此无法确定错误的位置。 :-)