An Azure analytics service that brings together data integration, enterprise data warehousing, and big data analytics. Previously known as Azure SQL Data Warehouse.
Thank you for sharing the detailed scenario and your proposed approach—this is very well analyzed. I’ve reviewed your findings against Microsoft guidance, and your understanding is largely correct. Let me validate and clarify what will and will not resolve the issue.
- SFTP Linked Service – HMAC Error
The error “Server HMAC algorithm not found” occurs due to a mismatch between the SSH/HMAC algorithms supported by Azure Synapse (via ADF connector) and those enabled on the SFTP server.
Azure SFTP connector supports a fixed set of secure algorithms
There is no option to customize or extend these algorithms
If the server only exposes unsupported HMACs, the connection will fail during handshake
This is a platform limitation, not a configuration issue.
Result: Cannot be fixed from Synapse side
- Python / Paramiko Timeout from Synapse
Your observation is correct—Synapse notebooks do not use SHIR.
They run on Azure-managed compute
Outbound traffic uses dynamic IPs
These IPs are different from SHIR or VPN IPs
This is why:
- Port 22 appears open from SHIR/VPN
- But socket/Paramiko calls from notebook timeout
Result: Not a code issue, but a network path mismatch
3. SHIR (Self-Hosted Integration Runtime)
Provides controlled outbound connectivity
Works well for IP whitelisting scenarios
However:
It still uses the same SFTP connector
So HMAC limitation remains
Result: Fixes network, not HMAC
4. NAT Gateway / Azure Firewall
Ensures static outbound public IP
Recommended for enterprise connectivity
But:
Does not influence SSH negotiation
Result: Fixes IP whitelisting only
5. Intermediate VM / Jump Host (Recommended)
This is the most effective solution in your scenario:
- Use an Azure VM or service with custom SSH client (Paramiko/OpenSSH)
- Connect to SFTP using supported algorithms
- Transfer data to Azure Storage (Blob/ADLS)
- Let Synapse consume data from storage
Result: Resolves both HMAC and networking issues
Conclusion
To summarize, your analysis is accurate:
- The HMAC error is a product limitation and cannot be resolved from Azure Synapse
- The timeout issue is due to Synapse networking behavior, not SFTP availability
- Solutions like SHIR or NAT Gateway help partially, but do not address algorithm mismatch
The only fully reliable and supported approach in this scenario is to use an intermediate compute layer (Azure VM or similar) to handle SFTP communication and then integrate with Synapse via Azure Storage.
Microsoft Reference Links
- SFTP connector documentation: https://learn.microsoft.com/azure/data-factory/connector-sftp
- Troubleshooting SFTP/FTP connectors: https://learn.microsoft.com/azure/data-factory/connector-troubleshoot-ftp-sftp-http
- Integration Runtime overview: https://learn.microsoft.com/azure/data-factory/concepts-integration-runtime
- Synapse managed VNet behavior: https://learn.microsoft.com/azure/synapse-analytics/security/synapse-workspace-managed-vnet
- NAT Gateway for outbound connectivity: https://learn.microsoft.com/azure/virtual-network/nat-gateway/nat-overview
Hope this helps. If you have any follow-up questions, please let me know. I would be happy to help.
Please do not forget to "Accept Answer" and "up-vote" wherever the information provided helps you, as this can be beneficial to other community members.