IAP Desktop: Remote Desktop and SSH to Google Cloud VMs without public IPs
IAP Desktop is a Windows application that provides zero-trust Remote Desktop and SSH access to Linux and Windows VMs on Google Cloud.
At a glance
- What is it?
- IAP Desktop is a Windows client that opens Identity-Aware Proxy TCP tunnels to Google Cloud virtual machines so you can reach instances with no public address, over Remote Desktop, SSH or a database client. It also automates the awkward parts of authentication, generating Windows credentials and publishing SSH keys for you.
- Who is it for?
- Use IAP Desktop when your Google Cloud instances have no public IP and you want to reach them from a Windows workstation without setting up a bastion or a VPN, because it owns the IAP TCP forwarding tunnel end to end and closes it when you are done. Do not adopt it as a general purpose Remote Desktop client for servers outside Google Cloud, since the tunnel is the product and it exists to front Google Cloud instances.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 66 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The tunnel is the product, not the desktop
IAP Desktop is described as a Remote Desktop and SSH client that lets you connect to Google Cloud VM instances from anywhere, and the mechanism underneath is Identity-Aware Proxy TCP forwarding. Two consequences follow from that design. You can connect to instances that do not have a public IP address, and you can connect from anywhere over the internet without exposing the instance to the open internet. The application manages the IAP TCP tunnels automatically and protects them so that no other users or programs can access them, which matters because a local tunnel port is a listening socket that anything running on your machine could otherwise reach. The security model described in the README is zero-trust: fine-grained access controls that define who can access which VM, access levels that restrict access by time or location, and BeyondCorp Enterprise to limit access to trusted devices. The client is the piece that makes those controls usable for a person sitting at a desk.
Windows Remote Desktop with generated credentials
For Windows instances the tool is a full-featured Remote Desktop client rather than a thin wrapper. It supports multiple Remote Desktop sessions at the same time, lets you switch between full-screen and tabbed sessions, and can upload and download files over SFTP. The authentication detail is the part that removes real friction. IAP Desktop can automatically generate Windows credentials by using the Compute Engine guest agent environment, and it can encrypt and store those Windows credentials locally. Generating credentials through the guest agent is what makes it possible to log into a fresh instance that nobody has ever connected to, which is the normal state of a VM created by a deployment script. Local encrypted storage means the password is not something you have to paste from a console log every time you reconnect.
SSH with keys it publishes for you
The Linux path mirrors the Windows one. IAP Desktop includes an SSH client and terminal, supports multiple SSH sessions in parallel with tabs to switch between them, and can upload and download files using SFTP. Again the authentication work is automated: the tool can automatically create and publish SSH keys to OS Login or to metadata, it can use OS Login two-factor authentication, and it stores the SSH keys locally using Windows CNG, the cryptographic provider built into Windows. The distinction between OS Login and metadata as the publication target matters because they are different models of the same thing. OS Login ties key publication to the IAM identity and can enforce two factors, while metadata keeps the key on the instance's own metadata server. The choice affects how a later human being logs in with the same key, since the two paths do not accept the same credentials.
One instance list across projects and organizations
Beyond a single connection, IAP Desktop gives you a consolidated view of your VMs. You can connect to VMs across multiple projects and Google Cloud organizations, which is what makes it useful for a platform engineer who owns instances in several places at once. From that view you can also see diagnostics information such as logs and serial port output, the latter being the place where a guest agent prints early boot messages that never reach the serial console in the web console. The remaining operations are the ordinary ones: remotely join a VM to Active Directory, and start or stop VMs. That last capability is a genuine convenience but also a genuine risk surface, since a GUI button that stops a production instance is a button anyone with access to the client can press.
Any client application can ride the tunnel
The generalisation is that the tunnel is not tied to Remote Desktop or SSH. You right-click a VM, select the application to launch, and IAP Desktop connects that application through an IAP TCP forwarding tunnel. The supported client applications listed are SQL Server Management Studio, with both Windows authentication and SQL Server authentication, MySQL Shell, Chrome for reaching management portals and other internal websites, and custom applications configured through a dedicated documentation page. This is the feature that makes the tool more than a desktop client. A database tool that understands nothing about Google Cloud can reach a private SQL Server instance because the tunnel presents a local port and the application connects to that as if it were a local server. The limitation follows too: the tunnel must be running and the application must be one you can point at a local address.
Installers are MSI packages for three architectures
The application ships as Windows installer packages, with separate downloads for x64, x86 and arm64, all for Windows 10 and 11, and the README states that no admin rights are required. The download links point at the releases page, with the file names carrying the target architecture.
https://github.com/GoogleCloudPlatform/iap-desktop/releases/latest/download/IapDesktopX64.msi
https://github.com/GoogleCloudPlatform/iap-desktop/releases/latest/download/IapDesktopX86.msi
https://github.com/GoogleCloudPlatform/iap-desktop/releases/latest/download/IapDesktopARM64.msiBecause the links are the latest-release URLs, they always resolve to whatever is newest, which is convenient for a first install and unhelpful if you need to pin a version. The version numbers show how that works in practice: 2.50.1825, 2.49.1797 and 2.48.1768, where the trailing number looks like a build counter that increments on each drop rather than a semantic version you can reason about. The rest of the setup is documented in a separate guide for installing the tool and another for configuring IAP in your project, and the documentation site also has pages for connecting from within a web browser.
Profiles, group policies and the event log
Administration is a documented feature rather than an afterthought. You can create profiles, which are the obvious answer to a tool that needs repeated connection settings, and you can use group policies to configure the client across an organisation. There is also a troubleshooting page for common issues, which matters for a client whose failure modes involve tunnels, credentials and firewall rules at once. The tool windows are documented individually: instance properties, an event log, and serial port output. The event log is the window to look at first when a connection fails, since it records what the client attempted rather than what the instance said. The repository layout matches a documentation-heavy project, with a doc directory holding the site sources and screenshots, a dependencies directory, a sources directory for the application code and a .gemini directory for assistant configuration.
Where this client is the wrong choice
Four limits apply. It is a Windows application, so it does not run on macOS or Linux, and the project has no stated cross-platform build. It connects to Google Cloud through IAP, so it is not a general Remote Desktop or SSH client for hosts that live anywhere else, and using it against a non-Google server is not a supported path. It requires the surrounding Google Cloud setup to exist, which means IAP TCP forwarding enabled on the project and IAM permissions granting the right access to the instance, so it does not remove that work, it consumes it. And it is a large surface for a tool whose value is a shortcut: the bundled SSH client, the Remote Desktop client, the SFTP transfer and the arbitrary application launcher each carry their own update cadence, and the Windows credentials and SSH keys it stores locally are a new local secret store to protect and to revoke when a machine is retired.
Editorial conclusion
Use IAP Desktop when your Google Cloud instances have no public IP and you want to reach them from a Windows workstation without setting up a bastion or a VPN, because it owns the IAP TCP forwarding tunnel end to end and closes it when you are done. Do not adopt it as a general purpose Remote Desktop client for servers outside Google Cloud, since the tunnel is the product and it exists to front Google Cloud instances. Verify first that your project has IAP TCP forwarding configured and that your identity is granted the right IAM roles on the instances, that you are on Windows 10 or 11 since the installers are MSI packages with no admin rights required, and which release you pin, because the versioning carries a build number that changes with every drop.
Frequently asked questions
What is IAP Desktop and what does it do?
It is a Windows Remote Desktop and SSH client that connects to Google Cloud VM instances through Identity-Aware Proxy TCP forwarding. The application manages the IAP TCP tunnels automatically and protects them so no other users or programs can access them.
Does IAP Desktop let me reach VMs without public IP addresses?
Yes. The README lists connecting to VM instances that do not have a public IP address, and connecting from anywhere over the internet, as the two things the Identity-Aware Proxy tunnel provides. The access controls are fine-grained per VM, can be restricted by time or location, and BeyondCorp Enterprise can limit access to trusted devices.
How does IAP Desktop authenticate to Windows and Linux VMs?
For Windows it can automatically generate Windows credentials using the Compute Engine guest agent environment and encrypt and store them locally. For Linux it can create and publish SSH keys to OS Login or to metadata, use OS Login two-factor authentication, and store the keys locally using Windows CNG.
Can I use SQL Server Management Studio with IAP Desktop?
Yes. You right-click a VM, choose the application to launch, and IAP Desktop connects it through an IAP TCP forwarding tunnel. SQL Server Management Studio is supported with both Windows authentication and SQL Server authentication, alongside MySQL Shell, Chrome and custom applications.
Which systems does IAP Desktop run on?
Windows 10 and 11, with separate x64, x86 and arm64 MSI installers, and the README states that no admin rights are required. Documentation pages cover installing the tool, configuring IAP in your project, using profiles, applying group policies and troubleshooting common issues.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/googlecloudplatform-iap-desktop)