I work with a client that migrated their infrastructure to Microsoft. In order to connect to their Linux Server, I now have to Remote Desktop to their Azure Virtual Desktop thing. I’m not pleased but it’s out of my control.
I tried remmina freerdp
but doesn’t seem to support that Azure thing, there doesn’t seem to be an option to add the workspace.
Any recommendations or do I have to setup a virtual machine just for this? :/ Cheers
I specialize in Azure admin.
Sounds like this might be by design to ensure secure connections.
Using AVD as a bastion replacement.
Only option with similar security would be VPN into the vnet and just ssh normally.
- AVD as a jumpbox
- Bastion (costly solution)
- VPN then SSH/RDP
- Log into the Windows machine via the webclient avaliable at https://windows365.microsoft.com/
- Use PuTTY to set up a reverse tunnel. You’ll need to create a restricted tunnel-only user in your machine. Make sure to use key auth.
- From your local machine, connect to localhost:portnumber.
As an alternative, you might be able to set up OpenSSH in Windows (yes it’s possible), then use the
ProxyJump
setting in your local ~/.ssh/config to connect via a tunnel to the final box.Here’s how you configure the server to not let the user wreak too much havoc:
Match User restricted PermitOpen 127.0.0.1:3389 [::1]:3389 X11Forwarding no AllowAgentForwarding no ForceCommand /bin/sh -c 'while sleep 999; do true; done' ClientAliveInterval 1 ClientAliveCountMax 2
Fun fact: mentioning etc ssh sshd_config triggers some CloudFlare security warning that prevents me from posting it under the right name.
Got to love our Cloudflare overlords
I wasn’t able to set up a reverse tunnel, because I’m also under a corporate VPN :( I was able to get
xfreerdp
to work, though! Maybe I can add some port-forward + tunnels and be free :PIf your local machine is not reachable from the internet, you could set up the cheapest VPS - you can get a free one for 12 months at https://azure.microsoft.com/en-us/free/#all-free-services Connect from your destination machine (the firewalled one) to the VPS, and set up a reverse tunnel. For example, drop this into your ~/.ssh/config on the destination machine:
Host rtun Hostname something RemoteForward 1234 localhost:22
tmux new-ses 'while sleep 1; do ssh rtun; done'
Then configure your local machine to connect to destination via the jumpbox:
Host vps Hostname something Host destination Hostname localhost Port 1234 ProxyJump vps
ssh destination
should work now. Make sure to use SSH key auth, not passwords, and never transport secret keys off-machine. It’s easier to wipe and recreate a VPS than to explain to Security folks how you were the donkey that enabled the breach.
Freerdp 3.x has this support. I have been using it half a year back for this very purpose. Ask for help on #FreeRDP:matrix.org they are very helpful
My example:
xfreerdp “$RDPW_FILE” /u:“$RDP_USERNAME” /p:“$RDP_PASSWORD” /sec:nla /cert:ignore +clipboard /multimon /monitors:0 /gateway:type:arm /network:auto /gfx:AVC444 /rfx /dynamic-resolution
Keep in mind that I was using for accessing Windows machine… Some flags might need to be a bit different
This worked perfectly, thank you so much. Now let’s check if I can add some port forwarding through this…
In arch it’s
xfreerdp3
, just in case anyone needs it.Where’d you get the .rdp file? I can’t find a way to get a working version of mine.
Here’s how I got mine:
-
Go to the web version: https://client.wvd.microsoft.com/arm/webclient/index.html
- You should have a list of machines, in my case I only have one
-
In the top right corner, click on the settings icon (cog)
-
Under “Resources Launch Method”, select the `Download the rdp file" radio option
-
Click whatever machine you want to access
-
The file started to download
Lovely. Thanks! Now to figure out how to redirect that YubiKey USB device, so I could use Passkey auth…
-
@pathief just use the webclient. By far the easiest option
https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-webCan you use it though a web browser?
I can use it, just not very efficiently.
Ideally, I can set port forwards/tunnels so that I can then work from my machine’s terminal.