Typo in execution sh file (at AADSSHLoginForLinux extension installation)
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 3.5k
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 60
Description
### Describe the bug
Hello, recently we've noticed an issue at AADSSHLoginForLinux extension installation, our environment is obligated to use no_proxy, https_proxy and http_proxy env variables, all attempts ends with the connection error specified below...
### Related command
az vm extension set --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLoginForLinux --resource-group example-rg-01 --vm-name example-vm-01
### Errors
(VMExtensionHandlerNonTransientError) The handler for VM extension type 'Microsoft.Azure.ActiveDirectory.AADSSHLoginForLinux' has reported terminal failure for VM extension 'AADSSHLoginForLinux' with error message: '[ExtensionOperationError] Non-zero exit code: 20, /var/lib/waagent/Microsoft.Azure.ActiveDirectory.AADSSHLoginForLinux-1.0.3162.1/./installer.sh install
[stdout]
Machine OS: rocky v9.6 x86_64
OS similar to: rhel
Installing...
This is an Azure machine
Configuring microsoft-prod repo
[stderr]
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16 100 16 0 0 1333 0 --:--:-- --:--:-- --:--:-- 1454
**curl: (28) Failed to connect to packages.microsoft.com port 443: Connection timed out
Cannot access https://packages.microsoft.com. Make sure this URL is not blocked by a firewall**
'.
'Install handler failed for the extension. More information on troubleshooting is available at https://aka.ms/vmextensionlinuxtroubleshoot'
### Issue script & Debug output
/var/lib/waagent/Microsoft.Azure.ActiveDirectory.AADSSHLoginForLinux-1.0.3162.1/./installer.sh line 346:
` local httpCode=$(curl -f -sL -w "%{http_code}\n" -I "$1" -o /dev/nul)`
check_url_exists has a bug that can mask or misclassify network/proxy issues. Line:` local httpCode=$(curl -f -sL -w "%{http_code}\n" -I "$1" -o /dev/nul)` Typo:` /dev/nul` (should be `/dev/null)`.
This makes curl fail opening the output file, returning a nonzero exit code; httpCode becomes empty.
The function then interprets it as an access issue and may exit with ERROR_DOWNLOAD or wrongly treat the repo as unsupported.
Under a proxy this can appear as “cannot access” even if connectivity would have worked.
### Expected behavior
az extension should be installed without issues using system proxy environment variables
### Environment Summary
azure-cli 2.77.0
core 2.77.0
telemetry 1.1.0
Dependencies:
msal 1.34.0b1
azure-mgmt-resource 23.3.0
Python location '/usr/bin/python3.12'
Config directory '/root/.azure'
Extensions directory '/root/.azure/cliextensions'
Python (Linux) 3.12.9 (main, Aug 14 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)]
Legal docs and information: aka.ms/AzureCliLegal
Your CLI is up-to-date.
### Additional context
The research is already completed and the solution is described, using the fix locally - worked for us, but it should be fixed from the azure-cli side to minimize the possible issues.
Thanks!
Contributor guide
Assessment
This issue has not been assessed yet.