将SSH私钥存储为Logic App应用设置时SFTP连接异常求助
问题解决:Logic App应用设置存储SSH私钥无法建立SFTP连接
核心问题原因
应用设置中存储多行SSH私钥时,换行符可能被自动转义或丢失,导致Logic App读取到的私钥格式不符合SFTP连接要求;而直接写入connections.json时,私钥的换行格式会被完整保留,因此可以正常连接。
正确配置步骤
应用设置/Key Vault中存储私钥
- 在Azure门户的应用设置里,完整粘贴包含
-----BEGIN RSA PRIVATE KEY-----、-----END RSA PRIVATE KEY-----及中间所有换行的SSH私钥,Azure会自动处理多行存储,无需手动添加转义字符。 - 若使用Key Vault引用,确保Key Vault中的密钥值为完整的多行私钥,应用设置的引用格式需正确:
@Microsoft.KeyVault(SecretUri=https://<your-vault>.vault.azure.net/secrets/<secret-name>/<version>)
- 在Azure门户的应用设置里,完整粘贴包含
connections.json中正确引用
在SFTP连接配置的私钥字段,直接引用应用设置变量,示例:{ "connections": { "sftp": { "connectionParameters": { "privateKey": "@appsetting('SFTP_SSH_PRIVATE_KEY')" } } } }注意:不要对引用变量做额外字符串处理,确保读取原始值。
格式验证
查看Logic App运行历史中的输入参数,确认私钥是否完整保留所有换行符。若换行丢失,检查应用设置/Key Vault中的私钥存储格式是否正确。
常见排查点
- 若开启应用设置的部署槽位设置,需确认当前槽位的设置值无误。
- 确保Key Vault访问策略已授予Logic App的系统/托管身份密钥读取权限。
- 若私钥带密码,需同步在应用设置中存储密码并在
connections.json中正确引用。
内容的提问来源于stack exchange,提问作者Viggo Lundén
相关产品推荐
相关产品推荐

