Repository navigation
v0.1.0 - Modernized Azure Cloud Shell CLI
Release v0.1.0 - Modernized Azure Cloud Shell CLI
What's New
This release modernizes the 7-year-old azssh codebase to work with current Azure Cloud Shell infrastructure (2025) and brings it up to modern Go standards.
Major Changes
Azure Cloud Shell API Updates
- Updated API version from 2017-08-01-preview to 2023-02-01-preview
- Fixed websocket connections using Microsoft Terminal's Azure connection logic
- Implemented Service Bus relay support with $hc path for proper websocket routing
- Added required headers: Referer and x-ms-console-preferred-location
- Implementation based on Windows Terminal's AzureConnection.cpp
Go Modernization
- Added Go modules support (go.mod, go.sum)
- Replaced deprecated io/ioutil with io and os packages
- Replaced deprecated golang.org/x/crypto/ssh/terminal with golang.org/x/term
- Updated to Go 1.21 as minimum version
Dependency Updates
- Cobra CLI: v1.8.1 (latest)
- Gorilla WebSocket: v1.5.3 (latest)
- Azure Go AutoRest: v0.9.24
- golang.org/x/term: v0.27.0
Code Quality Improvements
- Added comprehensive error handling throughout the codebase
- Improved error messages with proper context
- Better nil checking for API responses
- Modernized code patterns following current Go best practices
Installation
go install github.com/dcasati/azssh@v0.1.0Or build from source:
git clone https://github.com/dcasati/azssh.git
cd azssh
go buildUsage
# Launch Azure Cloud Shell
azssh
# Choose your shell type
azssh --shell bash
azssh --shell pwshTechnical Details
The websocket connection now properly handles Azure Service Bus relay URLs by:
- Converting the console URL to websocket protocol
- Inserting the $hc (hybrid connection) path for Service Bus relay
- Constructing proper terminal session URLs
- Supporting both simple and Service Bus relay connection patterns
Breaking Changes
None - the CLI interface remains the same.
Credits
Original implementation by @noelbundick
Modernization based on Microsoft Terminal's Azure Connection implementation