Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Desktop application changeddesktop

Nearest release: v2.1.309, published under an hour before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 22 Oct 2026 20:53 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 22 Oct 2026 20:56 UTC.

Upstream edited
Recorded here
Lines+32added
Lines−2removed
From line 1,017 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits84to this page, all time

##### Allow jump hosts

The whole hunk

from line 1017, old and new numbered
/
lines
from line 1017
10171017 
10181018Enter `devbox` in the **SSH host** field.
10191019 
1020If your administrator [restricts SSH hosts](#allow-jump-hosts), the jump host has to be on the list too. Run `ssh -G bastion.example.com` in a terminal on your computer, and ask them to allow the `hostname` that it prints.
1021 
10201022##### Reach a container on a remote machine
10211023 
10221024To run a session inside a container that publishes no SSH port, reach it with a `ProxyCommand`, because Desktop doesn't run the `RemoteCommand` of the entry you connect to. If your entry uses `RemoteCommand` to step into the container, the session runs on the machine that the entry logs in to, not in the container.
from line 1529
15271529>
15281530> Also keep the same list on each user's machine, in the highest-ranked MDM policy or managed settings file there. Desktop fetches server-managed settings at launch and keeps no cached copy, so until a fetch succeeds the machine's list is the one that applies.
15291531 
1530Patterns are case-insensitive. `*` matches any host, and `*.example.com` matches `example.com` and any subdomain. Anything else is an exact match. The check runs against the hostname after `~/.ssh/config` resolution via `ssh -G`, so `Host` aliases and `ProxyCommand`/`ProxyJump` entries are permitted as long as the resolved `HostName` matches.
1532Patterns are case-insensitive. `*` matches any host, and `*.example.com` matches `example.com` and any subdomain. Anything else is an exact match. The check runs against the hostname after `~/.ssh/config` resolution via `ssh -G`, so a `Host` alias is permitted as long as its resolved `HostName` matches. A session's [jump hosts](#allow-jump-hosts) have to match too.
15311533 
15321534`sshHostAllowlist` is read from managed settings only; values in user or project settings are ignored. Only the Claude Desktop app honors this setting; the Claude Code CLI and IDE extensions do not read it, and it does not restrict `ssh` commands run through the Bash tool. It governs which hosts the Desktop app connects to, not network egress, so pair it with your organization's network or zero-trust controls if you need a hard boundary.
15331535 
1536##### Allow jump hosts
1537 
1538Add each jump host that Desktop checks to `sshHostAllowlist`, by its own resolved `HostName`. Add the jump hosts before users update to Claude Desktop v3.1623.0 or later, or they can't connect through them.
1539 
1540> [!WARNING]
1541>
1542> The list has one kind of entry, so users can also start a session on any host that you list. List only jump hosts that you'd also let users run sessions on.
1543 
1544Desktop checks jump hosts in the `ProxyJump` that the user's `~/.ssh/config` sets for the session's host, or in a `ProxyCommand` written as `ssh -W %h:%p <host>`. If one that it checks isn't on the list when Desktop connects or reconnects a session, the connection fails. When a user starts a session or sends a message, the error's details give that jump host's `HostName`, which is the name to add:
1545 
1546```text theme={null}
1547SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".
1548```
1549 
1550If the message says `managed settings on this computer`, add the name to the list on the user's computer. If more than one jump host is missing, the error names one at a time. To find every name before users update, use a terminal on a user's computer:
1551 
1552**1. Find the route**
1553 
1554Run `ssh -G` with a host that users connect to, such as `ssh -G devbox`. Look for a `proxyjump` line, or a `proxycommand` line written as `ssh -W %h:%p <host>`. The command still counts with any of `-l`, `-p`, `-J`, `-q`, `-v`, `-N`, `-T`, `-x`, or `-a`, and the hosts after `-J` are jump hosts too. If a `proxycommand` line runs a program other than `ssh`, add nothing for it.
1555 
1556**2. Look up each jump host**
1557 
1558Run `ssh -G` with each jump host on that line, without any `:port`, and note the `hostname` that it prints. If the output for the first jump host on that line has a line of either kind, repeat this step with it. Ignore such a line in a later jump host's output.
1559 
1560**3. Add the names**
1561 
1562Add each hostname, or a wildcard that covers it, to `sshHostAllowlist` in every managed source where you set a list. Then have users quit and reopen Desktop, because it fetches server-managed settings at launch.
1563 
15341564#### Turn off local sessions and distribute SSH connections
15351565 
15361566To turn off local sessions and limit SSH sessions to hosts that you choose, deploy [`disableDesktopLocalSessions`](/docs/en/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team), and [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) together.
from line 1593
15631593 
15641594When you adapt the example, check the hostnames, the Desktop version, and the file's permissions:
15651595 
1566* **Hostnames**: make sure that a pattern in `sshHostAllowlist` matches the hostname of each `sshConfigs` entry, without `user@`, or developers can't connect to it. For how Desktop matches a hostname, see [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).
1596* **Hostnames**: make sure that a pattern in `sshHostAllowlist` matches the hostname of each `sshConfigs` entry, without `user@`, or developers can't connect to it. Also add a pattern that matches each [jump host](#allow-jump-hosts) that Desktop checks on the way to it. For how Desktop matches a hostname, see [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).
15671597* **Version**: `disableDesktopLocalSessions` requires Claude Desktop v1.37937.0 or later
15681598* **File permissions**: make sure that each developer's account on the computer can read the managed settings file. Desktop doesn't apply the keys in a file that the account can't read, and Claude Code [starts without them](/docs/en/managed-settings.md#find-entries-claude-code-dropped) too.
15691599 
Feedback