131* Avviare o arrestare i server, oppure arrestarli tutti insieme, dal menu **Dev servers** nell'intestazione del riquadro Browser131* Avviare o arrestare i server, oppure arrestarli tutti insieme, dal menu **Dev servers** nell'intestazione del riquadro Browser
132* Scegliere se il Browser conserva i cookie dopo la chiusura dell'app con **Keep cookies** nel menu **⋮** del riquadro Browser, così non devi accedere di nuovo durante lo sviluppo132* Scegliere se il Browser conserva i cookie dopo la chiusura dell'app con **Keep cookies** nel menu **⋮** del riquadro Browser, così non devi accedere di nuovo durante lo sviluppo
133 133
134In una sessione SSH, perdi i cookie del riquadro quando chiudi Desktop. Non puoi modificare questo comportamento con **Keep cookies**.
135
134Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app usa un comando di sviluppo personalizzato, modifica `.claude/launch.json` in base alla tua configurazione. Consulta [Configurare i server di anteprima](#configure-preview-servers) per il riferimento completo.136Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app usa un comando di sviluppo personalizzato, modifica `.claude/launch.json` in base alla tua configurazione. Consulta [Configurare i server di anteprima](#configure-preview-servers) per il riferimento completo.
135 137
136Per cancellare i dati salvati del Browser, seleziona **Clear browsing data** nel menu **⋮** del riquadro Browser. Per disattivare completamente il Browser, disattiva **Browser tools** in **Settings > Code** o **Settings > Claude Code**.138Per cancellare i dati salvati del Browser, seleziona **Clear browsing data** nel menu **⋮** del riquadro Browser. Per disattivare completamente il Browser, disattiva **Browser tools** in **Settings > Code** o **Settings > Claude Code**.
312 314
313In entrambi i layout, digita `/context` nella casella del prompt per stampare nella chat una suddivisione per categoria della finestra di contesto di questa sessione.315In entrambi i layout, digita `/context` nella casella del prompt per stampare nella chat una suddivisione per categoria della finestra di contesto di questa sessione.
314 316
315Entrambi i layout hanno l'anello di utilizzo accanto al selettore di modello. Fai clic su di esso per vedere l'utilizzo del piano, che è condiviso su tutte le tue superfici Claude Code.317In entrambi i layout, l'anello di utilizzo si trova nella riga sotto la casella del prompt. Fai clic su di esso per vedere l'utilizzo del piano, che è condiviso su tutte le tue superfici Claude Code.
316 318
317## Lascia che Claude usi il tuo computer319## Lascia che Claude usi il tuo computer
318 320
409 411
410#### Esegui una sessione nel suo worktree412#### Esegui una sessione nel suo worktree
411 413
412In un progetto che è un repository Git, attiva **Worktree** prima di avviare una sessione per eseguirla nel suo [worktree Git](https://code.claude.com/docs/it/worktrees.md), una copia isolata del progetto. Per impostazione predefinita, **Worktree** è disattivato e Claude lavora direttamente nella cartella del progetto. Con il [layout attuale](#check-which-layout-you-have), attiva il pulsante **Worktree** nella [riga sotto la casella del prompt](#start-a-session).414In un progetto che è un repository Git, attiva **Worktree** prima di avviare una sessione per eseguirla nel proprio [worktree Git](https://code.claude.com/docs/it/worktrees.md), una copia isolata del progetto. Per impostazione predefinita, **Worktree** è disattivato e Claude lavora direttamente nella cartella del progetto. Nel [layout attuale](#check-which-layout-you-have), attiva **Worktree** nella [riga sotto la casella del prompt](#start-a-session).
413 415
414* **Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md)**: se la riga sotto la casella del prompt mostra il controllo della cartella del progetto ma nessun pulsante **Worktree**, fai clic su quel controllo e attiva **Worktree**416* **Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md)**: se la riga sotto la casella del prompt mostra il controllo della cartella del progetto ma non **Worktree**, fai clic sul controllo della cartella del progetto e attiva **Worktree**
415* **Come impostazione predefinita per un [ambiente locale o SSH salvato](#create-a-saved-environment)**: imposta **Worktree** quando crei o modifichi l'ambiente417* **Come impostazione predefinita per un [ambiente locale o SSH salvato](#create-a-saved-environment)**: imposta **Worktree** quando crei o modifichi l'ambiente
416* **[Layout precedente](#check-which-layout-you-have)**: seleziona la casella di controllo **worktree** accanto al nome del branch, sopra la casella del prompt418* **[Layout precedente](#check-which-layout-you-have)**: seleziona la casella di controllo **worktree** accanto al nome del branch, sopra la casella del prompt
417 419
806 808
807## Configurazione dell'ambiente809## Configurazione dell'ambiente
808 810
809L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove viene eseguito Claude e come ti connetti:811L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove Claude esegue le operazioni e come ti connetti:
810 812
811* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file813* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file
812* **Cloud**: viene eseguito per impostazione predefinita su un'infrastruttura gestita da Anthropic. Le sessioni continuano anche se chiudi l'app.814* **Cloud**: viene eseguito per impostazione predefinita su un'infrastruttura gestita da Anthropic. Le sessioni continuano anche se chiudi l'app.
813* **SSH**: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi server, VM cloud o dev container. Un'attività in esecuzione può [proseguire mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected), ma con un account Claude può interrompersi quando il suo accesso scade.815* **SSH**: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi server, VM cloud o dev container. Un'attività in esecuzione può [continuare mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected), ma con un account Claude può interrompersi quando il suo accesso scade.
814* **WSL** (Windows): viene eseguito all'interno di una [distribuzione WSL 2](https://code.claude.com/docs/it/desktop-wsl.md) sulla tua macchina, usando la sua toolchain Linux e i percorsi nativi816* **WSL** (Windows): viene eseguito all'interno di una [distribuzione WSL 2](https://code.claude.com/docs/it/desktop-wsl.md) sulla tua macchina, usando la sua toolchain Linux e i percorsi nativi
815 817
816### Creare un ambiente salvato818### Creare un ambiente salvato
817 819
818Un ambiente salvato è una voce nel [selettore dell'ambiente](#start-a-session) che registra dove viene eseguito Claude, così puoi avviare lì le sessioni successive. Un ambiente locale o SSH contiene anche le cartelle in cui lavora Claude. Gli ambienti locali e SSH salvati fanno parte del [layout attuale](#check-which-layout-you-have), quindi se non li vedi, verifica quale layout hai e come ottenere quello attuale.820Un ambiente salvato è una voce nel [selettore di ambiente](#start-a-session) che registra dove viene eseguito Claude, così puoi avviare lì le sessioni successive. Un ambiente locale o SSH contiene anche le cartelle in cui lavora Claude. Gli ambienti locali e SSH salvati fanno parte del [layout attuale](#check-which-layout-you-have), quindi se non li vedi, verifica quale layout hai e come ottenere quello attuale.
819 821
820**1. Apri la finestra di dialogo New environment**822**1. Apri la finestra di dialogo New environment**
821 823
822Apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.824Apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.
823 825
824**2. Scegli dove viene eseguito Claude**826**2. Scegli dove viene eseguito Claude**
825 827
831 833
832#### Ambienti che Desktop crea per te834#### Ambienti che Desktop crea per te
833 835
834Se il selettore dell'ambiente elenca ambienti locali o SSH che non hai creato, li ha creati Desktop per te. La prima volta che apri la scheda Code nel [layout attuale](#check-which-layout-you-have), Desktop crea fino a otto ambienti. Gli ambienti derivano dalle cartelle locali e SSH che hai usato di più nell'ultimo mese. Puoi [modificarli o eliminarli](#use-edit-or-remove-a-saved-environment).836Se il selettore di ambiente elenca ambienti locali o SSH che non hai creato tu, li ha creati Desktop per te. La prima volta che apri la scheda Code nel [layout attuale](#check-which-layout-you-have), Desktop crea fino a otto ambienti. Gli ambienti derivano dalle cartelle locali e SSH che hai usato di più nell'ultimo mese. Puoi [modificarli o eliminarli](#use-edit-or-remove-a-saved-environment).
835 837
836#### Usare, modificare o rimuovere un ambiente salvato838#### Usare, modificare o rimuovere un ambiente salvato
837 839
838Trova la voce dell'ambiente nel [selettore dell'ambiente](#start-a-session):840Trova la voce dell'ambiente nel [selettore di ambiente](#start-a-session):
839 841
840* **Avviare una sessione**: seleziona la voce.842* **Avviare una sessione**: seleziona la voce.
841* **Modificare o eliminare**: passa il mouse sulla voce e fai clic sull'icona a forma di ingranaggio. Per eliminare un ambiente locale o SSH, fai clic su **Delete environment** in **Edit environment**.843* **Modificare o eliminare**: passa il mouse sopra la voce e fai clic sull'icona a forma di ingranaggio. Per eliminare un ambiente locale o SSH, fai clic su **Delete environment** in **Edit environment**.
842* **Archiviare ambienti cloud**: consulta [Archiviare un ambiente](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment).844* **Archiviare ambienti cloud**: consulta [Archiviare un ambiente](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment).
843 845
844### Variabili d'ambiente nelle sessioni locali846### Variabili d'ambiente nelle sessioni locali
845 847
846Per impostare una variabile d'ambiente per una sessione locale, [aggiungila a un ambiente locale salvato](#set-environment-variables-for-local-sessions), quindi avvia una nuova sessione da quell'ambiente.848Per impostare una variabile d'ambiente per una sessione locale, [aggiungila a un ambiente locale salvato](#set-environment-variables-for-local-sessions), poi avvia una nuova sessione da quell'ambiente.
847 849
848Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni specifiche:850Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni proprie:
849 851
850| Variabile | Cosa fare invece |852| Variabile | Cosa fare invece |
851| :- | :- |853| :- | :- |
852| `PATH`, le cartelle in cui il sistema cerca programmi come `npm` | Consulta [La sessione non trova gli strumenti installati](#session-not-finding-installed-tools). Su Windows, Desktop non legge i profili di PowerShell, quindi imposta `PATH` nelle variabili d'ambiente utente o di sistema, poi chiudi e riapri Desktop. |854| `PATH`, le cartelle in cui il sistema cerca programmi come `npm` | Consulta [La sessione non trova gli strumenti installati](#session-not-finding-installed-tools). Su Windows, Desktop non legge i profili di PowerShell, quindi imposta `PATH` nelle variabili d'ambiente dell'utente o di sistema, poi chiudi e riapri Desktop. |
853| Una variabile per un server MCP da [`claude_desktop_config.json`](#mcp-servers-from-the-claude-desktop-chat-app) | Chiudi Desktop, impostala nel blocco `env` di quel server, poi riapri Desktop |855| Una variabile per un server MCP da [`claude_desktop_config.json`](#mcp-servers-from-the-claude-desktop-chat-app) | Chiudi Desktop, impostala nel blocco `env` di quel server, poi riapri Desktop |
854| [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars#variables) o [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars#variables) | Impostala in [uno dei punti in cui imposteresti una variabile per i dev server](#set-environment-variables-for-dev-servers), poi chiudi e riapri Desktop |856| [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars#variables) o [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars#variables) | Impostala in [uno dei punti in cui imposteresti una variabile per i dev server](#set-environment-variables-for-dev-servers), poi chiudi e riapri Desktop |
855| `API_TIMEOUT_MS`, `ANTHROPIC_BASE_URL` o un'altra variabile che Desktop imposta da sé | Consulta [Variabili d'ambiente che Desktop imposta da sé](#environment-variables-desktop-sets-itself) |857| `API_TIMEOUT_MS`, `ANTHROPIC_BASE_URL` o un'altra variabile che Desktop imposta da sé | Consulta [Variabili d'ambiente che Desktop imposta da sé](#environment-variables-desktop-sets-itself) |
856 858
857Su macOS o Linux, se una variabile che hai impostato con `export` manca o ha un valore errato in un comando eseguito da Claude, consulta [Variabile esportata mancante o errata nei comandi eseguiti da Claude](#exported-variable-missing-or-wrong-in-commands-claude-runs).859Su macOS o Linux, se una variabile che hai impostato con `export` manca o è errata in un comando eseguito da Claude, consulta [Variabile esportata mancante o errata nei comandi eseguiti da Claude](#exported-variable-missing-or-wrong-in-commands-claude-runs).
858 860
859#### Impostare variabili d'ambiente per le sessioni locali861#### Impostare variabili d'ambiente per le sessioni locali
860 862
861Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da lì. Desktop [imposta da sé alcune variabili](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`, e per queste le tue sessioni ricevono il suo valore anziché il tuo.863Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da lì. Desktop [imposta da sé alcune variabili](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`, e per quelle le tue sessioni ricevono il suo valore anziché il tuo.
862 864
863> [!NOTE]865> [!NOTE]
864>866>
865> Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il [layout precedente](#check-which-layout-you-have), che non prevede ambienti locali salvati. Usa invece l'[editor dell'ambiente locale](#use-the-local-environment-editor).867> Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il [layout precedente](#check-which-layout-you-have), che non ha ambienti locali salvati. Usa invece l'[editor dell'ambiente locale](#use-the-local-environment-editor).
866 868
867**1. Apri il modulo di un ambiente locale**869**1. Apri il modulo di un ambiente locale**
868 870
869* **Per creare un ambiente locale salvato**: seleziona [**New environment**](#create-a-saved-environment) in fondo al menu del selettore dell'ambiente, poi la scheda **Local**871* **Per creare un ambiente locale salvato**: seleziona [**New environment**](#create-a-saved-environment) in fondo al menu del selettore di ambiente, poi la scheda **Local**
870* **Per modificarne uno esistente**: nel selettore dell'ambiente, passa il mouse su un ambiente salvato sotto **Local** e fai clic sull'icona a forma di ingranaggio per aprire [**Edit environment**](#use-edit-or-remove-a-saved-environment)872* **Per modificarne uno che hai già**: nel selettore di ambiente, passa il mouse sopra un ambiente salvato sotto **Local** e fai clic sull'icona a forma di ingranaggio per aprire [**Edit environment**](#use-edit-or-remove-a-saved-environment)
871 873
872**2. Inserisci le variabili**874**2. Inserisci le variabili**
873 875
874Seleziona **Environment variables**, inserisci una riga `KEY=value` per ciascuna variabile e seleziona **Done**.876Seleziona **Environment variables**, inserisci una coppia `KEY=value` per riga e seleziona **Done**.
875 877
876**3. Salva l'ambiente**878**3. Salva l'ambiente**
877 879
883 885
884#### Impostare variabili d'ambiente per i dev server886#### Impostare variabili d'ambiente per i dev server
885 887
886Per fornire un segreto a un dev server senza inserirlo in un commit in [`launch.json`](#configure-preview-servers), impostalo in uno di questi punti, poi riavvia Desktop:888Per fornire un segreto a un dev server senza salvarlo con un commit in [`launch.json`](#configure-preview-servers), impostalo in uno di questi punti, poi riavvia Desktop:
887 889
888* **macOS e Linux**: esportalo nel profilo della tua shell890* **macOS e Linux**: esportalo nel profilo della tua shell
889* **Windows**: aggiungilo alle variabili d'ambiente utente o di sistema891* **Windows**: aggiungilo alle variabili d'ambiente dell'utente o di sistema
890* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se puoi aprirlo892* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se puoi aprirlo
891 893
892I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.894I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.
895 897
896Per aprire l'editor dell'ambiente locale, fai clic sull'icona a forma di ingranaggio sulla voce del tuo computer, non su quella di un ambiente salvato:898Per aprire l'editor dell'ambiente locale, fai clic sull'icona a forma di ingranaggio sulla voce del tuo computer, non su quella di un ambiente salvato:
897 899
898* **Selettore sotto la casella del prompt**: passa il mouse sulla voce del tuo computer, la prima sotto **Local**. Se compare un'icona a forma di ingranaggio, fai clic su di essa. In caso contrario, l'editor non è disponibile, quindi imposta la variabile per le [sessioni locali](#set-environment-variables-for-local-sessions) o per i [dev server](#set-environment-variables-for-dev-servers) in un altro modo.900* **Selettore sotto la casella del prompt**: passa il mouse sopra la voce del tuo computer, la prima sotto **Local**. Se compare un'icona a forma di ingranaggio, fai clic su di essa. In caso contrario, l'editor non è disponibile, quindi imposta la variabile per le [sessioni locali](#set-environment-variables-for-local-sessions) o per i [dev server](#set-environment-variables-for-dev-servers) in un altro modo.
899* **Selettore sopra la casella del prompt**: passa il mouse su **Local** e fai clic sull'icona a forma di ingranaggio901* **Selettore sopra la casella del prompt**: passa il mouse sopra **Local** e fai clic sull'icona a forma di ingranaggio
900 902
901Inserisci una riga `KEY=value` per ciascuna variabile e seleziona **Save changes**. Le variabili che salvi qui vengono archiviate crittografate sulla tua macchina. Le sessioni locali le ricevono, tranne qualsiasi variabile che [Desktop imposta da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`. Riavvia Desktop per fornire le tue variabili ai dev server.903Inserisci una coppia `KEY=value` per riga e seleziona **Save changes**. Le variabili che salvi qui vengono memorizzate in forma crittografata sulla tua macchina. Le sessioni locali le ricevono, tranne le variabili che [Desktop imposta da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`. Riavvia Desktop per fornire le tue variabili ai dev server.
902 904
903#### Variabile esportata mancante o errata nei comandi eseguiti da Claude905#### Variabile esportata mancante o errata nei comandi eseguiti da Claude
904 906
905Se un comando che Claude esegue su macOS o Linux non riceve una variabile che hai impostato con `export` in `~/.zshrc` o `~/.bashrc`, o ne riceve un valore errato, prova questi passaggi nell'ordine:907Se un comando eseguito da Claude su macOS o Linux non riceve una variabile che hai impostato con `export` in `~/.zshrc` o `~/.bashrc`, oppure riceve il valore sbagliato, prova queste soluzioni nell'ordine:
906 908
907**1. Avvia una nuova sessione**909**1. Avvia una nuova sessione**
908 910
914 916
915**3. Controlla le variabili salvate**917**3. Controlla le variabili salvate**
916 918
917Se un comando riceve il valore errato, verifica se hai impostato la variabile anche in un [ambiente salvato](#use-edit-or-remove-a-saved-environment) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). In tal caso, modifica lì il valore e avvia una nuova sessione.919Se un comando riceve il valore sbagliato, verifica se hai impostato la variabile anche in un [ambiente salvato](#use-edit-or-remove-a-saved-environment) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). In tal caso, modifica lì il valore e avvia una nuova sessione.
918 920
919**4. Usa un ambiente salvato**921**4. Usa un ambiente salvato**
920 922
924 926
925#### Variabili d'ambiente che Desktop imposta da sé927#### Variabili d'ambiente che Desktop imposta da sé
926 928
927Se hai impostato `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` e nelle tue sessioni locali non è cambiato nulla, è perché Desktop imposta da sé quelle [variabili](https://code.claude.com/docs/it/env-vars.md#variables), tra le altre. Una sessione locale riceve il valore di Desktop sia che tu abbia impostato il tuo nel profilo della shell, nelle variabili utente o di sistema di Windows, nell'editor dell'ambiente locale o in un ambiente salvato. Spostare il tuo valore in un file di impostazioni non serve, perché Claude Code [ignora quel valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) in una sessione locale.929Se hai impostato `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` e nelle tue sessioni locali non è cambiato nulla, è perché Desktop imposta da sé quelle [variabili](https://code.claude.com/docs/it/env-vars.md#variables), tra le altre. Una sessione locale riceve il valore di Desktop sia che tu abbia impostato il tuo nel profilo della shell, nelle variabili utente o di sistema di Windows, nell'editor dell'ambiente locale o in un ambiente salvato. Spostare il tuo valore in un file di impostazioni non aiuta, perché Claude Code [ignora quel valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) in una sessione locale.
928 930
929* `API_TIMEOUT_MS`: una sessione locale riceve `900000`, cioè 15 minuti. Per un timeout più lungo, [installa la CLI di Claude Code](https://code.claude.com/docs/it/quickstart.md) e usala al posto di Desktop. [Imposta la variabile nella tua shell](https://code.claude.com/docs/it/env-vars.md#set-variables-in-your-shell) ed esegui `claude` nel terminale.931* `API_TIMEOUT_MS`: una sessione locale riceve `900000`, ovvero 15 minuti. Per un timeout più lungo, [installa la CLI di Claude Code](https://code.claude.com/docs/it/quickstart.md) e usala al posto di Desktop. [Imposta la variabile nella tua shell](https://code.claude.com/docs/it/env-vars.md#set-variables-in-your-shell) ed esegui `claude` nel terminale.
930* `ANTHROPIC_BASE_URL`: una sessione locale riceve l'host API di Anthropic quando hai effettuato l'accesso con un account Claude. Per usare un gateway, configura invece la [configurazione di inferenza di terze parti](https://code.claude.com/docs/it/llm-gateway-connect.md#desktop-app) di Desktop.932* `ANTHROPIC_BASE_URL`: una sessione locale riceve l'host dell'API di Anthropic quando hai effettuato l'accesso con un account Claude. Per usare un gateway, configura invece la [configurazione di inferenza di terze parti](https://code.claude.com/docs/it/llm-gateway-connect.md#desktop-app) di Desktop.
931 933
932#### Disattivare il ragionamento esteso934#### Disattivare il ragionamento esteso
933 935
934Il [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) è abilitato per impostazione predefinita, il che migliora le prestazioni nelle attività di ragionamento complesse ma usa token aggiuntivi. Per disattivarlo, imposta `MAX_THINKING_TOKENS` su `0` in un [ambiente locale salvato](#set-environment-variables-for-local-sessions) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). Il ragionamento si disattiva così sull'API di Anthropic, tranne che su Opus 5.5, Sonnet 5.5, Haiku 5.5 e sui modelli Fable, che usano sempre il ragionamento esteso.936Il [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) è attivo per impostazione predefinita, il che migliora le prestazioni nelle attività di ragionamento complesse ma usa token aggiuntivi. Per disattivarlo, imposta `MAX_THINKING_TOKENS` su `0` in un [ambiente locale salvato](#set-environment-variables-for-local-sessions) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). Il ragionamento si disattiva quindi sull'API di Anthropic, tranne che su Opus 5.5, Sonnet 5.5, Haiku 5.5 e i modelli Fable, che usano sempre il ragionamento esteso.
935 937
936Su Opus 5, seleziona anche un livello di effort `high` o inferiore prima di avviare la sessione. Nel [layout attuale](#check-which-layout-you-have), apri il selettore del modello e seleziona un livello sotto **Effort**. Se hai avviato la sessione con un livello più alto, avviane una nuova con `high` o inferiore.938Su Opus 5, seleziona anche un livello di effort `high` o inferiore prima di avviare la sessione. Nel [layout attuale](#check-which-layout-you-have), apri il selettore del modello e seleziona un livello sotto **Effort**. Se hai avviato la sessione con un livello più alto, avviane una nuova con `high` o inferiore.
937 939
938#### Budget di ragionamento fissi940#### Budget di ragionamento fissi
939 941
940Sui modelli con [ragionamento adattivo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), Claude Code ignora il numero in sé in un valore positivo di `MAX_THINKING_TOKENS`, perché è il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` su `1` per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e successivi, Haiku 5.5 e Opus 4.7 e successivi usano sempre il ragionamento adattivo e non hanno una modalità a budget fisso.942Sui modelli con [ragionamento adattivo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), Claude Code ignora il numero stesso in un valore positivo di `MAX_THINKING_TOKENS`, perché è il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` su `1` per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e successivi, Haiku 5.5 e Opus 4.7 e successivi usano sempre il ragionamento adattivo e non hanno una modalità a budget fisso.
941 943
942### Sessioni locali su dispositivi gestiti944### Sessioni locali su dispositivi gestiti
943 945
944Se la voce del tuo computer è disattivata in grigio nel selettore dell'ambiente, con il tooltip **Disabled by your organization**, il tuo amministratore ha [disattivato le sessioni locali](#managed-settings). Su Windows la voce [WSL](https://code.claude.com/docs/it/desktop-wsl.md), la cui disponibilità sui dispositivi gestiti è [regolata separatamente](https://code.claude.com/docs/it/admin-setup.md#wsl-sessions-in-claude-code-desktop), appare disattivata allo stesso modo.946Se la voce del tuo computer è disattivata nel selettore di ambiente, con il tooltip **Disabled by your organization**, l'amministratore ha [disattivato le sessioni locali](#managed-settings). Su Windows la voce [WSL](https://code.claude.com/docs/it/desktop-wsl.md), la cui disponibilità sui dispositivi gestiti è [regolata separatamente](https://code.claude.com/docs/it/admin-setup.md#wsl-sessions-in-claude-code-desktop), è disattivata allo stesso modo.
945 947
946Le nuove sessioni usano per impostazione predefinita la prima connessione SSH, se ne è configurata una. Se provi a continuare una sessione locale esistente, Desktop mostra un messaggio che indica che le sessioni locali non sono disponibili su questo dispositivo. Gli [ambienti locali salvati](#create-a-saved-environment) mostrano questo errore quando ne selezioni uno: `Couldn’t switch environments: the Local environment isn’t available anymore.` Scegli invece un ambiente [SSH](#ssh-sessions) o [cloud](#cloud-sessions), oppure contatta il tuo team IT.948Le nuove sessioni usano per impostazione predefinita la prima connessione SSH, se ne è configurata una. Se provi a continuare una sessione locale esistente, Desktop mostra un messaggio che indica che le sessioni locali non sono disponibili su questo dispositivo. Gli [ambienti locali salvati](#create-a-saved-environment) mostrano questo errore quando ne selezioni uno: `Couldn’t switch environments: the Local environment isn’t available anymore.` Scegli invece un ambiente [SSH](#ssh-sessions) o [cloud](#cloud-sessions), oppure contatta il tuo team IT.
947 949
948### Sessioni cloud950### Sessioni cloud
949 951
950Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo viene conteggiato nei [limiti del tuo piano di abbonamento](https://code.claude.com/docs/it/costs.md) senza costi di calcolo separati.952Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo rientra nei [limiti del tuo piano di abbonamento](https://code.claude.com/docs/it/costs.md), senza costi di calcolo separati.
951 953
952Per aggiungere, modificare o [archiviare](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment) un ambiente cloud, apri il [selettore dell'ambiente](#start-a-session):954Per aggiungere, modificare o [archiviare](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment) un ambiente cloud, apri il [selettore di ambiente](#start-a-session):
953 955
954* **Aggiungere un ambiente**: seleziona **New environment** in fondo al menu del selettore, poi la scheda **Cloud** della [finestra di dialogo **New environment**](#create-a-saved-environment)956* **Aggiungere un ambiente**: seleziona **New environment** in fondo al menu del selettore, poi la scheda **Cloud** della [finestra di dialogo **New environment**](#create-a-saved-environment)
955* **Modificare o archiviare uno dei tuoi ambienti**: passa il mouse su di esso e fai clic sull'icona a forma di ingranaggio957* **Modificare o archiviare uno dei tuoi ambienti**: passa il mouse sopra di esso e fai clic sull'icona a forma di ingranaggio
956 958
957Consulta [Configurare gli ambienti cloud](https://code.claude.com/docs/it/cloud-environments.md) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili d'ambiente.959Consulta [Configurare gli ambienti cloud](https://code.claude.com/docs/it/cloud-environments.md) per i dettagli sulla configurazione dell'accesso di rete e delle variabili d'ambiente.
958 960
959### Sessioni SSH961### Sessioni SSH
960 962
961Le sessioni SSH ti permettono di eseguire Claude Code su una macchina remota usando l'app desktop come interfaccia. Questo è utile per lavorare con codebase che si trovano su VM cloud, dev container o server con hardware o dipendenze specifici.963Le sessioni SSH ti permettono di eseguire Claude Code su una macchina remota usando l'app desktop come interfaccia. È utile per lavorare con codebase che si trovano su VM cloud, dev container o server con hardware o dipendenze specifici.
962 964
963> [!NOTE]965> [!NOTE]
964>966>
965> Se usi Desktop con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH richiedono una configurazione specifica. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).967> Se usi Desktop con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH richiedono una configurazione propria. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).
966 968
967Aggiungi una connessione SSH nella [finestra di dialogo **New environment**](#create-a-saved-environment), poi avvia una sessione su quella connessione. Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente. Consulta [Verificare quale layout hai](#check-which-layout-you-have).969Aggiungi una connessione SSH nella [finestra di dialogo **New environment**](#create-a-saved-environment), poi avvia una sessione su quella connessione. Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente. Consulta [Verificare quale layout hai](#check-which-layout-you-have).
968 970
969**1. Apri la finestra di dialogo New environment**971**1. Apri la finestra di dialogo New environment**
970 972
971Prima di avviare una sessione, apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.973Prima di avviare una sessione, apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.
972 974
973**2. Aggiungi la connessione**975**2. Aggiungi la connessione**
974 976
976 978
977* **Name**: un'etichetta descrittiva per questa connessione.979* **Name**: un'etichetta descrittiva per questa connessione.
978* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.980* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.
979* **SSH port**: se lasciato vuoto, il valore predefinito è 22, oppure viene usata la porta della tua configurazione SSH.981* **SSH port**: se lasciato vuoto usa per impostazione predefinita la porta 22, oppure la porta indicata nella tua configurazione SSH.
980* **SSH key (optional)**: percorso della tua chiave privata, ad esempio `~/.ssh/id_ed25519`. Lascia vuoto per usare la tua configurazione SSH o l'agente SSH.982* **SSH key (optional)**: percorso della tua chiave privata, ad esempio `~/.ssh/id_ed25519`. Lascia vuoto per usare la tua configurazione SSH o l'agente SSH.
981* **Worktree folder**: una cartella sulla macchina remota, ad esempio `~/worktrees`, in cui le nuove sessioni creano i propri worktree. Lascia vuoto per usare il [valore predefinito della macchina remota](#choose-where-ssh-session-worktrees-go).983* **Worktree folder**: una cartella sulla macchina remota, ad esempio `~/worktrees`, in cui le nuove sessioni creano i loro worktree. Lascia vuoto per usare la [cartella predefinita della macchina remota](#choose-where-ssh-session-worktrees-go).
982 984
983Poi seleziona **Add SSH connection**.985Poi seleziona **Add SSH connection**.
984 986
985**3. Avvia una sessione sulla connessione**987**3. Avvia una sessione sulla connessione**
986 988
987Seleziona una cartella sulla macchina remota e fai clic su **Create environment**. La macchina e la cartella restano associate come [ambiente salvato](#create-a-saved-environment) per le sessioni successive. Desktop lo seleziona per la nuova sessione, quindi scrivi la tua attività e premi **Enter**.989Seleziona una cartella sulla macchina remota e fai clic su **Create environment**. Conservi la macchina e la cartella insieme come [ambiente salvato](#create-a-saved-environment) per le sessioni successive. Desktop lo seleziona per la nuova sessione, quindi digita la tua attività e premi **Enter**.
988 990
989La macchina remota può eseguire Linux, macOS o [Windows](#windows-remote-machines). Desktop installa automaticamente Claude Code sulla macchina remota la prima volta che ti connetti. Una volta connesse, le sessioni SSH supportano le modalità di permesso, i connettori, i plugin e i server MCP.991La macchina remota può eseguire Linux, macOS o [Windows](#windows-remote-machines). Desktop installa automaticamente Claude Code sulla macchina remota la prima volta che ti connetti. Una volta connesse, le sessioni SSH supportano modalità di permesso, connettori, plugin e server MCP.
990 992
991#### Requisiti della macchina remota per le sessioni SSH993#### Requisiti della macchina remota per le sessioni SSH
992 994
993Una macchina remota Linux o macOS richiede un processore supportato, un server SSH con SFTP, una cartella di installazione non montata con `noexec`, una shell funzionante e l'accesso alla rete. Verifica ciascun requisito prima di connetterti, oppure quando una connessione non riesce dopo l'accesso:995Una macchina remota Linux o macOS richiede un processore supportato, un server SSH con SFTP, una cartella di installazione non montata con `noexec`, una shell funzionante e l'accesso di rete. Verifica ogni requisito prima di connetterti, oppure quando una connessione non riesce dopo l'accesso:
994 996
995* **Sistema**: un processore x86\_64 o arm64. La macchina deve inoltre soddisfare i [requisiti di sistema](https://code.claude.com/docs/it/setup.md#system-requirements) di Claude Code. Su Linux, Claude Code richiede glibc 2.17 o successiva, oppure musl. Per vedere quale ha la macchina, esegui lì `ldd --version`. Su una distribuzione basata su musl come Alpine Linux, installa anche i [pacchetti di cui Claude Code ha bisogno](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).997* **Sistema**: un processore x86\_64 o arm64. La macchina deve inoltre soddisfare i [requisiti di sistema](https://code.claude.com/docs/it/setup.md#system-requirements) di Claude Code. Su Linux, Claude Code richiede glibc 2.17 o versioni successive, oppure musl. Per vedere quale ha la macchina, esegui lì `ldd --version`. Su una distribuzione basata su musl come Alpine Linux, installa anche i [pacchetti di cui Claude Code ha bisogno](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).
996* **SFTP**: il server SSH deve offrire il sottosistema SFTP, che viene attivato da una riga `Subsystem sftp` nel suo `sshd_config`. Per verificarlo, connettiti allo stesso host e alla stessa porta con `sftp` in un terminale sul tuo computer. Un server funzionante mostra il prompt `sftp>`.998* **SFTP**: il server SSH deve offrire il sottosistema SFTP, attivato da una riga `Subsystem sftp` nel suo `sshd_config`. Per verificarlo, connettiti allo stesso host e alla stessa porta con `sftp` in un terminale sul tuo computer. Un server funzionante mostra il prompt `sftp>`.
997* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, esegui una di queste operazioni:999* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, fai una di queste cose:
998 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o successiva1000 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o versioni successive
999 * **Il tuo computer esegue Windows**: assicurati che Desktop [si connetta tramite il client OpenSSH](#use-your-ssh-configuration), perché il client SSH integrato di Desktop non può connettersi a quel server1001 * **Il tuo computer esegue Windows**: assicurati che Desktop [si connetta tramite il client OpenSSH](#use-your-ssh-configuration), perché il client SSH integrato di Desktop non può connettersi a quel server
1000 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 101002 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 10
1001* **Accessi con `MaxSessions 1`**: usa un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH. Desktop accede almeno due volte ogni volta che si connette o si riconnette. Prevedi almeno un accesso in più per ogni scheda del [terminale](#run-commands-in-the-terminal) e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`. Non ne prevedere nessuno per i comandi eseguiti da Claude.1003* **Accessi con `MaxSessions 1`**: usa un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH. Desktop effettua l'accesso almeno due volte ogni volta che si connette o si riconnette. Prevedi almeno un accesso in più per ogni scheda del [terminale](#run-commands-in-the-terminal) e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`. Non ne prevedere nessuno per i comandi eseguiti da Claude.
1002* **Codici monouso con `MaxSessions 1`**: se ogni accesso ti chiede qualcosa, come nel caso dei codici monouso, i comandi `!` non riescono. Esegui invece quei comandi in una scheda del terminale, che mostra la richiesta nel proprio riquadro.1004* **Codici monouso con `MaxSessions 1`**: se ogni accesso ti chiede qualcosa, come nel caso dei codici monouso, i comandi `!` non riescono. Esegui invece quei comandi in una scheda del terminale, che mostra la richiesta nel proprio riquadro.
1003* **Cartella di installazione**: Desktop installa un programma helper e Claude Code in `~/.claude/remote/` nella tua directory home. Li esegue da lì, quindi quella cartella non può trovarsi su un file system montato con `noexec`. Prevedi circa 1 GB di spazio su disco nella directory home di ciascun utente che si connette. Per il contenuto di quella cartella, consulta [File e processi sulla macchina remota](#files-and-processes-on-the-remote-machine).1005* **Cartella di installazione**: Desktop installa un programma di supporto e Claude Code in `~/.claude/remote/` nella tua directory home. Li esegue da lì, quindi quella cartella non può trovarsi su un file system montato con `noexec`. Prevedi circa 1 GB di spazio su disco nella directory home di ogni utente che si connette. Per sapere cosa contiene quella cartella, consulta [File e processi sulla macchina remota](#files-and-processes-on-the-remote-machine).
1004* **Shell**: la shell impostata per il tuo account sulla macchina remota deve eseguire i comandi inviati tramite SSH, come fanno Bash, Zsh e `sh`1006* **Shell**: la shell impostata per il tuo account sulla macchina remota deve eseguire i comandi inviati tramite SSH, come fanno Bash, Zsh e `sh`
1005* **Rete**: Claude Code viene eseguito sul computer remoto ed effettua le sue richieste di rete da lì, quindi il computer necessita dell'[accesso alla rete richiesto da Claude Code](https://code.claude.com/docs/it/network-config.md#network-access-requirements). Se il computer non riesce a scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica. Le altre richieste di Claude Code partono comunque dal computer remoto. Se un computer remoto Linux necessita di un proxy o di un certificato CA, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).1007* **Rete**: Claude Code viene eseguito sulla macchina remota ed effettua da lì le sue richieste di rete, quindi la macchina ha bisogno dell'[accesso di rete richiesto da Claude Code](https://code.claude.com/docs/it/network-config.md#network-access-requirements). Se la macchina non può scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica. Le altre richieste di Claude Code partono comunque dalla macchina remota. Se una macchina remota Linux ha bisogno di un proxy o di un certificato CA, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).
1006 1008
1007#### Verificare la chiave host di una macchina remota1009#### Verificare la chiave host di una macchina remota
1008 1010
1009Una chiave host è la chiave che una macchina remota presenta per dimostrare quale macchina è, e un'impronta digitale (fingerprint) è una forma abbreviata di quella chiave. Quando consideri attendibile una chiave, il tuo computer la salva e si connette a qualunque cosa la presenti, senza chiedere di nuovo. Verifica una chiave prima di considerarla attendibile, perché qualcosa potrebbe intercettare la connessione.1011Una chiave host è la chiave che una macchina remota presenta per dimostrare quale macchina è, e un'impronta (fingerprint) è una forma breve di quella chiave. Quando consideri attendibile una chiave, il tuo computer la salva e si connette a qualunque cosa la presenti, senza chiedere di nuovo. Verifica una chiave prima di considerarla attendibile, perché qualcosa potrebbe intercettare la connessione.
1010 1012
1011Per prima cosa individua a quale macchina appartiene la chiave, in base a dove vedi l'impronta digitale:1013Per prima cosa individua a quale macchina appartiene la chiave, in base a dove vedi l'impronta:
1012 1014
1013* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`1015* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`
1014* **Desktop chiede `Connect through <jump host> for the first time?`**: il jump host, ovvero la macchina attraverso cui passa la tua connessione, non la macchina che vuoi raggiungere1016* **Desktop chiede `Connect through <jump host> for the first time?`**: il jump host, ovvero la macchina attraverso cui passa la tua connessione, non la macchina che vuoi raggiungere
1015* **`ssh` chiede o avvisa in un terminale**: la macchina indicata dal suo messaggio, che potrebbe non essere quella che hai digitato1017* **`ssh` chiede o avvisa in un terminale**: la macchina indicata dal suo messaggio, che potrebbe non essere quella che hai digitato
1016 1018
1017Ottieni l'impronta digitale propria di quella macchina dalla macchina stessa, non tramite la connessione che stai verificando:1019Ottieni l'impronta della macchina direttamente dalla macchina stessa, non tramite la connessione che stai verificando:
1018 1020
1019* **La macchina è gestita da qualcun altro**: chiedi a quella persona l'impronta digitale della chiave host1021* **La macchina è gestita da qualcun altro**: chiedi a quella persona l'impronta della chiave host
1020* **La gestisci tu ed esegue Linux o macOS**: esegui `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` su di essa, dalla sua console o tramite una connessione che già consideri attendibile. Per `<type>`, usa il tipo di chiave che Desktop o `ssh` mostra accanto all'impronta digitale, in minuscolo: `ed25519` per `ED25519` o `ssh-ed25519`.1022* **La gestisci tu ed esegue Linux o macOS**: esegui `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` su di essa, dalla sua console o tramite una connessione che consideri già attendibile. Per `<type>`, usa il tipo di chiave che Desktop o `ssh` mostra accanto all'impronta, in minuscolo: `ed25519` per `ED25519` o `ssh-ed25519`.
1021 1023
1022Poi confronta l'impronta digitale della macchina con quella che ti è stata mostrata:1024Poi confronta l'impronta della macchina con quella che ti è stata mostrata:
1023 1025
1024* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.1026* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.
1025* **Sono diverse, oppure non puoi verificare**: non connetterti. Seleziona **Cancel** in Desktop, oppure rispondi `no` nel terminale. Se la macchina è gestita da qualcun altro, comunica a quella persona quale impronta digitale ti è stata mostrata.1027* **Sono diverse, oppure non puoi verificare**: non connetterti. Seleziona **Cancel** in Desktop, oppure rispondi `no` nel terminale. Se la macchina è gestita da qualcun altro, comunica a quella persona quale impronta ti è stata mostrata.
1026 1028
1027Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo l'uno o l'altro risultato.1029Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo uno qualsiasi dei due risultati.
1028 1030
1029#### Impostare un proxy o un certificato CA per le sessioni SSH1031#### Impostare un proxy o un certificato CA per le sessioni SSH
1030 1032
1031Se una macchina remota Linux raggiunge Internet tramite un proxy o necessita di un certificato CA, aggiungi le [variabili del proxy e della CA](https://code.claude.com/docs/it/network-config.md) sotto `env` in `~/.claude/settings.json` su quella macchina. Aggiungile anche se le esporti già in `~/.profile`, `~/.bash_profile`, `~/.zprofile` o `~/.zshrc` su quella macchina.1033Se una macchina remota Linux raggiunge Internet tramite un proxy o ha bisogno di un certificato CA, aggiungi le [variabili per il proxy e la CA](https://code.claude.com/docs/it/network-config.md) sotto `env` in `~/.claude/settings.json` su quella macchina. Aggiungile anche se le esporti già in `~/.profile`, `~/.bash_profile`, `~/.zprofile` o `~/.zshrc` su quella macchina.
1032 1034
1033In una sessione SSH, Claude Code non riceve le variabili da quei file, anche quando `claude` in un terminale su quel computer le riceve. La sessione può quindi bloccarsi, oppure mostrare **The connection from … to the API failed**, **Authentication failed** o **Claude Code on … couldn’t verify the API connection’s certificate**. Accedere di nuovo non aiuta.1035In una sessione SSH, Claude Code non riceve le variabili da quei file, anche quando `claude` in un terminale su quella macchina le riceve. La sessione può quindi bloccarsi, oppure mostrare **The connection from … to the API failed**, **Authentication failed** o **Claude Code on … couldn’t verify the API connection’s certificate**. Accedere di nuovo non aiuta.
1034 1036
1035**1. Aggiungi le variabili**1037**1. Aggiungi le variabili**
1036 1038
1037Per il file della CA, usa [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/it/network-config#custom-ca-certificates), perché Claude Code non considera attendibile una CA da `SSL_CERT_FILE` in `~/.claude/settings.json`. Questo esempio imposta un proxy e un file della CA:1039Per il file CA, usa [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/it/network-config#custom-ca-certificates), perché Claude Code non considera attendibile una CA indicata da `SSL_CERT_FILE` in `~/.claude/settings.json`. Questo esempio imposta un proxy e un file CA:
1038 1040
1039```json ~/.claude/settings.json theme={null}1041```json ~/.claude/settings.json theme={null}
1040{1042{
1047 1049
1048**2. Invia di nuovo il messaggio**1050**2. Invia di nuovo il messaggio**
1049 1051
1050Invia di nuovo il messaggio, perché una variabile che aggiungi o modifichi in quel file ha effetto entro pochi secondi. Avvia una nuova sessione se il problema persiste.1052Invia di nuovo il messaggio, perché una variabile che aggiungi o modifichi in quel file ha effetto entro pochi secondi. Se non funziona ancora, avvia una nuova sessione.
1051 1053
1052##### Trovare una variabile del proxy o della CA impostata altrove sulla macchina remota1054##### Trovare una variabile per il proxy o la CA impostata altrove sulla macchina remota
1053 1055
1054Verifica se la macchina remota Linux imposta la variabile del proxy o della CA altrove, perché le sessioni usano quel valore e [ignorano quello presente in qualsiasi file di impostazioni](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell):1056Verifica se la macchina remota Linux imposta la variabile per il proxy o la CA altrove, perché le sessioni usano quel valore e [ignorano quello di qualsiasi file di impostazioni](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell):
1055 1057
1056**1. Elenca le variabili impostate dalla macchina remota**1058**1. Elenca le variabili impostate dalla macchina remota**
1057 1059
1063 1065
1064**3. Fornisci il nuovo valore alle sessioni**1066**3. Fornisci il nuovo valore alle sessioni**
1065 1067
1066Riavvia la macchina remota, oppure chiudi Desktop e termina i processi dell'helper, come nei primi due passaggi per [rimuovere l'helper](#files-and-processes-on-the-remote-machine). Fallo quando nessuna attività è in esecuzione, perché in entrambi i casi il lavoro di Claude viene interrotto.1068Riavvia la macchina remota, oppure chiudi Desktop e termina i processi del programma di supporto, come nei primi due passaggi per [rimuovere il programma di supporto](#files-and-processes-on-the-remote-machine). Fallo quando non ci sono attività in esecuzione, perché in entrambi i casi il lavoro di Claude viene interrotto.
1067 1069
1068#### Usare la tua configurazione SSH1070#### Usare la tua configurazione SSH
1069 1071
1070Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:1072Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:
1071 1073
1072* **macOS e Linux**: Desktop si connette eseguendo il client OpenSSH sul tuo computer, quindi usa il tuo `~/.ssh/config`. La connessione tramite il client OpenSSH richiede Claude Desktop v1.37937.0 o successiva.1074* **macOS e Linux**: Desktop si connette eseguendo il client OpenSSH sul tuo computer, quindi usa il tuo `~/.ssh/config`. La connessione tramite il client OpenSSH richiede Claude Desktop v1.37937.0 o versioni successive.
1073* **Windows**: quando Desktop si connette tramite il client OpenSSH, usa il tuo `%USERPROFILE%\.ssh\config`. Se usi un account Claude anziché un provider di terze parti, la connessione tramite il client OpenSSH richiede tutti questi requisiti:1075* **Windows**: quando Desktop si connette tramite il client OpenSSH, usa il tuo `%USERPROFILE%\.ssh\config`. Se usi un account Claude anziché un provider di terze parti, la connessione tramite il client OpenSSH richiede tutti questi requisiti:
1074 1076
1075 * Claude Desktop v2.2553.0 o successiva. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).1077 * Claude Desktop v2.2553.0 o versioni successive. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).
1076 * OpenSSH di Microsoft 9.4 o successiva1078 * OpenSSH di Microsoft 9.4 o versioni successive
1077 * Desktop installato con i pulsanti di download in cima a questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH1079 * Desktop installato con i pulsanti di download in cima a questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH
1078 1080
1079 Se non puoi soddisfare questi requisiti, oppure usi un provider di terze parti, consulta [Connettersi su Windows senza il client OpenSSH](#connect-on-windows-without-the-openssh-client).1081 Se non puoi soddisfare questi requisiti, oppure usi un provider di terze parti, consulta [Connettersi su Windows senza il client OpenSSH](#connect-on-windows-without-the-openssh-client).
1080 1082
1081Con il client OpenSSH, inserisci un nome `Host` del tuo file di configurazione nel campo **SSH host**. Desktop usa quindi le impostazioni di quella voce `Host`, come `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.1083Con il client OpenSSH, inserisci nel campo **SSH host** un nome `Host` dal tuo file di configurazione. Desktop usa quindi le impostazioni di quella voce `Host`, come `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.
1082 1084
1083Prima di aggiungere la connessione, verifica il client e la voce in un terminale sul tuo computer:1085Prima di aggiungere la connessione, verifica il client e la voce in un terminale sul tuo computer:
1084 1086
1085* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o successivo.1087* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o versioni successive.
1086* **Versione del client su Windows**: Desktop prova prima l'`ssh` presente nel tuo `PATH`, quindi esegui `ssh -V`. Il client è valido se l'output mostra `OpenSSH_for_Windows_` e una versione 9.4 o successiva. Se non è valido, controlla le due cartelle che Desktop prova subito dopo: esegui `.\ssh.exe -V` in `C:\Windows\System32\OpenSSH`, poi in `C:\Program Files\OpenSSH`.1088* **Versione del client su Windows**: Desktop prova per primo l'`ssh` presente nel tuo `PATH`, quindi esegui `ssh -V`. Il client supera la verifica se l'output mostra `OpenSSH_for_Windows_` e la versione 9.4 o successiva. Se non la supera, controlla le due cartelle che Desktop prova successivamente: esegui `.\ssh.exe -V` in `C:\Windows\System32\OpenSSH`, poi in `C:\Program Files\OpenSSH`.
1087* **Nessun client valido su Windows**: aggiungi la funzionalità facoltativa **OpenSSH Client** in Windows e installa gli aggiornamenti di Windows in sospeso, oppure installa la [build più recente di Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/upgrade-in-box-openssh-to-latest-openssh-release). Poi chiudi e riapri Desktop. Per vedere se Desktop ha trovato un client OpenSSH utilizzabile, cerca in [`ssh.log`](#get-desktops-logs-for-an-ssh-problem) `Windows OpenSSH client:` seguito da una versione, oppure `no usable Windows OpenSSH client`.1089* **Nessun client supera la verifica su Windows**: aggiungi la funzionalità facoltativa **OpenSSH Client** in Windows e installa gli aggiornamenti di Windows in sospeso, oppure installa la [build più recente di Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/upgrade-in-box-openssh-to-latest-openssh-release). Poi chiudi e riapri Desktop. Per vedere se Desktop ha trovato un client OpenSSH utilizzabile, cerca in [`ssh.log`](#get-desktops-logs-for-an-ssh-problem) `Windows OpenSSH client:` seguito da una versione, oppure `no usable Windows OpenSSH client`.
1088* **Voce**: su Windows, usa il client che ha superato la verifica della versione. Esegui `ssh` con il nome `Host`, ad esempio `ssh devbox`. Se non riesce, correggi prima la voce.1090* **Voce**: su Windows, usa il client che ha superato la verifica della versione. Esegui `ssh` con il nome `Host`, ad esempio `ssh devbox`. Se non funziona, correggi prima la voce.
1089 1091
1090Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:1092Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:
1091 1093
1094 1096
1095##### Connettersi su Windows senza il client OpenSSH1097##### Connettersi su Windows senza il client OpenSSH
1096 1098
1097Su Windows, ti connetti tramite il client SSH integrato di Desktop se il tuo computer non soddisfa [i requisiti per il client OpenSSH](#use-your-ssh-configuration). Con un provider di terze parti, ti connetti tramite il client integrato per impostazione predefinita, e il tuo amministratore può modificare questo comportamento. Per l'impostazione, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1099Su Windows, ti connetti tramite il client SSH integrato di Desktop se il tuo computer non soddisfa [i requisiti per il client OpenSSH](#use-your-ssh-configuration). Con un provider di terze parti, il client tramite cui ti connetti dipende anche dalla versione di Desktop e dalle impostazioni dell'amministratore. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).
1098 1100
1099Con il client integrato, puoi comunque inserire un nome `Host` della tua configurazione SSH nel campo **SSH host** se il tuo `PATH` contiene un comando `ssh`, con queste limitazioni:1101Con il client integrato, puoi comunque inserire nel campo **SSH host** un nome `Host` dalla tua configurazione SSH se il tuo `PATH` contiene un comando `ssh`, con questi limiti:
1100 1102
1101* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port` e `IdentityFile`. Prende anche `ProxyCommand` se una shell `sh` è presente nel tuo `PATH`.1103* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port`, `IdentityFile` e `ConnectTimeout`. Prende anche `ProxyCommand` se una shell `sh` si trova nel tuo `PATH`.
1102* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`1104* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`
1103* **`CertificateFile` e `ProxyJump`**: Desktop ignora `CertificateFile`, e la connessione non riesce se la voce imposta `ProxyJump`. Per usare una di queste impostazioni, [connettiti tramite il client OpenSSH](#use-your-ssh-configuration).1105* **`CertificateFile` e `ProxyJump`**: Desktop ignora `CertificateFile`, e la connessione non riesce se la voce imposta `ProxyJump`. Per usare una di queste impostazioni, [connettiti tramite il client OpenSSH](#use-your-ssh-configuration).
1104 1106
1105##### Raggiungere una macchina dietro un jump host1107##### Raggiungere una macchina dietro un jump host
1106 1108
1107Per raggiungere una macchina dietro un jump host, detto anche bastion, imposta `ProxyJump` o `ProxyCommand` nella voce. La voce seguente raggiunge `devbox.internal.example.com` tramite `bastion.example.com`:1109Per raggiungere una macchina dietro un jump host, chiamato anche bastion, imposta `ProxyJump` o `ProxyCommand` nella voce. La voce seguente raggiunge `devbox.internal.example.com` tramite `bastion.example.com`:
1108 1110
1109```text ~/.ssh/config theme={null}1111```text ~/.ssh/config theme={null}
1110Host devbox1112Host devbox
1115 1117
1116Inserisci `devbox` nel campo **SSH host**.1118Inserisci `devbox` nel campo **SSH host**.
1117 1119
1118Se il tuo amministratore [limita gli host SSH](#allow-jump-hosts), anche il jump host deve essere nell'elenco. Esegui `ssh -G bastion.example.com` in un terminale sul tuo computer e chiedi all'amministratore di consentire l'`hostname` che viene stampato.1120Se l'amministratore [limita gli host SSH](#allow-jump-hosts), anche il jump host deve essere nell'elenco. Esegui `ssh -G bastion.example.com` in un terminale sul tuo computer e chiedi all'amministratore di consentire l'`hostname` che viene stampato.
1119 1121
1120##### Raggiungere un container su una macchina remota1122##### Raggiungere un container su una macchina remota
1121 1123
1122Per eseguire una sessione all'interno di un container che non pubblica alcuna porta SSH, raggiungilo con un `ProxyCommand`, perché Desktop non esegue il `RemoteCommand` della voce a cui ti connetti. Se la tua voce usa `RemoteCommand` per entrare nel container, la sessione viene eseguita sulla macchina a cui accede la voce, non nel container.1124Per eseguire una sessione all'interno di un container che non pubblica alcuna porta SSH, raggiungilo con un `ProxyCommand`, perché Desktop non esegue il `RemoteCommand` della voce a cui ti connetti. Se la tua voce usa `RemoteCommand` per entrare nel container, la sessione viene eseguita sulla macchina a cui la voce accede, non nel container.
1123 1125
1124**1. Aggiungi la voce**1126**1. Aggiungi la voce**
1125 1127
1126Aggiungi la voce seguente alla fine del tuo `~/.ssh/config`, oppure subito sopra la tua prima voce `Host *` se ne hai una. Sostituisci il container Docker `devbox`, il suo utente `dev` e la macchina `build.example.com` con i tuoi. Il comando della voce avvia un server SSH all'interno del container per ogni connessione:1128Aggiungi la voce seguente alla fine del tuo `~/.ssh/config`, oppure direttamente sopra la tua prima voce `Host *`, se ne hai una. Sostituisci il container Docker `devbox`, il suo utente `dev` e la macchina `build.example.com` con i tuoi. Il comando della voce avvia un server SSH all'interno del container per ogni connessione:
1127 1129
1128```text ~/.ssh/config theme={null}1130```text ~/.ssh/config theme={null}
1129Host devbox-container1131Host devbox-container
1133 1135
1134**2. Prepara il container**1136**2. Prepara il container**
1135 1137
1136* Installa il server OpenSSH, con una chiave host che resti la stessa quando ricompili l'immagine o ricrei il container1138* Installa il server OpenSSH, con una chiave host che rimanga la stessa quando ricompili l'immagine o ricrei il container
1137* Fornisci all'account indicato in `User` un modo per accedere, ad esempio un file `authorized_keys`1139* Fornisci all'account indicato in `User` un modo per accedere, ad esempio un file `authorized_keys`
1138* Verifica che il container soddisfi i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions)1140* Verifica che il container soddisfi i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions)
1139 1141
1140**3. Controlla l'allowlist**1142**3. Controlla l'allowlist**
1141 1143
1142Se il tuo amministratore [limita gli host SSH](#restrict-which-ssh-hosts-users-can-connect-to), esegui `ssh -G devbox-container` in un terminale sul tuo computer. Chiedi all'amministratore di consentire in `sshHostAllowlist` l'`hostname` che viene stampato, qui `devbox-container`. Consentendo quel nome, consente tutto ciò a cui si connette il `ProxyCommand` della tua voce.1144Se l'amministratore [limita gli host SSH](#restrict-which-ssh-hosts-users-can-connect-to), esegui `ssh -G devbox-container` in un terminale sul tuo computer. Chiedi all'amministratore di consentire in `sshHostAllowlist` l'`hostname` che viene stampato, qui `devbox-container`. Consentendo quel nome, l'amministratore consente qualunque cosa a cui si connette il `ProxyCommand` della tua voce.
1143 1145
1144**4. Testa la voce, poi connettiti**1146**4. Verifica la voce, poi connettiti**
1145 1147
1146Esegui `ssh devbox-container` in un terminale sul tuo computer. Correggi ciò che segnala ed eseguilo di nuovo finché non apre una shell nel container senza chiederti nulla:1148Esegui `ssh devbox-container` in un terminale sul tuo computer. Correggi ciò che segnala ed eseguilo di nuovo finché non apre una shell nel container senza chiederti nulla:
1147 1149
1148* **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH1150* **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH
1149* **Se `ssh` segnala `Cannot execute command-line and remote command.` o `Bad packet length`**: rimuovi `RemoteCommand` e `RequestTTY` dalla tua voce per `build.example.com`. Dopodiché, `ssh build.example.com` in un terminale sul tuo computer apre una shell su quella macchina, non nel container.1151* **Se `ssh` segnala `Cannot execute command-line and remote command.` o `Bad packet length`**: rimuovi `RemoteCommand` e `RequestTTY` dalla tua voce per `build.example.com`. Dopodiché, `ssh build.example.com` in un terminale sul tuo computer apre una shell su quella macchina, non nel container.
1150* **Se `ssh` segnala `Connection closed by UNKNOWN port 65535`**: esegui `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` nello stesso terminale.1152* **Se `ssh` segnala `Connection closed by UNKNOWN port 65535`**: esegui `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` nello stesso terminale.
1151 * Se stampa `Missing privilege separation directory: /run/sshd`, crea quella cartella nel container.1153 * Se stampa `Missing privilege separation directory: /run/sshd`, crea quella cartella nel container.
1155 1157
1156##### Usare variabili della tua shell in un `ProxyCommand`1158##### Usare variabili della tua shell in un `ProxyCommand`
1157 1159
1158Su macOS e Linux, per usare una tua variabile d'ambiente in un comando `ProxyCommand` o `Match exec`, esportala in un file di avvio della shell, ad esempio `~/.zshrc`. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che esporta la tua shell di login e mantiene quei valori finché non lo chiudi.1160Su macOS e Linux, per usare una tua variabile d'ambiente in un comando `ProxyCommand` o `Match exec`, esportala in un file di avvio della shell, come `~/.zshrc`. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che esporta la tua shell di login e mantiene quei valori finché non lo chiudi.
1159 1161
1160Questo richiede Claude Desktop v2.37337.0 o successiva e un comando `env` che accetti `-0`, cosa che puoi verificare eseguendo `env -0` in un terminale sul tuo computer.1162Questo richiede Claude Desktop v2.37337.0 o versioni successive e un comando `env` che accetti `-0`, cosa che puoi verificare eseguendo `env -0` in un terminale sul tuo computer.
1161 1163
1162> [!NOTE]1164> [!NOTE]
1163>1165>
1164> Se la tua shell imposta credenziali AWS temporanee, [fornisci un profilo alla AWS CLI](#use-aws-credentials-in-a-proxycommand) anziché esportare variabili `AWS_*`.1166> Se la tua shell imposta credenziali AWS temporanee, [fornisci un profilo alla AWS CLI](#use-aws-credentials-in-a-proxycommand) invece di esportare variabili `AWS_*`.
1165 1167
1166##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux1168##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux
1167 1169
1168Se imposti credenziali AWS temporanee in un file di avvio della shell, un `ProxyCommand` che esegue la AWS CLI può connettersi in un terminale e non riuscire in Desktop. Quando la tua shell esporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` o `AWS_CREDENTIAL_EXPIRATION`, `ssh` e il tuo `ProxyCommand` in Desktop non ricevono le credenziali AWS della shell, `AWS_REGION` o `AWS_PROFILE`.1170Se imposti credenziali AWS temporanee in un file di avvio della shell, un `ProxyCommand` che esegue la AWS CLI può connettersi in un terminale e non riuscire in Desktop. Quando la tua shell esporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` o `AWS_CREDENTIAL_EXPIRATION`, `ssh` e il tuo `ProxyCommand` in Desktop non ricevono le credenziali AWS della shell, `AWS_REGION` o `AWS_PROFILE`.
1169 1171
1170Se la AWS CLI non ha un'altra fonte per la regione o le credenziali, non riesce con `You must specify a region` o `Unable to locate credentials`. Per connetterti da Desktop, fornisci alla AWS CLI un profilo che legga da `~/.aws/config`:1172Se la AWS CLI non ha altre fonti per una regione o per le credenziali, non riesce con `You must specify a region` o `Unable to locate credentials`. Per connetterti da Desktop, fornisci alla AWS CLI un profilo che legga da `~/.aws/config`:
1171 1173
1172**1. Aggiungi un profilo con una regione e una fonte di credenziali**1174**1. Aggiungi un profilo con una regione e una fonte di credenziali**
1173 1175
1174Questo esempio aggiunge un profilo chiamato `corp` che ottiene le credenziali da un programma helper:1176Questo esempio aggiunge un profilo chiamato `corp` che ottiene le credenziali da un programma di supporto:
1175 1177
1176```ini ~/.aws/config theme={null}1178```ini ~/.aws/config theme={null}
1177[profile corp]1179[profile corp]
1180```1182```
1181 1183
1182* **`region`**: indica la regione AWS delle macchine a cui ti connetti1184* **`region`**: indica la regione AWS delle macchine a cui ti connetti
1183* **`credential_process`**: indica il percorso completo di un programma che stampa le credenziali nel [formato JSON documentato da AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Scegli un programma che non richieda alcun input da parte tua, perché la AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei via.1185* **`credential_process`**: indica il percorso completo di un programma che stampa le credenziali nel [formato JSON documentato da AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Scegli un programma che non richieda input da parte tua, perché la AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei assente.
1184* **IAM Identity Center**: aggiungi le [impostazioni IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) del profilo al posto di `credential_process`. Esegui `aws sso login --profile corp` in un terminale prima di connetterti, e di nuovo quando quell'accesso scade.1186* **IAM Identity Center**: aggiungi le [impostazioni di IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) del profilo al posto di `credential_process`. Esegui `aws sso login --profile corp` in un terminale prima di connetterti, e di nuovo quando quell'accesso scade.
1185 1187
1186**2. Indica il profilo nel ProxyCommand**1188**2. Indica il profilo nel ProxyCommand**
1187 1189
1198 1200
1199##### Aumentare il timeout della connessione SSH1201##### Aumentare il timeout della connessione SSH
1200 1202
1201Se la tua configurazione SSH non imposta alcun `ConnectTimeout` per l'host, Desktop concede a `ssh` 30 secondi per connettersi. Tramite un jump host o un `ProxyCommand`, quel tempo include il tempo necessario al percorso per connettersi. Se il tuo percorso richiede più tempo, aggiungi un valore più alto alla voce:1203Se la sessione va in timeout mentre si connette tramite un jump host o un `ProxyCommand`, aumenta `ConnectTimeout` nella voce della macchina remota nel tuo `~/.ssh/config`. Usa più di 90 secondi. Aggiungi il tempo durante il quale un jump host o un `ProxyCommand` ti attende, ad esempio a un prompt di accesso o per una notifica push sul telefono:
1202 1204
1203```text ~/.ssh/config theme={null}1205```text ~/.ssh/config theme={null}
1204Host devbox1206Host devbox
1210 1212
1211`ssh` usa il primo valore che trova per un host, quindi mantieni la voce sopra qualsiasi voce `Host *` che imposti `ConnectTimeout`. Per confermare, esegui `ssh -G devbox` in un terminale sul tuo computer. Il suo output include `connecttimeout 120`. Dopo aver modificato il valore, chiudi e riapri Desktop.1213`ssh` usa il primo valore che trova per un host, quindi mantieni la voce sopra qualsiasi voce `Host *` che imposti `ConnectTimeout`. Per confermare, esegui `ssh -G devbox` in un terminale sul tuo computer. Il suo output include `connecttimeout 120`. Dopo aver modificato il valore, chiudi e riapri Desktop.
1212 1214
1213Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque sia il `ConnectTimeout` impostato. Non puoi aumentare questo limite, perché Desktop imposta da sé `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per quel tempo. Se invece è un jump host o un `ProxyCommand` ad attendere te, aumenta `ConnectTimeout` nella voce della macchina remota per coprire quel tempo.1215Se la tua configurazione SSH non imposta alcun `ConnectTimeout` per l'host, Desktop concede a `ssh` 30 secondi per connettersi. Tramite un jump host o un `ProxyCommand`, quel tempo include il tempo necessario al percorso per connettersi.
1216
1217| `ConnectTimeout` | Connessione | Tempo a tua disposizione |
1218| - | - | - |
1219| Non impostato | Avvii una sessione tramite un jump host o un `ProxyCommand`, con Claude Desktop v4.4212.0 o versioni successive su macOS o Linux | 30 secondi, poi un secondo tentativo con 90 secondi. Se Desktop ti ha mostrato un prompt durante il primo tentativo, non hai un secondo tentativo. Il tempo trascorso a un prompt di accesso che Desktop mostra per un host `ProxyJump` non viene conteggiato. Le altre attese lungo il percorso sì. |
1220| Non impostato | Desktop su Windows o una versione precedente, una macchina remota che imposta `MaxSessions 1`, o una riconnessione che Desktop avvia da sé | 30 secondi. Ogni attesa lungo il percorso viene conteggiata. |
1221| Impostato | Ogni connessione e riconnessione | Il valore che hai impostato. Ogni attesa lungo il percorso viene conteggiata. |
1222
1223Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque sia il `ConnectTimeout` impostato. Non puoi aumentare questo limite, perché Desktop imposta da sé `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per così tanto tempo.
1214 1224
1215##### Correggere un blocco `Match host` che applica solo Desktop1225##### Correggere un blocco `Match host` che solo Desktop applica
1216 1226
1217Se Desktop usa un'impostazione che `ssh devbox` in un terminale non usa, cerca un blocco `Match host` sopra la riga `HostName` della voce. In un terminale, `ssh` legge un blocco in quella posizione prima della riga `HostName`, quindi confronta il blocco con `devbox`. Desktop passa a `ssh` il valore di `HostName` sulla riga di comando, quindi `ssh` confronta il blocco con quel valore.1227Se Desktop usa un'impostazione che `ssh devbox` in un terminale non usa, cerca un blocco `Match host` sopra la riga `HostName` della voce. In un terminale, `ssh` legge un blocco posto lì prima della riga `HostName`, quindi confronta il blocco con `devbox`. Desktop passa a `ssh` il valore di `HostName` sulla riga di comando, quindi `ssh` confronta il blocco con quel valore.
1218 1228
1219Per verificarlo, esegui `ssh -G` in un terminale sul tuo computer con i valori `HostName` e `User` della voce sulla riga di comando, come fa Desktop:1229Per verificarlo, esegui `ssh -G` in un terminale sul tuo computer con i valori `HostName` e `User` della voce sulla riga di comando, come fa Desktop:
1220 1230
1222ssh -G -o HostName=devbox.internal.example.com -l alice devbox1232ssh -G -o HostName=devbox.internal.example.com -l alice devbox
1223```1233```
1224 1234
1225Confronta l'output con quello di `ssh -G devbox`. Se le impostazioni del blocco, come `proxycommand`, compaiono solo nel primo output, il blocco ha effetto solo in Desktop. Per fare in modo che anche Desktop lo salti, aggiungi `!originalhost devbox` alla sua riga `Match`:1235Confronta l'output con quello di `ssh -G devbox`. Se le impostazioni del blocco, come `proxycommand`, compaiono solo nel primo output, il blocco ha effetto solo in Desktop. Per fare in modo che anche Desktop lo ignori, aggiungi `!originalhost devbox` alla sua riga `Match`:
1226 1236
1227```text ~/.ssh/config theme={null}1237```text ~/.ssh/config theme={null}
1228Match host *.internal.example.com !originalhost devbox1238Match host *.internal.example.com !originalhost devbox
1230 1240
1231Per confermare, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.1241Per confermare, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.
1232 1242
1233##### Impostazioni di forwarding che Desktop lascia disattivate1243##### Impostazioni di inoltro che Desktop lascia disattivate
1234 1244
1235Nella sua connessione alla macchina remota, Desktop lascia disattivati `ForwardAgent`, `ForwardX11`, `LocalForward`, `RemoteForward`, `DynamicForward` e `Tunnel`, anche dove la tua configurazione SSH li attiva. Nel [terminale](#run-commands-in-the-terminal) o in un comando `!`, aspettati che le tue impostazioni di forwarding vengano applicate [solo in alcuni casi](#limits-while-desktop-is-disconnected), perché lì Desktop può avviare un `ssh` separato che le segue.1245Sulla sua connessione alla macchina remota, Desktop lascia disattivati `ForwardAgent`, `ForwardX11`, `LocalForward`, `RemoteForward`, `DynamicForward` e `Tunnel`, anche dove la tua configurazione SSH li attiva. Nel [terminale](#run-commands-in-the-terminal) o in un comando `!`, aspettati che le tue impostazioni di inoltro si applichino [solo a volte](#limits-while-desktop-is-disconnected), perché Desktop può avviare lì un `ssh` separato che le segue.
1236 1246
1237* **Per raggiungere una porta sulla macchina remota**: [esegui tu il forwarding](#reach-a-port-on-the-remote-machine)1247* **Per raggiungere una porta sulla macchina remota**: [inoltrala tu stesso](#reach-a-port-on-the-remote-machine)
1238* **Per usare le tue chiavi dalla macchina remota**: configura una credenziale sulla macchina remota stessa, ad esempio per `git push`1248* **Per usare le tue chiavi dalla macchina remota**: configura una credenziale sulla macchina remota stessa, ad esempio per `git push`
1239 1249
1240Per evitare che Desktop inoltri il tuo agente SSH o una porta, esegui `ssh -G devbox` in un terminale sul tuo computer. Poi eseguilo di nuovo come può eseguirlo Desktop, con i valori `hostname` e `user` che stampa, come in `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. Il secondo output può mostrare impostazioni di un blocco `Match` che il primo salta.1250Per evitare che Desktop inoltri il tuo agente SSH o una porta, esegui `ssh -G devbox` in un terminale sul tuo computer. Poi eseguilo di nuovo come può eseguirlo Desktop, con i valori `hostname` e `user` che stampa, come in `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. Il secondo output può mostrare impostazioni di un blocco `Match` che il primo ignora.
1241 1251
1242Cerca in entrambi gli output una riga `forwardagent` con un valore diverso da `no`, e righe che iniziano con `localforward`, `remoteforward` o `dynamicforward`. Se ne trovi una, rimuovi quell'impostazione dalla tua configurazione SSH. Fai lo stesso per un host che il tuo `ProxyCommand` raggiunge con `ssh`.1252Cerca in entrambi gli output una riga `forwardagent` con un valore diverso da `no` e righe che iniziano con `localforward`, `remoteforward` o `dynamicforward`. Se ne trovi una, rimuovi quell'impostazione dalla tua configurazione SSH. Fai lo stesso per un host che il tuo `ProxyCommand` raggiunge con `ssh`.
1243 1253
1244#### Raggiungere una porta sulla macchina remota1254#### Raggiungere una porta sulla macchina remota
1245 1255
1246Per aprire un server in esecuzione sulla macchina remota, ad esempio un dev server sulla porta 3000, esegui tu il forwarding della porta. In un terminale sul tuo computer, esegui `ssh` con `-L` e l'host a cui ti connetti, ad esempio `devbox`:1256Per aprire un server in esecuzione sulla macchina remota, come un dev server sulla porta 3000, inoltra tu stesso la porta. In un terminale sul tuo computer, esegui `ssh` con `-L` e l'host a cui ti connetti, ad esempio `devbox`:
1247 1257
1248```bash theme={null}1258```bash theme={null}
1249ssh -N -L 3000:localhost:3000 devbox1259ssh -N -L 3000:localhost:3000 devbox
1250```1260```
1251 1261
1252Se hai compilato **SSH port** o **SSH key (optional)** nella connessione, aggiungi `-p` o `-i` con lo stesso valore. Lascia quel comando in esecuzione e apri `http://localhost:3000` in un browser sul tuo computer per raggiungere la porta 3000 della macchina remota. Se `ssh` stampa `open failed: administratively prohibited`, chiedi all'amministratore della macchina di consentire il forwarding TCP, controllato da `AllowTcpForwarding` nel `sshd_config` del server SSH.1262Se hai compilato **SSH port** o **SSH key (optional)** sulla connessione, aggiungi `-p` o `-i` con lo stesso valore. Lascia in esecuzione quel comando e apri `http://localhost:3000` in un browser sul tuo computer per raggiungere la porta 3000 della macchina remota. Se `ssh` stampa `open failed: administratively prohibited`, chiedi all'amministratore della macchina di consentire l'inoltro TCP, controllato da `AllowTcpForwarding` nel `sshd_config` del server SSH.
1253 1263
1254#### Macchine remote Windows1264#### Macchine remote Windows
1255 1265
1256Una macchina remota Windows richiede Claude Desktop v2.31226.0 o successiva.1266Una macchina remota Windows richiede Claude Desktop v2.31226.0 o versioni successive.
1257 1267
1258Usa OpenSSH Server di Microsoft. La macchina può essere x64 o ARM64. La shell avviata dal server SSH può essere `cmd.exe`, Windows PowerShell 5.1 o Git Bash.1268Usa OpenSSH Server di Microsoft. La macchina può essere x64 o ARM64. La shell avviata dal server SSH può essere `cmd.exe`, Windows PowerShell 5.1 o Git Bash.
1259 1269
1260Le macchine remote Windows vengono testate meno di quelle Linux. Prova il tuo lavoro lì prima di farvi affidamento.1270Le macchine remote Windows sono meno testate di quelle Linux. Prova il tuo lavoro su di esse prima di farvi affidamento.
1261 1271
1262Aspettati queste limitazioni, tra le altre, su una macchina remota Windows:1272Aspettati, tra gli altri, questi limiti su una macchina remota Windows:
1263 1273
1264* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`1274* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`
1265* **Sandbox**: lì Claude Code viene eseguito su Windows nativo, dove esegue i comandi senza sandbox. Consulta [dove viene eseguita la sandbox](https://code.claude.com/docs/it/sandboxing.md).1275* **Sandbox**: Claude Code viene eseguito lì su Windows nativo, dove esegue i comandi senza sandbox. Consulta [dove viene eseguita la sandbox](https://code.claude.com/docs/it/sandboxing.md).
1266* **Plugin**: Desktop non copia un plugin che contiene un nome di file o cartella che Windows non può memorizzare, ad esempio un nome con `:`. La sessione elenca i plugin che Desktop ha escluso.1276* **Plugin**: Desktop non copia un plugin che contiene un nome di file o cartella che Windows non può memorizzare, come un nome con `:`. La sessione elenca i plugin che Desktop ha escluso.
1267* **Server MCP**: su alcune macchine remote Windows, le chiamate di Claude ai server MCP da `claude_desktop_config.json` passano attraverso Desktop, quindi Claude non può chiamare i loro strumenti [mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected). Prima di Claude Desktop v2.37337.0, questo vale su tutte le macchine remote Windows.1277* **Server MCP**: su alcune macchine remote Windows, le chiamate di Claude ai server MCP da `claude_desktop_config.json` passano attraverso Desktop, quindi Claude non può chiamare i loro strumenti [mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected). Prima di Claude Desktop v2.37337.0, questo vale su ogni macchina remota Windows.
1268* **Worktree**: i worktree vengono creati in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.1278* **Worktree**: i worktree vanno in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.
1269* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti doverti connettere prima di vedere i messaggi precedenti di una sessione1279* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti dover connetterti prima di vedere i messaggi precedenti di una sessione
1270* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi creare un fork di una sessione solo dal suo primo messaggio1280* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi creare un fork di una sessione solo dal suo primo messaggio
1271* **Esecuzione durante la disconnessione**: un'attività [continua a essere eseguita mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected) solo se il server SSH consente a un programma di sopravvivere alla connessione che lo ha avviato. Per scoprirlo, [testa la macchina remota](#prepare-a-long-task).1281* **Esecuzione durante la disconnessione**: un'attività [continua a essere eseguita mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected) solo se il server SSH consente a un programma di sopravvivere alla connessione che lo ha avviato. Per scoprirlo, [testa la macchina remota](#prepare-a-long-task).
1272* **Processi residui**: al termine di una sessione, controlla sulla macchina i programmi avviati da Claude Code, perché possono continuare a essere eseguiti. L'[helper in background](#keep-a-task-running-while-desktop-is-disconnected) installato da Desktop non si arresta da solo lì.1282* **Processi residui**: al termine di una sessione, controlla sulla macchina se ci sono programmi avviati da Claude Code, perché possono continuare a essere eseguiti. Il [programma di supporto in background](#keep-a-task-running-while-desktop-is-disconnected) installato da Desktop non si arresta da solo lì.
1273 1283
1274#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso1284#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso
1275 1285
1276Se il tuo computer va in sospensione, perdi la connessione di rete o chiudi Desktop, l'attività prosegue finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected). Chiudere il coperchio equivale alla sospensione. Un riavvio di Desktop o del computer, anche per un aggiornamento, equivale a una chiusura.1286Se il tuo computer va in sospensione, perdi la connessione di rete o chiudi Desktop, l'attività continua finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected). Chiudere il coperchio conta come sospensione. Un riavvio di Desktop o del computer, anche per un aggiornamento, conta come chiusura.
1277 1287
1278Claude Code viene eseguito come processo sulla macchina remota, sotto un helper in background che Desktop installa lì, quindi non ha bisogno della tua connessione SSH per continuare. Il comportamento descritto in questa sezione richiede Claude Desktop v2.31226.0 o successiva.1288Claude Code viene eseguito come processo sulla macchina remota, sotto un programma di supporto in background che Desktop installa lì, quindi non ha bisogno della tua connessione SSH per continuare a funzionare. Il comportamento descritto in questa sezione richiede Claude Desktop v2.31226.0 o versioni successive.
1279 1289
1280> [!WARNING]1290> [!WARNING]
1281>1291>
1282> Se accedi a Desktop con un account Claude, non contare sul fatto che un'attività venga eseguita durante la notte. Desktop rinnova l'accesso per l'attività solo mentre Desktop è in esecuzione e connesso, quindi l'accesso dell'attività può scadere dopo la disconnessione, e l'attività si interrompe. Il tempo rimanente al momento della disconnessione varia e può essere di pochi minuti.1292> Se accedi a Desktop con un account Claude, non contare sul fatto che un'attività venga eseguita per tutta la notte. Desktop rinnova quell'accesso per l'attività solo mentre Desktop è in esecuzione e connesso, quindi l'accesso dell'attività può scadere dopo la disconnessione, e l'attività si interrompe. Il tempo rimanente al momento della disconnessione varia e può essere di pochi minuti soltanto.
1283>1293>
1284> Il lavoro svolto fino a quel momento resta sulla macchina remota e puoi continuare con un messaggio quando torni.1294> Il lavoro svolto fino a quel momento rimane sulla macchina remota e puoi continuare con un messaggio quando torni.
1285>1295>
1286> Se l'attività deve essere eseguita per tutta la notte:1296> Se l'attività deve essere eseguita per tutta la notte:
1287>1297>
1288> * [Mantieni il computer attivo](https://code.claude.com/docs/it/desktop-scheduled-tasks.md#how-scheduled-tasks-run) e online, con il coperchio aperto e Desktop in esecuzione1298> * [Mantieni il computer attivo](https://code.claude.com/docs/it/desktop-scheduled-tasks.md#how-scheduled-tasks-run) e online, con il coperchio aperto e Desktop in esecuzione
1289> * Usa un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH, per la macchina remota e per qualsiasi jump host lungo il percorso. Desktop potrà così riconnettersi da solo dopo un'interruzione.1299> * Usa un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH, per la macchina remota e per ogni jump host lungo il percorso. Desktop può quindi riconnettersi da solo dopo un'interruzione.
1290>1300>
1291> Per un'attività che deve essere eseguita mentre il computer è in sospensione o spento, avvia invece una [sessione cloud](#run-long-running-tasks-in-the-cloud).1301> Per un'attività che deve essere eseguita mentre il computer è in sospensione o spento, avvia invece una [sessione cloud](#run-long-running-tasks-in-the-cloud).
1292 1302
1293* **Dopo la sospensione o una perdita di rete**: recuperi l'attività in esecuzione se il processo [è ancora in esecuzione](#limits-while-desktop-is-disconnected) e Desktop può accedere senza prompt. In caso contrario, [invia un messaggio](#reconnect-after-sleep-or-a-network-loss).1303* **Dopo una sospensione o una perdita di rete**: recuperi l'attività in esecuzione se il processo [è ancora in esecuzione](#limits-while-desktop-is-disconnected) e Desktop può accedere senza prompt. Se non può, [invia un messaggio](#reconnect-after-sleep-or-a-network-loss).
1294* **Dopo una chiusura**: l'attività continua a essere eseguita, ma la perdi quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di chiudere. Se hai perso l'attività, invia un messaggio per continuare.1304* **Dopo una chiusura**: l'attività continua a essere eseguita, ma la perdi quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di chiudere. Se hai perso l'attività, invia un messaggio per continuare.
1295 1305
1296Quando torni e l'attività non è completata, controlla se c'è un avviso che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:1306Quando torni e l'attività non è terminata, controlla se ci sono avvisi che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:
1297 1307
1298* **Desktop non riesce a riconnettersi**: la sessione indica il motivo, e anche una notifica potrebbe indicarlo. Desktop potrebbe [aver bisogno che tu acceda](#reconnect-after-sleep-or-a-network-loss).1308* **Desktop non riesce a riconnettersi**: la sessione indica il motivo, e può farlo anche una notifica. Desktop potrebbe [aver bisogno che tu effettui l'accesso](#reconnect-after-sleep-or-a-network-loss).
1299* **Errore di autenticazione**: il [token di accesso o la credenziale](#limits-while-desktop-is-disconnected) potrebbe essere scaduto. Con un account Claude, invia un messaggio per continuare. Con un provider di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1309* **Errore di autenticazione**: il [token di accesso o la credenziale](#limits-while-desktop-is-disconnected) potrebbe essere scaduto. Con un account Claude, invia un messaggio per continuare. Con un provider di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).
1300* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)1310* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)
1301* **Nessuno di questi**: invia un messaggio per continuare1311* **Nessuno di questi casi**: invia un messaggio per continuare
1302 1312
1303##### Preparare un'attività lunga1313##### Preparare un'attività lunga
1304 1314
1305* **Aggiorna prima**: aggiorna Desktop prima di avviare un'attività lunga. Su macOS e Windows, Desktop può riavviarsi da solo per installare un aggiornamento che ha scaricato. Quel riavvio attende mentre Claude sta lavorando a un'attività SSH. Per impostazione predefinita, dopo che l'aggiornamento ha atteso 72 ore, il riavvio può avvenire durante l'attività se Desktop può [ricollegarsi all'attività in seguito](#reopen-a-session-after-you-quit-desktop).1315* **Aggiorna prima**: aggiorna Desktop prima di avviare un'attività lunga. Su macOS e Windows, Desktop può riavviarsi da solo per installare un aggiornamento che ha scaricato. Quel riavvio attende mentre Claude lavora a un'attività SSH. Per impostazione predefinita, dopo che l'aggiornamento ha atteso 72 ore, il riavvio può avvenire durante l'attività se Desktop può [ricollegarsi all'attività in seguito](#reopen-a-session-after-you-quit-desktop).
1306* **Verifica prima di chiudere**: non sempre recuperi l'attività in esecuzione dopo una chiusura o un riavvio, ad esempio dopo alcuni aggiornamenti di Desktop. Per i casi specifici, consulta [Riaprire una sessione dopo aver chiuso Desktop](#reopen-a-session-after-you-quit-desktop).1316* **Verifica prima di chiudere**: non sempre recuperi l'attività in esecuzione dopo una chiusura o un riavvio, ad esempio dopo alcuni aggiornamenti di Desktop. Per i casi specifici, consulta [Riaprire una sessione dopo aver chiuso Desktop](#reopen-a-session-after-you-quit-desktop).
1307* **Su una versione precedente, lascia Desktop aperto**: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo che Desktop si chiude o si riavvia. Lo stesso vale con un provider di terze parti su macOS o Linux prima della v2.42304.0. In entrambi i casi, lascia Desktop aperto durante l'attività. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).1317* **Su una versione precedente, lascia Desktop aperto**: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo che Desktop si chiude o si riavvia. Lo stesso vale con un provider di terze parti su macOS o Linux prima della v2.42304.0. In entrambi i casi, lascia Desktop aperto durante l'attività. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).
1308* **Riduci le richieste**: scegli una modalità di permesso, regole o hook che [facciano attendere meno spesso l'attività](#handle-requests-that-arrive-while-you-are-away)1318* **Riduci le richieste**: scegli una modalità di permesso, regole o hook che [facciano attendere meno spesso l'attività](#handle-requests-that-arrive-while-you-are-away)
1309* **Controlla il jump host**: se il tuo jump host chiede un accesso, ad esempio una notifica push su un telefono, passa a un accesso che funzioni senza prompt. Altrimenti Desktop può inviare un'altra notifica push ogni volta che tenta di riconnettersi.1319* **Controlla il jump host**: se il tuo jump host chiede un accesso, ad esempio una notifica push sul telefono, passa a un accesso che funzioni senza prompt. Altrimenti Desktop può inviare un'altra notifica push ogni volta che tenta di riconnettersi.
1310* **Testa la macchina remota**: avvia un'attività breve, chiudi Desktop mentre l'attività è ancora in esecuzione e riapri la sessione molto dopo il momento in cui l'attività dovrebbe essere completata. Se l'attività non è finita e la sessione non mostra errori di autenticazione, controlla sulla macchina remota [cosa può terminare un'attività](#limits-while-desktop-is-disconnected).1320* **Testa la macchina remota**: avvia un'attività breve, chiudi Desktop mentre l'attività è ancora in esecuzione e riapri la sessione ben dopo il momento in cui l'attività dovrebbe essere terminata. Se l'attività non è terminata e la sessione non mostra alcun errore di autenticazione, controlla sulla macchina remota [cosa può terminare un'attività](#limits-while-desktop-is-disconnected).
1311* **Tieni i comandi fuori dal terminale di Desktop**: se la macchina remota [disconnette i terminali inattivi](#limits-while-desktop-is-disconnected), esegui i tuoi comandi da un accesso SSH esterno a Desktop1321* **Tieni i comandi fuori dal terminale di Desktop**: se la macchina remota [disconnette i terminali inattivi](#limits-while-desktop-is-disconnected), esegui i tuoi comandi da un accesso SSH esterno a Desktop
1312 1322
1313##### Limiti mentre Desktop è disconnesso1323##### Limiti mentre Desktop è disconnesso
1314 1324
1315Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, oppure quando l'helper si arresta o viene sostituito:1325Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, oppure quando il programma di supporto si arresta o viene sostituito:
1316 1326
1317* **Token di accesso o credenziale**: con un account Claude, l'attività si interrompe con un errore di autenticazione quando il token scade. Con un provider di terze parti, lo stesso vale per una credenziale che scade, ad esempio una proveniente dal single sign-on o da un credential helper. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Con un account Claude, [mantieni Desktop in esecuzione e connesso](#keep-a-task-running-while-desktop-is-disconnected) così che possa rinnovare l'accesso.1327* **Token di accesso o credenziale**: con un account Claude, l'attività si interrompe con un errore di autenticazione quando il token scade. Con un provider di terze parti, lo stesso vale per una credenziale che scade, come una ottenuta tramite single sign-on o un credential helper. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Con un account Claude, [mantieni Desktop in esecuzione e connesso](#keep-a-task-running-while-desktop-is-disconnected) in modo che possa rinnovare l'accesso.
1318* **La macchina remota**: se la macchina remota si riavvia, o termina i tuoi processi quando la connessione SSH si chiude, l'attività in esecuzione termina. Nulla la riavvia mentre Desktop è disconnesso. Le macchine Linux in cui `KillUserProcesses` di systemd-logind è `yes` e si applica al tuo utente terminano i tuoi processi in questo modo. Per mantenere un'attività in esecuzione lì, chiedi all'amministratore di escludere il tuo utente, ad esempio con `KillExcludeUsers`.1328* **La macchina remota**: se la macchina remota si riavvia, o termina i tuoi processi quando la connessione SSH si chiude, l'attività in esecuzione termina. Nulla la riavvia mentre Desktop è disconnesso. Le macchine Linux in cui `KillUserProcesses` di systemd-logind è `yes` e si applica al tuo utente terminano i tuoi processi in questo modo. Per mantenere un'attività in esecuzione lì, chiedi all'amministratore di escludere il tuo utente, ad esempio con `KillExcludeUsers`.
1319* **Terminali inattivi**: alcune macchine remote Linux disconnettono un terminale in cui nessuno digita per un tempo prestabilito (`StopIdleSessionSec` di systemd-logind). Con Desktop su macOS o Linux, il [terminale](#run-commands-in-the-terminal) di una sessione e i comandi `!` condividono per impostazione predefinita la connessione SSH di Desktop. Quella disconnessione termina quindi la connessione mentre Desktop è connesso, e l'attività in esecuzione può terminare con essa. Chiudere il riquadro del terminale non lo impedisce, quindi [tieni i comandi fuori da quel terminale](#prepare-a-long-task).1329* **Terminali inattivi**: alcune macchine remote Linux disconnettono un terminale in cui nessuno digita per un tempo stabilito (`StopIdleSessionSec` di systemd-logind). Con Desktop su macOS o Linux, il [terminale](#run-commands-in-the-terminal) di una sessione e i comandi `!` condividono per impostazione predefinita la connessione SSH di Desktop. Quella disconnessione termina quindi la connessione mentre Desktop è connesso, e l'attività in esecuzione può terminare con essa. Chiudere il riquadro del terminale non lo impedisce, quindi [tieni i comandi fuori da quel terminale](#prepare-a-long-task).
1320* **Aggiornamenti di Desktop**: se un aggiornamento porta un nuovo helper, Desktop sostituisce l'helper sulla macchina remota in una connessione successiva, il che può terminare un'attività ancora in esecuzione1330* **Aggiornamenti di Desktop**: se un aggiornamento include un nuovo programma di supporto, Desktop sostituisce il programma di supporto sulla macchina remota a una connessione successiva, il che può terminare un'attività ancora in esecuzione
1321* **Assenze prolungate**: su una macchina remota Linux o macOS, se Desktop non si connette per 30 giorni, l'helper si arresta e termina ogni processo Claude Code in esecuzione sotto di esso. Connettiti prima di allora.1331* **Assenze prolungate**: su una macchina remota Linux o macOS, se Desktop non si connette per 30 giorni, il programma di supporto si arresta e termina ogni processo di Claude Code eseguito sotto di esso. Connettiti prima di allora.
1322 1332
1323Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:1333Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:
1324 1334
1325* **Worktree**: in una sessione che usa un [worktree](#run-a-session-in-its-own-worktree), Desktop controlla ogni modifica ai file prima che Claude la esegua. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi non riesce. I comandi della shell vengono comunque eseguiti. Su una macchina remota Linux o macOS, [le modifiche possono continuare a funzionare](#worktree-edits-while-disconnected). Se non sei sicuro, avvia la sessione senza un worktree.1335* **Worktree**: in una sessione che usa un [worktree](#run-a-session-in-its-own-worktree), Desktop controlla ogni modifica ai file prima che Claude la esegua. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi non riesce. I comandi della shell vengono comunque eseguiti. Su una macchina remota Linux o macOS, [le modifiche possono continuare a funzionare](#worktree-edits-while-disconnected). Se non sei sicuro, avvia la sessione senza un worktree.
1326* **Restrizioni sulle cartelle**: se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop controlla ogni lettura, ricerca e modifica di file, con o senza un worktree. Mentre Desktop è disconnesso, ciascuna attende fino a 10 minuti e poi non riesce.1336* **Restrizioni sulle cartelle**: se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop controlla ogni lettura, ricerca e modifica di file, con o senza worktree. Mentre Desktop è disconnesso, ciascuna attende fino a 10 minuti e poi non riesce.
1327* **Connettori**: i [connettori](#connect-external-tools) e gli altri strumenti forniti da Desktop passano attraverso Desktop, quindi mentre è disconnesso ogni chiamata non riesce dopo circa 30 secondi1337* **Connettori**: i [connettori](#connect-external-tools) e gli altri strumenti forniti da Desktop passano attraverso Desktop, quindi mentre è disconnesso ogni chiamata non riesce dopo circa 30 secondi
1328* **Workflow**: Desktop controlla ogni nuovo [workflow](https://code.claude.com/docs/it/workflows.md) prima che venga avviato, quindi mentre Desktop è disconnesso un nuovo workflow attende fino a 10 minuti e poi non riesce1338* **Workflow**: Desktop controlla ogni nuovo [workflow](https://code.claude.com/docs/it/workflows.md) prima che inizi, quindi mentre Desktop è disconnesso un nuovo workflow attende fino a 10 minuti e poi non riesce
1329* **Server MCP**: i server MCP che Claude Code avvia sulla macchina remota non passano attraverso Desktop, quindi Claude può ancora chiamare i loro strumenti. I server da `claude_desktop_config.json` rientrano tra questi solo se Desktop non usa il suo [client SSH integrato](#worktree-edits-while-disconnected). Altrimenti, e su [alcune macchine remote Windows](#windows-remote-machines), Claude non può chiamare i loro strumenti mentre Desktop è disconnesso.1339* **Server MCP**: i server MCP che Claude Code avvia sulla macchina remota non passano attraverso Desktop, quindi Claude può comunque chiamare i loro strumenti. I server da `claude_desktop_config.json` rientrano tra questi solo se Desktop non usa il suo [client SSH integrato](#worktree-edits-while-disconnected). Altrimenti, e su [alcune macchine remote Windows](#windows-remote-machines), Claude non può chiamare i loro strumenti mentre Desktop è disconnesso.
1330 1340
1331> [accordion] Quando le modifiche in un worktree continuano a funzionare1341> [accordion] Quando le modifiche in un worktree continuano a funzionare
1332>1342>
1334>1344>
1335> Le modifiche non riescono comunque in alcuni casi, tra cui questi:1345> Le modifiche non riescono comunque in alcuni casi, tra cui questi:
1336>1346>
1337> * **Client SSH integrato**: Desktop lo usa, ad esempio in un'installazione dal Microsoft Store, su un computer Windows senza OpenSSH di Microsoft 9.4 o successiva, oppure per impostazione predefinita su Windows con un provider di terze parti1347> * **Client SSH integrato**: Desktop lo usa, ad esempio in un'installazione dal Microsoft Store, o su un computer Windows senza OpenSSH di Microsoft 9.4 o versioni successive
1338> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa, oppure `~/.claude`1348> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa, oppure `~/.claude`
1339> * **Percorsi macOS**: su una macchina remota macOS, il repository si trova in `/Volumes`, oppure un nome di cartella nel percorso del repository o del worktree contiene un `~` o un carattere non ASCII1349> * **Percorsi macOS**: su una macchina remota macOS, il repository si trova in `/Volumes`, oppure il nome di una cartella nel percorso del repository o del worktree contiene un `~` o un carattere non ASCII
1340> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare1350> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare
1341> * **Launcher aziendale**: prima di Claude Desktop v2.37337.0, accedi con un account Claude e la tua organizzazione avvia Claude Code sulla macchina remota tramite un [launcher aziendale](https://code.claude.com/docs/it/corporate-launcher.md)1351> * **Launcher aziendale**: prima di Claude Desktop v2.37337.0, accedi con un account Claude e la tua organizzazione avvia Claude Code sulla macchina remota tramite un [launcher aziendale](https://code.claude.com/docs/it/corporate-launcher.md)
1342>1352>
1343> Una sessione senza worktree non prevede questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.1353> Una sessione senza worktree non ha questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.
1344 1354
1345##### Gestire le richieste che arrivano mentre sei via1355##### Gestire le richieste che arrivano mentre sei assente
1346 1356
1347Se Claude ha bisogno della tua approvazione o ti fa una domanda mentre Desktop è disconnesso, Claude attende sulla macchina remota. L'attesa non ha un limite di tempo proprio. Quando Desktop si ricollega al processo, ti mostra la richiesta. Se invece Desktop avvia un nuovo processo, perdi la richiesta.1357Se Claude ha bisogno della tua approvazione o ti fa una domanda mentre Desktop è disconnesso, Claude attende sulla macchina remota. L'attesa non ha un limite di tempo proprio. Quando Desktop si ricollega al processo, ti mostra la richiesta. Se invece Desktop avvia un nuovo processo, perdi la richiesta.
1348 1358
1349Se una richiesta che ti attendeva non c'è più quando torni, una causa è che Desktop si è riavviato da solo, ad esempio per installare un aggiornamento. Mantieni una richiesta attraverso un riavvio solo se Desktop può ricollegarsi al processo, quindi verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di lasciare un'attività in esecuzione.1359Se una richiesta che ti attendeva non c'è più quando torni, una causa è che Desktop si è riavviato da solo, ad esempio per installare un aggiornamento. Conservi una richiesta durante un riavvio solo se Desktop può ricollegarsi al processo, quindi verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di lasciare un'attività in esecuzione.
1350 1360
1351Se perdi una richiesta, invia un messaggio per continuare.1361Se perdi una richiesta, invia un messaggio per continuare.
1352 1362
1353Per ridurre la frequenza con cui un'attività si ferma ad attenderti, e per ricevere sue notizie mentre sei via, configura uno di questi elementi prima di andartene:1363Per ridurre la frequenza con cui un'attività si ferma ad aspettarti, e per ricevere notizie mentre sei assente, configura uno qualsiasi di questi elementi prima di allontanarti:
1354 1364
1355* **Modalità auto**: scegli la [modalità auto](#choose-a-permission-mode) se [è disponibile per te](#auto-mode-availability). Dopo blocchi ripetuti, [ti viene chiesto di nuovo](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back).1365* **Modalità auto**: scegli la [modalità auto](#choose-a-permission-mode) se [è disponibile per te](#auto-mode-availability). Dopo blocchi ripetuti, [ti viene chiesto di nuovo](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back).
1356* **Regole di autorizzazione**: nel tuo file di impostazioni utente sulla macchina remota, `~/.claude/settings.json`, aggiungi [regole allow](https://code.claude.com/docs/it/permissions.md#manage-permissions) per i comandi di cui l'attività ha bisogno. Se la tua organizzazione [accetta regole di permesso solo dalle impostazioni gestite](https://code.claude.com/docs/it/settings-reference.md#allowmanagedpermissionrulesonly), chiedi al tuo amministratore di aggiungerle alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota. Per le regole allow nel `.claude/settings.json` di un progetto, consulta [Regole allow del progetto e attendibilità del workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust).1366* **Regole di autorizzazione**: nel tuo file di impostazioni utente sulla macchina remota, `~/.claude/settings.json`, aggiungi [regole allow](https://code.claude.com/docs/it/permissions.md#manage-permissions) per i comandi di cui l'attività ha bisogno. Se la tua organizzazione [accetta regole di permesso solo dalle impostazioni gestite](https://code.claude.com/docs/it/settings-reference.md#allowmanagedpermissionrulesonly), chiedi all'amministratore di aggiungerle alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota. Per le regole allow nel `.claude/settings.json` di un progetto, consulta [Regole allow del progetto e attendibilità del workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust).
1357* **Un hook che risponde**: configura un [hook `PermissionRequest`](https://code.claude.com/docs/it/hooks#permissionrequest) in `~/.claude/settings.json` sulla macchina remota per consentire o negare le richieste al posto tuo1367* **Un hook che risponde**: configura un [hook `PermissionRequest`](https://code.claude.com/docs/it/hooks#permissionrequest) in `~/.claude/settings.json` sulla macchina remota per consentire o negare le richieste al posto tuo
1358* **Un hook che ti avvisa**: configura un [hook `Notification`](https://code.claude.com/docs/it/hooks#notification) con il matcher `permission_prompt` nello stesso file per inviarti un messaggio quando una richiesta è in attesa1368* **Un hook che ti avvisa**: configura un [hook `Notification`](https://code.claude.com/docs/it/hooks#notification) con il matcher `permission_prompt` nello stesso file per inviarti un messaggio quando una richiesta è in attesa
1359* **Un hook che ti dice quando Claude ha finito**: configura un [hook `Stop`](https://code.claude.com/docs/it/hooks#stop) nello stesso file per inviarti un messaggio quando Claude ha finito di rispondere. Non viene eseguito quando un errore dell'API termina il turno. Per quel caso, configura un [hook `StopFailure`](https://code.claude.com/docs/it/hooks#stopfailure).1369* **Un hook che ti dice quando Claude ha finito**: configura un [hook `Stop`](https://code.claude.com/docs/it/hooks#stop) nello stesso file per inviarti un messaggio quando Claude ha finito di rispondere. Non viene eseguito quando un errore dell'API termina il turno. Per quel caso, configura un [hook `StopFailure`](https://code.claude.com/docs/it/hooks#stopfailure).
1360 1370
1361Se la tua organizzazione [esegue solo hook gestiti](https://code.claude.com/docs/it/settings-reference.md#allowmanagedhooksonly), chiedi al tuo amministratore di aggiungere l'hook alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota.1371Se la tua organizzazione [esegue solo hook gestiti](https://code.claude.com/docs/it/settings-reference.md#allowmanagedhooksonly), chiedi all'amministratore di aggiungere l'hook alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota.
1362 1372
1363Claude Code non approva automaticamente [alcune azioni](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) in nessuna modalità di permesso, incluso Bypass permissions. A seconda della modalità di permesso, Claude Code nega tale azione o te la chiede, e l'attività attende quindi la tua risposta.1373Claude Code non approva automaticamente [alcune azioni](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) in nessuna modalità di permesso, inclusa Bypass permissions. A seconda della modalità di permesso, Claude Code nega tale azione o te lo chiede, e l'attività attende quindi la tua risposta.
1364 1374
1365##### Riconnettersi dopo la sospensione o una perdita di rete1375##### Riconnettersi dopo una sospensione o una perdita di rete
1366 1376
1367Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza prompt, ad esempio con una chiave detenuta dal tuo agente SSH.1377Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza prompt, ad esempio con una chiave conservata dal tuo agente SSH.
1368 1378
1369* **Password memorizzata**: anche una password che lasci memorizzare a Desktop funziona senza prompt, ma per un'assenza prolungata è preferibile una chiave detenuta dal tuo agente SSH. Se gli accessi con quella password si interrompono o si bloccano, Desktop può smettere di riconnettersi e attenderti.1379* **Password memorizzata**: anche una password che hai lasciato memorizzare a Desktop funziona senza prompt, ma per un'assenza prolungata preferisci una chiave conservata dal tuo agente SSH. Se gli accessi con quella password si interrompono o si bloccano, Desktop può smettere di riconnettersi e attenderti.
1370* **Qualsiasi altro prompt**: se la macchina remota chiede qualcos'altro, ad esempio un codice monouso, puoi ricevere una notifica sul tuo computer. Fai clic sulla notifica, oppure invia un messaggio nella sessione, e Desktop mostra il prompt.1380* **Qualsiasi altro prompt**: se la macchina remota chiede qualcos'altro, come un codice monouso, puoi ricevere una notifica sul tuo computer. Fai clic sulla notifica, o invia un messaggio nella sessione, e Desktop mostra il prompt.
1371 1381
1372> [accordion] Se un jump host chiede un accesso, l'interruzione è lunga, manca dell'output o il processo non c'è più1382> [accordion] Se un jump host chiede un accesso, l'interruzione è lunga, un messaggio non viene inviato, manca l'output o il processo non c'è più
1373>1383>
1374> * **Jump host, le notifiche push si interrompono mentre sei via**: questo può accadere con Desktop su macOS o Linux quando nessuno risponde alla richiesta di accesso di un jump host, ad esempio una notifica push su un telefono. Desktop smette quindi di riconnettersi mentre nessuno è al tuo computer. Quando sblocchi o usi il computer, puoi ricevere un'altra notifica push, perché Desktop può riprovare. Dopo tre tentativi senza risposta, attende finché non riprovi o invii un messaggio.1384> * **Jump host, le notifiche push si interrompono mentre sei assente**: può succedere con Desktop su macOS o Linux quando nessuno risponde alla richiesta di accesso di un jump host, ad esempio una notifica push sul telefono. Desktop smette quindi di riconnettersi mentre nessuno è al tuo computer. Quando sblocchi o usi il computer, puoi ricevere un'altra notifica push, perché Desktop può riprovare. Dopo tre tentativi senza risposta, attende finché non riprovi o invii un messaggio.
1375> * **Jump host, le notifiche push continuano ad arrivare**: dove Desktop non può capire che nessuno risponde, come con Desktop su Windows, continua a tentare finché ha un processo a cui ricollegarsi, che quel processo sia ancora in esecuzione o meno. Puoi ricevere un'altra notifica push a ogni tentativo. Per interrompere i tentativi, chiudi Desktop, il che [può farti perdere l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop).1385> * **Jump host, le notifiche push continuano ad arrivare**: dove Desktop non può capire che nessuno risponde, come con Desktop su Windows, continua a tentare finché ha un processo a cui ricollegarsi, che quel processo sia ancora in esecuzione o meno. Puoi ricevere un'altra notifica push a ogni tentativo. Per interrompere i tentativi, chiudi Desktop, il che [può farti perdere l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop).
1376> * **Interruzione lunga**: Desktop rallenta fino a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio, che Desktop recapita non appena è connesso.1386> * **Interruzione lunga**: Desktop rallenta a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio. Desktop tenta di consegnare il messaggio una volta connesso.
1377> * **Output mancante**: mentre Desktop è disconnesso, l'helper conserva l'output più recente di Claude Code di ogni sessione in un buffer da 16 MiB e scarta l'output più vecchio. Dopo che Desktop si è riconnesso, la sessione può mostrare `Loading recent output from <host>…`. Se Desktop non riesce a caricare tutto l'output, vedi la riga `Some output produced while you were disconnected may be missing here.` La riga non significa che l'attività si sia interrotta.1387> * **Messaggio non inviato**: la riga `Your organization's settings haven't loaded, so your message to <host> wasn't sent. Retry to send it.` sotto il tuo messaggio significa che Desktop si è riconnesso e ha trattenuto il messaggio, perché le impostazioni della tua organizzazione non erano ancora state caricate. Seleziona **Retry** per inviare subito il messaggio. Se non fai nulla, Desktop riprova una volta caricate le impostazioni.
1378> * **Processo non più presente**: il processo è terminato mentre Desktop era disconnesso, come quando la macchina remota si riavvia. Desktop può quindi avviarne uno nuovo dalla cronologia salvata della conversazione e dire a Claude di continuare l'attività. Se l'attività resta ferma, invia un messaggio. Con un provider di terze parti, aggiorna a Claude Desktop v2.42304.0 o successiva, perché le versioni precedenti non continuano mai l'attività da sole.1388> * **Output mancante**: mentre Desktop è disconnesso, il programma di supporto conserva l'output più recente di Claude Code di ogni sessione in un buffer da 16 MiB ed elimina l'output più vecchio. Dopo che Desktop si è riconnesso, la sessione può mostrare `Loading recent output from <host>…`. Se Desktop non riesce a caricare tutto l'output, vedi la riga `Some output produced while you were disconnected may be missing here.` La riga non significa che l'attività si sia interrotta.
1389> * **Processo non più presente**: il processo è terminato mentre Desktop era disconnesso, come quando la macchina remota si riavvia. Desktop può quindi avviarne uno nuovo dalla cronologia salvata della conversazione e dire a Claude di continuare l'attività. Se l'attività resta ferma, invia un messaggio. Con un provider di terze parti, aggiorna a Claude Desktop v2.42304.0 o versioni successive, perché le versioni precedenti non continuano mai l'attività da sole.
1379 1390
1380##### Riaprire una sessione dopo aver chiuso Desktop1391##### Riaprire una sessione dopo aver chiuso Desktop
1381 1392
1382Dopo che chiudi Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si interrompe quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Mentre Desktop è chiuso, l'attività viene eseguita finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected).1393Dopo che chiudi Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si interrompe quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Mentre Desktop è chiuso, l'attività viene eseguita finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected).
1383 1394
1384* **Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0**: non recuperi l'attività, anche se Desktop è stato aggiornato nel frattempo. Riavvia Desktop solo quando prevedi che l'attività sia completata, perché la sessione può aprirsi all'avvio di Desktop, e l'attività si interrompe quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi anche in questo caso finché non prevedi che sia completata.1395* **Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0**: non recuperi l'attività, anche se nel frattempo Desktop è stato aggiornato. Avvia di nuovo Desktop solo quando prevedi che l'attività sia terminata, perché la sessione può aprirsi all'avvio di Desktop, e l'attività si interrompe quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi anche in questo caso finché non prevedi che sia terminata.
1385* **Provider di terze parti su macOS o Linux, attività avviata in una versione precedente alla v2.42304.0**: non recuperi l'attività. Riavvia Desktop solo quando prevedi che l'attività sia completata.1396* **Provider di terze parti su macOS o Linux, attività avviata in una versione precedente alla v2.42304.0**: non recuperi l'attività. Avvia di nuovo Desktop solo quando prevedi che l'attività sia terminata.
1386* **Qualsiasi altra attività**: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre può ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi [aggiorna prima di un'attività lunga](#prepare-a-long-task).1397* **Qualsiasi altra attività**: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre può ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi [aggiorna prima di un'attività lunga](#prepare-a-long-task).
1387 1398
1388Quando l'attività si interrompe, la sessione può mostrare `Restarting Claude Code on <host>…` mentre Desktop avvia un nuovo processo. Perdi anche qualsiasi approvazione o domanda che ti stava attendendo. Se Claude non continua da solo, invia un messaggio, e Claude continua dalla cronologia salvata della conversazione.1399Quando l'attività si interrompe, la sessione può mostrare `Restarting Claude Code on <host>…` mentre Desktop avvia un nuovo processo. Perdi anche qualsiasi approvazione o domanda che ti attendeva. Se Claude non continua da solo, invia un messaggio, e Claude continua dalla cronologia salvata della conversazione.
1389 1400
1390Per i deploy di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1401Per i deploy di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).
1391 1402
1392> [!WARNING]1403> [!WARNING]
1393>1404>
1394> Mentre il processo Claude Code di una conversazione è ancora in esecuzione, non eseguire [`claude --resume`](https://code.claude.com/docs/it/cli-reference#cli-flags) per quella conversazione sulla macchina remota. Claude Code non te lo impedisce, e entrambi i processi scrivono quindi nella stessa conversazione. Se non sei sicuro, aggiungi `--fork-session`, che continua in una copia della conversazione, ma entrambi i processi lavorano comunque sugli stessi file.1405> Mentre il processo di Claude Code di una conversazione è ancora in esecuzione, non eseguire [`claude --resume`](https://code.claude.com/docs/it/cli-reference#cli-flags) per quella conversazione sulla macchina remota. Claude Code non te lo impedisce, ed entrambi i processi scrivono quindi nella stessa conversazione. Se non sei sicuro, aggiungi `--fork-session`, che continua in una copia della conversazione, ma entrambi i processi lavorano comunque sugli stessi file.
1395 1406
1396#### Scegliere dove vanno i worktree delle sessioni SSH1407#### Scegliere dove vanno i worktree delle sessioni SSH
1397 1408
1398A meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare, le nuove sessioni SSH creano i propri [worktree](#run-a-session-in-its-own-worktree) nella prima di queste posizioni che risulta impostata:1409A meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare, le nuove sessioni SSH creano i loro [worktree](#run-a-session-in-its-own-worktree) nella prima di queste posizioni che risulta impostata:
1399 1410
14001. **Worktree folder** nella connessione SSH14111. **Worktree folder** sulla connessione SSH
14012. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota14122. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota
14023. `<project-root>/.claude/worktrees/`, il valore predefinito14133. `<project-root>/.claude/worktrees/`, il valore predefinito
1403 1414
1404Ogni progetto ottiene una propria sottocartella nella cartella che imposti, quindi con `~/worktrees` il percorso di un worktree è `~/worktrees/<project>-<id>/<worktree-name>`. Se la cartella che imposti si trova all'interno del progetto, Desktop la ignora per quel progetto e usa il valore predefinito. Su una [macchina remota Windows](#windows-remote-machines), Desktop usa sempre il valore predefinito.1415Ogni progetto ottiene una propria sottocartella nella cartella che imposti, quindi con `~/worktrees` il percorso di un worktree è `~/worktrees/<project>-<id>/<worktree-name>`. Se la cartella che imposti si trova all'interno del progetto, Desktop la ignora per quel progetto e usa quella predefinita. Su una [macchina remota Windows](#windows-remote-machines), Desktop usa sempre quella predefinita.
1405 1416
1406##### Impostare la cartella dei worktree su una connessione esistente1417##### Impostare la cartella dei worktree su una connessione esistente
1407 1418
1408Imposta **Worktree folder** nelle impostazioni di una connessione che hai aggiunto in precedenza o di una gestita dalla tua organizzazione. Il campo richiede Claude Desktop v1.44121.0 o successiva. Se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop nasconde il campo e mantiene i worktree all'interno del progetto.1419Imposta **Worktree folder** nelle impostazioni di una connessione che hai aggiunto in precedenza o di una gestita dalla tua organizzazione. Il campo richiede Claude Desktop v1.44121.0 o successivo. Se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop nasconde il campo e mantiene i worktree all'interno del progetto.
1409 1420
1410**1. Trova la connessione**1421**1. Trova la connessione**
1411 1422
1413 1424
1414**2. Apri le impostazioni della connessione**1425**2. Apri le impostazioni della connessione**
1415 1426
1416Passa il mouse sulla connessione e fai clic sull'icona a forma di ingranaggio. Se la finestra di dialogo che si apre mostra **Edit connection…** accanto a **Host**, seleziona **Edit connection…**.1427Passa il puntatore sulla connessione e fai clic sull'icona a forma di ingranaggio. Se la finestra di dialogo che si apre mostra **Edit connection…** accanto a **Host**, seleziona **Edit connection…**.
1417 1428
1418**3. Imposta la cartella**1429**3. Imposta la cartella**
1419 1430
1420In **Worktree folder**, inserisci una cartella sulla macchina remota, ad esempio `~/worktrees`, e seleziona **Save changes**.1431In **Worktree folder**, inserisci una cartella sulla macchina remota, come `~/worktrees`, e seleziona **Save changes**.
1421 1432
1422#### File e processi sulla macchina remota1433#### File e processi sulla macchina remota
1423 1434
1424Desktop installa un programma helper e Claude Code in `~/.claude/remote/` nella directory home di ciascun utente che si connette a una macchina remota Linux o macOS. L'helper non resta in ascolto su alcuna porta di rete, ma Claude Code e i programmi che avvia, come i server MCP e i server di sviluppo, possono farlo.1435Desktop installa un programma di supporto e Claude Code in `~/.claude/remote/` nella directory home di ogni utente che si connette a una macchina remota Linux o macOS. Il programma di supporto non è in ascolto su alcuna porta di rete, ma Claude Code e i programmi che avvia, come i server MCP e i server di sviluppo, possono esserlo.
1425 1436
1426| Cartella | Contenuto |1437| Cartella | Contenuto |
1427| - | - |1438| - | - |
1428| `~/.claude/remote/srv/` | L'helper, in una cartella per versione |1439| `~/.claude/remote/srv/` | Il programma di supporto, in una cartella per versione |
1429| `~/.claude/remote/ccd-cli/` | Claude Code, in un file per versione |1440| `~/.claude/remote/ccd-cli/` | Claude Code, in un file per versione |
1430| `~/.claude/remote/run/` | I file di runtime dell'helper, come il suo socket e il suo log, in una cartella per ciascun computer che si connette |1441| `~/.claude/remote/run/` | I file di runtime del programma di supporto, come il suo socket e il suo log, in una cartella per ogni computer che si connette |
1431| `~/.claude/remote/plugins/` | I plugin che Desktop copia dal computer dell'utente |1442| `~/.claude/remote/plugins/` | I plugin che Desktop copia dal computer dell'utente |
1432| [`~/.claude/uploads/`](https://code.claude.com/docs/it/claude-directory#clear-local-data) | File che l'utente allega ai messaggi, in una cartella per ogni sessione |1443| [`~/.claude/uploads/`](https://code.claude.com/docs/it/claude-directory#clear-local-data) | I file che l'utente allega ai messaggi, in una cartella per sessione |
1433 1444
1434Per elencare i processi di un utente, esegui `pgrep -fl "$HOME/.claude/remote/"` sulla macchina remota come quell'utente, oppure con la directory home dell'utente al posto di `$HOME`:1445Per elencare i processi di un utente, esegui `pgrep -fl "$HOME/.claude/remote/"` sulla macchina remota come quell'utente, oppure con la directory home dell'utente al posto di `$HOME`:
1435 1446
1436* **Helper**: uno o più processi `server` per ogni computer che si connette1447* **Programma di supporto**: uno o più processi `server` per ogni computer che si connette
1437* **Claude Code**: i processi che l'helper avvia per le sessioni dell'utente, ciascuno da un file che prende il nome dalla sua versione, come `2.1.295-…`1448* **Claude Code**: i processi che il programma di supporto avvia per le sessioni dell'utente, ciascuno da un file con il nome della sua versione, come `2.1.295-…`
1438 1449
1439Desktop raggiunge l'helper attraverso la connessione SSH dell'utente, tramite il socket Unix `rpc.sock` nella cartella dell'helper sotto `~/.claude/remote/run/`. A parte root, gli altri utenti della macchina non possono connettersi a quel socket, perché ha modalità 600 e la sua cartella ha modalità 700.1450Desktop raggiunge il programma di supporto attraverso la connessione SSH dell'utente, tramite il socket Unix `rpc.sock` nella cartella del programma di supporto in `~/.claude/remote/run/`. A parte root, gli altri utenti della macchina non possono connettersi a quel socket, perché ha modalità 600 e la sua cartella ha modalità 700.
1440 1451
1441Per i casi in cui l'helper si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).1452Per i casi in cui il programma di supporto si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).
1442 1453
1443Per rimuovere l'helper e Claude Code per un utente:1454Per rimuovere il programma di supporto e Claude Code per un utente:
1444 1455
1445**1. Chiudi Desktop**1456**1. Chiudi Desktop**
1446 1457
1448 1459
1449**2. Termina i processi**1460**2. Termina i processi**
1450 1461
1451Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui `kill` con l'ID di ogni processo di Claude Code elencato da [`pgrep`](#files-and-processes-on-the-remote-machine). Quando sono scomparsi dall'elenco, esegui `kill` con l'ID di ogni processo `server`. Se termini prima un processo `server`, un comando che Claude Code sta eseguendo può continuare a essere eseguito.1462Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui `kill` con l'ID di ogni processo di Claude Code che [`pgrep`](#files-and-processes-on-the-remote-machine) elenca. Quando non compaiono più nell'elenco, esegui `kill` con l'ID di ogni processo `server`. Se termini prima un processo `server`, un comando che Claude Code sta eseguendo può continuare a essere eseguito.
1452 1463
1453Poi elenca i processi rimanenti dell'utente, ad esempio con `ps -u "$(id -un)" -f`, e termina quelli che riconosci come avviati da Claude Code. I programmi che ha lasciato in background possono continuare a essere eseguiti dopo la sua chiusura, senza comparire nell'elenco di `pgrep`.1464Poi elenca i processi rimanenti dell'utente, ad esempio con `ps -u "$(id -un)" -f`, e termina quelli che riconosci come avviati da Claude Code. I programmi che ha lasciato in background possono continuare a essere eseguiti dopo che è terminato, senza comparire nell'elenco di `pgrep`.
1454 1465
1455**3. Elimina la cartella**1466**3. Elimina la cartella**
1456 1467
1457Elimina `~/.claude/remote/`. Per rimuovere i file propri di Claude Code in `~/.claude/` e `~/.claude.json`, consulta [Rimuovere i file di configurazione](https://code.claude.com/docs/it/setup.md#remove-configuration-files).1468Elimina `~/.claude/remote/`. Per rimuovere i file di Claude Code stesso in `~/.claude/` e `~/.claude.json`, consulta [Rimuovere i file di configurazione](https://code.claude.com/docs/it/setup.md#remove-configuration-files).
1458 1469
1459##### Terminare il processo di una sessione1470##### Terminare il processo di una sessione
1460 1471
1461Per terminare il processo di Claude Code di una sessione, [archivia la sessione](#archive-a-session) in Desktop mentre Desktop è connesso alla macchina remota. Il processo continua a essere eseguito dopo che la sua attività è terminata e dopo che chiudi Desktop.1472Per terminare il processo di Claude Code di una sessione, [archivia la sessione](#archive-a-session) in Desktop mentre Desktop è connesso alla macchina remota. Il processo continua a essere eseguito dopo che la sua attività è completata e dopo che chiudi Desktop.
1462 1473
1463Prima di archiviare una sessione il cui worktree ha modifiche non sottoposte a commit, consulta [Conservare le modifiche non sottoposte a commit quando una sessione viene archiviata](#keep-uncommitted-changes-when-a-session-is-archived).1474Prima di archiviare una sessione il cui worktree contiene modifiche non sottoposte a commit, consulta [Mantenere le modifiche non sottoposte a commit quando una sessione viene archiviata](#keep-uncommitted-changes-when-a-session-is-archived).
1464 1475
1465##### Vedere con quale utente vengono eseguiti i processi1476##### Vedere con quale utente vengono eseguiti i processi
1466 1477
1467L'helper e Claude Code vengono eseguiti come l'utente con cui Desktop accede tramite SSH. Installarli e avviarli non richiede `sudo`. Per verificare l'utente, esegui `ps -o user= -p` sulla macchina remota con un ID di processo elencato da [`pgrep`](#files-and-processes-on-the-remote-machine).1478Il programma di supporto e Claude Code vengono eseguiti come l'utente con cui Desktop accede tramite SSH. Per installarli e avviarli non serve `sudo`. Per verificare l'utente, esegui `ps -o user= -p` sulla macchina remota con un ID di processo che [`pgrep`](#files-and-processes-on-the-remote-machine) elenca.
1468 1479
1469Anche i programmi avviati da Claude Code, come i comandi della shell e i server MCP, vengono avviati come quell'utente. Esamina i diritti di quell'utente sulla macchina remota, comprese le sue regole `sudo`, come faresti per una persona che esegue comandi lì.1480Anche i programmi che Claude Code avvia, come i comandi della shell e i server MCP, vengono avviati come quell'utente. Esamina i diritti di quell'utente sulla macchina remota, comprese le sue regole `sudo`, come faresti per una persona che esegue comandi lì.
1470 1481
1471##### Vedere chi si è connesso alla macchina remota1482##### Vedere chi si è connesso alla macchina remota
1472 1483
1473Per scoprire chi si è connesso a una macchina remota, leggi il log del server SSH su quella macchina, dove un accesso da Desktop appare come uno da un terminale. Con Desktop su macOS o Linux, aspettati una voce ogni volta che Desktop si connette, non una per ogni sessione.1484Per scoprire chi si è connesso a una macchina remota, leggi il log del server SSH su quella macchina, dove un accesso da Desktop appare come uno da un terminale. Con Desktop su macOS o Linux, aspettati una voce ogni volta che Desktop si connette, non una per ogni sessione.
1474 1485
1475Se il server imposta `MaxSessions 1`, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettatene almeno un'altra per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`.1486Se il server imposta `MaxSessions 1`, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettati almeno una voce in più per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`.
1476 1487
1477Non troverai le connessioni SSH di Desktop nelle [metriche ed eventi](https://code.claude.com/docs/it/monitoring-usage.md#available-metrics-and-events) di Claude Code. Per scoprire da essi su quale macchina remota è stata eseguita una sessione SSH, consulta [Attribuire la telemetria alle sessioni SSH di Desktop](https://code.claude.com/docs/it/monitoring-usage.md#attribute-telemetry-to-desktop-ssh-sessions). Per il registro delle connessioni tenuto da Desktop stesso, consulta [Ottenere i log di Desktop per un problema SSH](#get-desktops-logs-for-an-ssh-problem).1488Non troverai le connessioni SSH di Desktop nelle [metriche ed eventi](https://code.claude.com/docs/it/monitoring-usage.md#available-metrics-and-events) di Claude Code. Per scoprire da questi su quale macchina remota è stata eseguita una sessione SSH, consulta [Attribuire la telemetria alle sessioni SSH di Desktop](https://code.claude.com/docs/it/monitoring-usage.md#attribute-telemetry-to-desktop-ssh-sessions). Per il registro delle connessioni tenuto da Desktop stesso, consulta [Ottenere i log di Desktop per un problema SSH](#get-desktops-logs-for-an-ssh-problem).
1478 1489
1479#### Connessioni che si chiudono prima dell'accesso1490#### Connessioni che si chiudono prima dell'accesso
1480 1491
1481Se il log del server SSH mostra connessioni che si chiudono prima di qualsiasi accesso, possono essere i test della porta SSH eseguiti da Desktop. Desktop verifica se una macchina risponde, ad esempio dopo che una connessione a essa non è riuscita. Apre una connessione alla porta e la chiude subito, senza inviare nulla. Aspettati un test o diversi di seguito, ad esempio otto in circa due minuti.1492Se il log del server SSH mostra connessioni che si chiudono prima di qualsiasi accesso, possono essere test della porta SSH effettuati da Desktop. Desktop verifica se una macchina risponde, ad esempio dopo che una connessione a essa non è riuscita. Apre una connessione alla porta e la chiude subito, senza inviare nulla. Aspettati un test o diversi di seguito, ad esempio otto in circa due minuti.
1482 1493
1483Se nulla blocca o rifiuta gli indirizzi per tali connessioni, non devi fare nulla riguardo ai test di Desktop. Se un indirizzo da cui Desktop si connette viene rifiutato o bloccato, verifica [se il server SSH stesso rifiuta l'indirizzo](#check-whether-the-ssh-server-itself-refuses-the-address) e [se fail2ban conta i test di Desktop](#check-whether-fail2ban-counts-desktops-tests).1494Se nulla blocca o rifiuta gli indirizzi per connessioni di questo tipo, non devi fare nulla riguardo ai test di Desktop. Se un indirizzo da cui Desktop si connette viene rifiutato o bloccato, verifica [se il server SSH stesso rifiuta l'indirizzo](#check-whether-the-ssh-server-itself-refuses-the-address) e [se fail2ban conteggia i test di Desktop](#check-whether-fail2ban-counts-desktops-tests).
1484 1495
1485##### Riconoscere un test nel log del server SSH1496##### Riconoscere un test nel log del server SSH
1486 1497
1487Confronta le righe del tuo log con quelle che un server OpenSSH su Linux scrive per un test con il `LogLevel` predefinito, nella riga corrispondente alla versione del tuo server. Puoi vedere invece le righe dell'ultima colonna se il saluto del server arriva prima che Desktop chiuda la connessione:1498Confronta le righe del tuo log con quelle che un server OpenSSH su Linux scrive per un test con il `LogLevel` predefinito, nella riga della tabella relativa alla versione del tuo server. Puoi vedere invece le righe dell'ultima colonna se il messaggio di benvenuto del server arriva prima che Desktop chiuda la connessione:
1488 1499
1489| Versione di OpenSSH | Righe per un test | Righe se il saluto arriva prima |1500| Versione di OpenSSH | Righe per un test | Righe se il messaggio di benvenuto arriva prima |
1490| - | - | - |1501| - | - | - |
1491| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |1502| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |
1492| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |1503| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |
1496 1507
1497Altri programmi che aprono la porta e la chiudono possono lasciare le stesse righe. Dove una riga contiene un indirizzo, verifica che sia uno da cui si connette un computer con Desktop.1508Altri programmi che aprono la porta e la chiudono possono lasciare le stesse righe. Dove una riga contiene un indirizzo, verifica che sia uno da cui si connette un computer con Desktop.
1498 1509
1499Le righe delle versioni da 8.0 a 8.2 non contengono un indirizzo. Per ottenerne uno, imposta `LogLevel VERBOSE` in `sshd_config` ed esegui `sshd -T | grep -i loglevel` come root. Se stampa `loglevel VERBOSE`, ricarica il server SSH. Poi cerca una riga con `Connection from 203.0.113.7 port 51234` prima della riga del test.1510Le righe delle versioni da 8.0 a 8.2 non contengono alcun indirizzo. Per ottenerne uno, imposta `LogLevel VERBOSE` in `sshd_config` ed esegui `sshd -T | grep -i loglevel` come root. Se stampa `loglevel VERBOSE`, ricarica il server SSH. Poi cerca una riga con `Connection from 203.0.113.7 port 51234` prima della riga del test.
1500 1511
1501##### Verificare se il server SSH stesso rifiuta l'indirizzo1512##### Verificare se il server SSH stesso rifiuta l'indirizzo
1502 1513
1506drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication1517drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication
1507```1518```
1508 1519
1509Con il `LogLevel` predefinito, OpenSSH 9.8 e versioni successive possono scrivere una riga di questo tipo quando rifiutano un indirizzo per connessioni che si sono chiuse senza tentare l'accesso, come fanno i test di Desktop. Con le impostazioni predefinite, non vedi una riga del genere dopo solo pochi test.1520Con il `LogLevel` predefinito, OpenSSH 9.8 e versioni successive possono scrivere una riga di questo tipo quando rifiutano un indirizzo per connessioni che si sono chiuse senza tentare l'accesso, come fanno i test di Desktop. Con le impostazioni predefinite, non vedi una riga di questo tipo dopo pochi test soltanto.
1510 1521
1511Per evitare il rifiuto, imposta `PerSourcePenaltyExemptList` in `sshd_config` sugli indirizzi da cui le persone si connettono, ad esempio `PerSourcePenaltyExemptList 203.0.113.7`. Il server quindi non applica nessuna delle sue penalità a quegli indirizzi, comprese quelle per gli accessi non riusciti. Per verificare il file, esegui `sshd -T | grep -i persourcepenalt` come root. Se stampa il tuo elenco, ricarica il server SSH.1522Per evitare il rifiuto, imposta `PerSourcePenaltyExemptList` in `sshd_config` sugli indirizzi da cui le persone si connettono, ad esempio `PerSourcePenaltyExemptList 203.0.113.7`. Il server quindi non applica nessuna delle sue penalità a quegli indirizzi, comprese quelle per gli accessi non riusciti. Per verificare il file, esegui `sshd -T | grep -i persourcepenalt` come root. Se stampa il tuo elenco, ricarica il server SSH.
1512 1523
1513##### Verificare se fail2ban conta i test di Desktop1524##### Verificare se fail2ban conteggia i test di Desktop
1514 1525
1515Se fail2ban 0.10.5 o versione successiva ha bloccato un indirizzo da cui Desktop si connette, trova la modalità della tua jail in `jail.conf`, `jail.local` o sotto `jail.d/`:1526Se fail2ban 0.10.5 o successivo ha bloccato un indirizzo da cui Desktop si connette, trova la modalità della tua jail in `jail.conf`, `jail.local` o in `jail.d/`:
1516 1527
1517* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.1528* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.
1518* **Solo la riga `filter` predefinita**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non ce n'è una.1529* **Solo la riga `filter` predefinita**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non c'è.
1519 1530
1520Se la modalità è `normal`, fail2ban non conta le righe dei test di Desktop, quindi cerca un'altra causa del blocco.1531Se la modalità è `normal`, fail2ban non conteggia le righe dei test di Desktop, quindi cerca un'altra causa del blocco.
1521 1532
1522Per un'altra modalità, copia le righe dal tuo log in un file sulla macchina remota. Copia ogni riga per intero, dalla data alla fine, ed entrambe le righe quando un test ne lascia due. Esegui lì `fail2ban-regex` con il file e la modalità della tua jail, ad esempio `aggressive`:1533Per un'altra modalità, copia le righe dal tuo log in un file sulla macchina remota. Copia ogni riga per intero, dalla data fino alla fine, ed entrambe le righe quando un test ne lascia due. Esegui `fail2ban-regex` lì con il file e la modalità della tua jail, ad esempio `aggressive`:
1523 1534
1524```bash theme={null}1535```bash theme={null}
1525fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"1536fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"
1526```1537```
1527 1538
1528Per ogni errore che fail2ban conta, il comando stampa l'indirizzo su una riga a sé, come `203.0.113.7`. In tal caso, [evita un blocco](#prevent-a-ban-by-fail2ban). Se non stampa nulla, fail2ban non conta nessuna di quelle righe in quella modalità, quindi cerca un'altra causa del blocco.1539Per ogni errore che fail2ban conteggia, il comando stampa l'indirizzo su una riga a sé, come `203.0.113.7`. In tal caso, [evita un blocco](#prevent-a-ban-by-fail2ban). Se non stampa nulla, fail2ban non conteggia nessuna di quelle righe in quella modalità, quindi cerca un'altra causa del blocco.
1529 1540
1530##### Evitare un blocco da parte di fail2ban1541##### Evitare un blocco da parte di fail2ban
1531 1542
1532Per impedire a fail2ban di bloccare un indirizzo a causa dei test di Desktop, modifica una di due impostazioni della jail, ciascuna con un costo:1543Per impedire a fail2ban di bloccare un indirizzo a causa dei test di Desktop, modifica una delle due impostazioni della jail, ciascuna con un costo:
1533 1544
1534* **`mode`**: impostala su `normal` ovunque la tua jail la imposti, in una riga `mode` o tra le parentesi quadre di una riga come `filter = sshd[mode=aggressive]`. Rinunci a ogni conteggio che solo le altre modalità effettuano, ad esempio dei client che si connettono e se ne vanno senza tentare l'accesso.1545* **`mode`**: impostala su `normal` ovunque la tua jail la imposti, in una riga `mode` o tra le parentesi quadre di una riga come `filter = sshd[mode=aggressive]`. Rinunci a ogni conteggio che fanno solo le altre modalità, ad esempio dei client che si connettono e se ne vanno senza tentare l'accesso.
1535* **`ignoreip`**: impostala sugli indirizzi da cui le persone si connettono, ad esempio `ignoreip = 203.0.113.7`. fail2ban quindi non conta nulla da quegli indirizzi, compresi gli accessi non riusciti.1546* **`ignoreip`**: impostala sugli indirizzi da cui le persone si connettono, ad esempio `ignoreip = 203.0.113.7`. fail2ban quindi non conteggia nulla da quegli indirizzi, compresi gli accessi non riusciti.
1536 1547
1537#### Usare server MCP configurati sulla macchina remota1548#### Usare i server MCP configurati sulla macchina remota
1538 1549
1539Per usare un [server MCP](https://code.claude.com/docs/it/mcp.md) da `~/.claude.json` o dal `.mcp.json` di un progetto in una sessione SSH, configuralo in quei file sulla macchina remota. Claude Code avvia lì i loro server stdio, quindi installa sulla macchina remota i comandi che quei server eseguono. Per i server da `claude_desktop_config.json`, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).1550Per usare un [server MCP](https://code.claude.com/docs/it/mcp.md) da `~/.claude.json` o dal `.mcp.json` di un progetto in una sessione SSH, configuralo in quei file sulla macchina remota. Claude Code avvia lì i loro server stdio, quindi installa sulla macchina remota i comandi che quei server eseguono. Per i server da `claude_desktop_config.json`, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).
1540 1551
1541#### Aprire una sessione SSH da un link1552#### Aprire una sessione SSH da un link
1542 1553
1543Un link `claude://code/new` apre la pagina di nuova sessione di Desktop e può indicare una connessione SSH. Inserisci un link di questo tipo in un runbook, una dashboard o una pagina wiki per aprire Desktop configurato per la macchina e la cartella giuste. Per le piattaforme che rimuovono tali link, consulta [Il link viene visualizzato come testo semplice anziché essere cliccabile](https://code.claude.com/docs/it/deep-links.md#the-link-renders-as-plain-text-instead-of-being-clickable).1554Un link `claude://code/new` apre la pagina di nuova sessione di Desktop e può indicare una connessione SSH. Inserisci un link di questo tipo in un runbook, in una dashboard o in una pagina wiki per aprire Desktop configurato per la macchina e la cartella corrette. Per le piattaforme che rimuovono questi link, consulta [Il link viene visualizzato come testo semplice invece di essere cliccabile](https://code.claude.com/docs/it/deep-links.md#the-link-renders-as-plain-text-instead-of-being-clickable).
1544 1555
1545I link SSH richiedono Claude Desktop v2.110.0 o versione successiva.1556I link SSH richiedono Claude Desktop v2.110.0 o successivo.
1546 1557
1547Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:1558Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:
1548 1559
1554 1565
1555| Parametro | Valore |1566| Parametro | Valore |
1556| :- | :- |1567| :- | :- |
1557| `ssh_host` | `host` o `user@host`, scritto come nel campo **SSH host**. Il valore non può iniziare con `-`, e la parte host accetta solo lettere, cifre, `.`, `_`, `:` e `-` |1568| `ssh_host` | `host` o `user@host`, scritto come nel campo **SSH host**. Il valore non può iniziare con `-`, e la parte relativa all'host accetta solo lettere, cifre, `.`, `_`, `:` e `-` |
1558| `ssh_port` | Un numero di porta da 1 a 65535 |1569| `ssh_port` | Un numero di porta da 1 a 65535 |
1559| `ssh_folder` | Una cartella sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~` |1570| `ssh_folder` | Una cartella sulla macchina remota. Falla iniziare con `/` o `~/`, oppure usa `~` |
1560| `q` | Testo con codifica URL per la casella del prompt |1571| `q` | Testo con codifica URL per la casella del prompt |
1561 1572
1562Un alias da `~/.ssh/config` funziona come `ssh_host` solo per le persone che hanno quella voce. Per corrispondere a una connessione che le persone hanno già, assegna al link lo stesso utente, host e porta di quella connessione.1573Un alias da `~/.ssh/config` funziona come `ssh_host` solo per le persone che hanno quella voce. Per far corrispondere una connessione che le persone hanno già, usa nel link lo stesso utente, host e porta di quella connessione.
1563 1574
1564Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:1575Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:
1565 1576
1566* **Una connessione che hai già**: se host, utente e porta corrispondono a una delle tue connessioni, Desktop ti chiede se usarla e ti mostra il nome e l'host della connessione, e la cartella se il link ne indica una.1577* **Una connessione che hai già**: se host, utente e porta corrispondono a una delle tue connessioni, Desktop chiede se usarla e ti mostra il nome e l'host della connessione, e la cartella se il link ne indica una.
1567* **Una nuova connessione**: altrimenti Desktop apre la finestra di dialogo per aggiungere una connessione SSH. Quando aggiungi la connessione, Desktop ti chiede se connetterti prima di salvare qualsiasi cosa e ti mostra l'host dal link, e la porta e la cartella se il link le indica.1578* **Una nuova connessione**: altrimenti Desktop apre la finestra di dialogo per aggiungere una connessione SSH. Quando aggiungi la connessione, Desktop chiede se connettersi prima di salvare qualsiasi cosa e ti mostra l'host dal link, e la porta e la cartella se il link le indica.
1568 1579
1569Finché non confermi, Desktop non salva l'host, la porta o la cartella dal link e non seleziona né apre una connessione con essi. Se una connessione SSH è già selezionata, la pagina di nuova sessione può comunque connettersi a essa da sola, come fa senza un link, anche quando il link indica lo stesso host. Un link non può contenere un file di chiave, una password o un comando.1580Finché non confermi, Desktop non salva l'host, la porta o la cartella dal link e non seleziona né apre una connessione con essi. Se una connessione SSH è già selezionata, la pagina di nuova sessione può comunque connettersi a essa da sola, come fa senza un link, anche quando il link indica lo stesso host. Un link non può contenere un file di chiave, una password o un comando.
1570 1581
1571Chiunque può scrivere un link, quindi verifica cosa ha compilato:1582Chiunque può scrivere un link, quindi controlla cosa ha compilato:
1572 1583
1573* **Prima di confermare**: verifica l'host e la cartella.1584* **Prima di confermare**: controlla l'host e la cartella.
1574* **Prima di inviare**: verifica il prompt e l'ambiente selezionato.1585* **Prima di inviare**: controlla il prompt e l'ambiente selezionato.
1575 1586
1576Desktop compila il prompt quando il link si apre, al posto di qualsiasi testo che non hai inviato, e non lo invia mai per te. Tratta il prompt come testo semplice, quindi un `/` o `!` iniziale e una menzione di file con `@` non agiscono come un comando o una menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.1587Desktop compila il prompt quando il link si apre, al posto di qualsiasi testo che non hai inviato, e non lo invia mai al posto tuo. Tratta il prompt come testo semplice, quindi un `/` o un `!` iniziale e una menzione di file con `@` non funzionano come comando o menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.
1577 1588
1578Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.1589Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.
1579 1590
1587 1598
1588#### Creare una connessione SSH da un comando1599#### Creare una connessione SSH da un comando
1589 1600
1590Se uno strumento da riga di comando crea le tue macchine remote su richiesta, aggiungi il suo comando a `sshHostCommands` in [`~/.claude/settings.json`](https://code.claude.com/docs/it/settings#settings-files). Il selettore dell'ambiente elenca quindi un elemento che prende il nome dalla tua voce, come **Create Dev box**. Quando lo selezioni, Desktop esegue il comando sul tuo computer, salva l'host stampato dal comando come connessione SSH e si connette.1601Se uno strumento da riga di comando crea le tue macchine remote su richiesta, aggiungi il suo comando a `sshHostCommands` in [`~/.claude/settings.json`](https://code.claude.com/docs/it/settings#settings-files). Il selettore dell'ambiente elenca quindi una voce con il nome della tua voce di configurazione, come **Create Dev box**. Quando la selezioni, Desktop esegue il comando sul tuo computer, salva l'host che il comando stampa come connessione SSH e si connette.
1591 1602
1592> [!NOTE]1603> [!NOTE]
1593>1604>
1594> Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o versione successiva su macOS o Linux, con accesso effettuato tramite un account Claude. Gli amministratori possono [distribuire i comandi a un team](#distribute-commands-to-your-team).1605> Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o successivo su macOS o Linux, con accesso effettuato con un account Claude. Gli amministratori possono [distribuire i comandi a un team](#distribute-commands-to-your-team).
1595 1606
1596Desktop esegue il comando solo quando crei la connessione o [crei un'altra macchina](#create-another-machine), non ogni volta che ti connetti. Ogni voce è una connessione, che punta all'host che Desktop ha salvato per ultimo dal comando della voce.1607Desktop esegue il comando solo quando crei la connessione o [crei un'altra macchina](#create-another-machine), non ogni volta che ti connetti. Ogni voce è una connessione, che punta all'host che Desktop ha salvato per ultimo dal comando della voce.
1597 1608
1598> [!WARNING]1609> [!WARNING]
1599>1610>
1600> Desktop non arresta né elimina le macchine. Ciascuna di queste continua a essere in esecuzione, e può continuare a costare denaro, finché non la elimini con il tuo strumento:1611> Desktop non arresta né elimina le macchine. Ciascuna di queste continua a essere eseguita, e può continuare a costare denaro, finché non la elimini con il tuo strumento:
1601>1612>
1602> * Una macchina a cui una voce puntava prima che tu ne [creassi un'altra](#create-another-machine)1613> * Una macchina a cui puntava una voce prima che tu ne [creassi un'altra](#create-another-machine)
1603> * Le macchine di una voce che hai rimosso dal file, o di cui hai modificato l'`id`1614> * Le macchine di una voce che hai rimosso dal file, o il cui `id` hai modificato
1604> * Una macchina che il tuo comando ha creato senza che Desktop ne salvasse l'host, ad esempio in questi casi:1615> * Una macchina che il tuo comando ha creato senza che Desktop ne salvasse l'host, ad esempio in questi casi:
1605> * Il comando non riesce o esaurisce il tempo1616> * Il comando non riesce o supera il tempo limite
1606> * Desktop non può usare l'host stampato, un'altra connessione lo usa già, o la tua organizzazione non lo consente1617> * Desktop non può usare l'host stampato, un'altra connessione lo usa già, oppure la tua organizzazione non lo consente
1607> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, modifichi il suo `command` o `id`, o chiudi Desktop1618> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, modifichi il suo `command` o `id`, oppure chiudi Desktop
1608 1619
1609L'esempio seguente aggiunge una connessione denominata Dev box. Se il file non esiste, crealo. Se contiene già delle impostazioni, aggiungi la chiave accanto a esse. Il comando `acme-dev create` rappresenta il tuo strumento, e `~/project` è la cartella che Desktop seleziona su ogni macchina creata dal tuo comando:1620L'esempio seguente aggiunge una connessione denominata Dev box. Se il file non esiste, crealo. Se contiene già delle impostazioni, aggiungi la chiave accanto a esse. Il comando `acme-dev create` rappresenta il tuo strumento e `~/project` è la cartella che Desktop seleziona su ogni macchina creata dal tuo comando:
1610 1621
1611```json ~/.claude/settings.json theme={null}1622```json ~/.claude/settings.json theme={null}
1612{1623{
1625 1636
1626| Campo | Valore |1637| Campo | Valore |
1627| :- | :- |1638| :- | :- |
1628| `id` | Fino a 64 lettere ASCII, cifre, `.`, `_` e `-`, che inizia con una lettera o una cifra. Usa un `id` che nessun'altra voce in `sshHostCommands` o [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) abbia. Desktop conserva l'host della connessione sotto di esso, quindi se lo modifichi, la connessione ricomincia senza host, le sue macchine continuano a essere eseguite e Desktop può [ancora connettersi a esse](#remove-an-entry). |1639| `id` | Fino a 64 lettere ASCII, cifre, `.`, `_` e `-`, iniziando con una lettera o una cifra. Usa un `id` che nessun'altra voce in `sshHostCommands` o [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) abbia. Desktop conserva l'host della connessione associato a esso, quindi se lo modifichi, la connessione ricomincia senza host, le sue macchine continuano a essere eseguite e Desktop può [ancora connettersi a esse](#remove-an-entry). |
1629| `name` | Il nome della connessione nel selettore dell'ambiente, fino a 200 caratteri su una riga |1640| `name` | Il nome della connessione nel selettore dell'ambiente, fino a 200 caratteri su una riga |
1630| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |1641| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |
1631| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |1642| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |
1632| `startDirectory` | La cartella predefinita sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~`. |1643| `startDirectory` | La cartella predefinita sulla macchina remota. Falla iniziare con `/` o `~/`, oppure usa `~`. |
1633 1644
1634Per modificare o rimuovere la connessione, modifica la sua voce nel file, perché la finestra di dialogo della connessione SSH dell'app non si apre per essa. Non è necessario riavviare Desktop dopo aver modificato il file. Se la voce non compare o non puoi selezionarla, consulta [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1645Per modificare o rimuovere la connessione, modifica la sua voce nel file, perché la finestra di dialogo della connessione SSH dell'app non si apre per essa. Non è necessario riavviare Desktop dopo aver modificato il file. Se la voce non compare o non puoi selezionarla, consulta [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).
1635 1646
1637 1648
1638Desktop avvia il programma direttamente, senza shell e senza terminale:1649Desktop avvia il programma direttamente, senza shell e senza terminale:
1639 1650
1640* **Programma**: scrivi il suo nome, o il suo percorso completo a partire da `/`, senza spazi. Desktop cerca un nome semplice nel `PATH` esportato dalla tua shell di login. I percorsi relativi come `./acme-dev`, i percorsi che iniziano con `~` e gli alias e le funzioni della shell non funzionano.1651* **Programma**: scrivi il suo nome, o il suo percorso completo a partire da `/`, senza spazi. Desktop cerca un nome semplice nel `PATH` che la tua shell di login esporta. I percorsi relativi come `./acme-dev`, i percorsi che iniziano con `~` e gli alias e le funzioni della shell non funzionano.
1641* **Argomenti**: separa gli argomenti semplici con spazi. Il comando può contenere solo spazi, lettere ASCII, cifre e i caratteri `+,-./:=@_~`, e nessuna parola può iniziare con `~`.1652* **Argomenti**: separa gli argomenti semplici con spazi. Il comando può contenere solo spazi, lettere ASCII, cifre e i caratteri `+,-./:=@_~`, e nessuna parola può iniziare con `~`.
1642* **Script**: se il comando richiede qualcos'altro, come virgolette, pipe, variabili o un URL con `?` o `&`, inseriscilo in uno script. Rendi lo script eseguibile, inizialo con una riga `#!` e imposta `command` sul suo percorso completo, come `/Users/you/bin/make-devbox`. Su macOS, tieni lo script fuori dalle cartelle Documenti, Scrivania e Download, dove macOS può bloccarlo.1653* **Script**: se il comando richiede qualcos'altro, come virgolette, pipe, variabili o un URL con `?` o `&`, inseriscilo in uno script. Rendi lo script eseguibile, fallo iniziare con una riga `#!` e imposta `command` sul suo percorso completo, come `/Users/you/bin/make-devbox`. Su macOS, tieni lo script fuori dalle cartelle Documenti, Scrivania e Download, dove macOS può bloccarlo.
1643* **Input**: il programma non riceve input né terminale, quindi non può chiederti nulla lì. Se il tuo strumento ti fa accedere tramite un browser o una richiesta, accedi prima da un terminale, e di nuovo ogni volta che quell'accesso scade.1654* **Input**: il programma non riceve alcun input né alcun terminale, quindi non può chiederti nulla lì. Se il tuo strumento ti fa accedere tramite un browser o una richiesta, accedi prima da un terminale, e di nuovo ogni volta che quell'accesso scade.
1644* **Ambiente**: il programma viene eseguito nella tua directory home con le variabili esportate dalla tua shell di login. Desktop le legge all'avvio, come fa per [un `ProxyCommand`](#use-variables-from-your-shell-in-a-proxycommand), quindi chiudi e riapri Desktop dopo averle modificate.1655* **Ambiente**: il programma viene eseguito nella tua directory home con le variabili che la tua shell di login esporta. Desktop le legge all'avvio, come fa per [un `ProxyCommand`](#use-variables-from-your-shell-in-a-proxycommand), quindi chiudi e riapri Desktop dopo averle modificate.
1645* **Limite di tempo**: Desktop arresta un programma che è ancora in esecuzione dopo 10 minuti. Il messaggio di avanzamento di Desktop non mostra l'output del programma. Per arrestare il programma prima, seleziona **Cancel** accanto a quel messaggio.1656* **Tempo limite**: Desktop arresta un programma che è ancora in esecuzione dopo 10 minuti. Il messaggio di avanzamento di Desktop non mostra l'output del programma. Per arrestare il programma prima, seleziona **Cancel** accanto a quel messaggio.
1646 1657
1647Il programma deve uscire con codice 0 e stampare solo l'host sullo standard output, in una di due forme:1658Il programma deve terminare con codice 0 e stampare solo l'host sullo standard output, in una di due forme:
1648 1659
1649* **Una riga**: `host` o `user@host`, scritto come per `ssh_host` in [un link SSH](#open-an-ssh-session-from-a-link). Per indicare una porta, usa la forma JSON.1660* **Una riga**: `host` o `user@host`, scritto come per `ssh_host` in [un link SSH](#open-an-ssh-session-from-a-link). Per indicare una porta, usa la forma JSON.
1650* **Un oggetto JSON**: `sshHost`, e facoltativamente un `sshPort` numerico e una `startDirectory` che sostituisce quella della voce, come `{"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}`1661* **Un oggetto JSON**: `sshHost` e, facoltativamente, un `sshPort` numerico e una `startDirectory` che sostituisce quella della voce, come `{"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}`
1651 1662
1652Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output in un file:1663Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output in un file:
1653 1664
1657 1668
1658Il file deve contenere solo l'host. Quando esegui questo test, il tuo strumento crea anche una macchina, quindi eliminala in seguito con il tuo strumento.1669Il file deve contenere solo l'host. Quando esegui questo test, il tuo strumento crea anche una macchina, quindi eliminala in seguito con il tuo strumento.
1659 1670
1660Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in uno script che stampi solo l'host. Lo script seguente stampa l'ultima riga dell'output del tuo strumento. Se il tuo strumento non riesce, lo script esce con lo stesso codice, in modo che Desktop segnali l'errore:1671Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in uno script che stampa solo l'host. Lo script seguente stampa l'ultima riga dell'output del tuo strumento. Se il tuo strumento non riesce, lo script termina con lo stesso codice, in modo che Desktop segnali l'errore:
1661 1672
1662```bash theme={null}1673```bash theme={null}
1663#!/bin/bash1674#!/bin/bash
1673 1684
1674Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:1685Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:
1675 1686
1676* **Chiave host**: con il controllo predefinito delle chiavi host di OpenSSH, verifica l'impronta digitale della chiave, poi scegli se connetterti. Per saltare la domanda, fai in modo che il tuo comando aggiunga la chiave a `~/.ssh/known_hosts` prima di stampare l'host, usando una chiave che il tuo strumento ha ottenuto quando ha creato la macchina. Per una porta diversa dalla 22, quella riga inizia con `[host]:port`. Se il tuo strumento riutilizza i nomi host, rimuovi anche la riga della vecchia chiave.1687* **Chiave dell'host**: con il controllo predefinito delle chiavi dell'host di OpenSSH, controlla l'impronta digitale della chiave, poi scegli se connetterti. Per saltare la domanda, fai in modo che il tuo comando aggiunga la chiave a `~/.ssh/known_hosts` prima di stampare l'host, usando una chiave che il tuo strumento ha appreso quando ha creato la macchina. Per una porta diversa dalla 22, quella riga inizia con `[host]:port`. Se il tuo strumento riutilizza i nomi host, rimuovi anche la riga della vecchia chiave.
1677* **Cartella**: scegli se ritieni attendibile la cartella che apri lì1688* **Cartella**: scegli se ritieni attendibile la cartella che apri lì
1678 1689
1679Mantieni attivo il controllo delle chiavi host per questi host e mantieni un file `known_hosts` per essi. Se `StrictHostKeyChecking` è `no` o `accept-new` e anche `UserKnownHostsFile` è `/dev/null` o `none`, nulla registra la chiave. Quando il tuo strumento riutilizza poi un nome, puoi connetterti a una macchina diversa senza alcun avviso.1690Mantieni attivo il controllo delle chiavi dell'host per questi host e mantieni un file `known_hosts` per essi. Se `StrictHostKeyChecking` è `no` o `accept-new` e anche `UserKnownHostsFile` è `/dev/null` o `none`, nulla registra la chiave. Quando poi il tuo strumento riutilizza un nome, puoi connetterti a una macchina diversa senza alcun avviso.
1680 1691
1681Un nome riutilizzato conta anche senza nessuno al computer, perché Desktop si connette a questi host da solo. Ad esempio, consegna un messaggio che hai inviato mentre l'host non era raggiungibile, una volta che l'host risponde. Anche con il controllo delle chiavi degli host attivo, il messaggio può raggiungere la nuova macchina con quel nome in questi casi, quindi [smetti di usare una macchina](#stop-using-a-machine) prima che venga eliminata:1692Un nome riutilizzato conta anche senza nessuno al computer, perché Desktop si connette a questi host da solo. Ad esempio, recapita un messaggio che hai inviato mentre l'host non era raggiungibile, non appena l'host risponde. Anche con il controllo delle chiavi dell'host attivo, il messaggio può raggiungere la nuova macchina associata al nome in questi casi, quindi [smetti di usare una macchina](#stop-using-a-machine) prima che venga eliminata:
1682 1693
1683* Tu, il tuo comando o un altro programma avete aggiunto la nuova chiave a `known_hosts` o rimosso la riga della vecchia chiave, come fa il tuo comando se aggiunge chiavi degli host1694* Tu, il tuo comando o un altro programma avete aggiunto la nuova chiave a `known_hosts` o rimosso la riga della vecchia chiave, come fa il tuo comando se aggiunge chiavi dell'host
1684* Le macchine del tuo strumento condividono una chiave dell'host1695* Le macchine del tuo strumento condividono una chiave dell'host
1685* Le macchine del tuo strumento condividono un'autorità di certificazione considerata attendibile da `known_hosts`1696* Le macchine del tuo strumento condividono un'autorità di certificazione che `known_hosts` considera attendibile
1686* Tu o il tuo amministratore avete impostato `KnownHostsCommand` o `VerifyHostKeyDNS yes`, quindi SSH accetta chiavi da fuori `known_hosts`1697* Tu o il tuo amministratore avete impostato `KnownHostsCommand` o `VerifyHostKeyDNS yes`, quindi SSH accetta chiavi provenienti dall'esterno di `known_hosts`
1687 1698
1688##### Creare un'altra macchina1699##### Creare un'altra macchina
1689 1700
1690Le tue sessioni sulle macchine precedenti continuano a funzionare dopo che selezioni **Create another Dev box**, e le nuove sessioni usano la nuova macchina. Seleziona l'elemento nel selettore dell'ambiente per creare una macchina nuova o per sostituirne una che non c'è più. Nella pagina di nuova sessione, lo offre anche il messaggio che indica che Desktop non riesce a raggiungere l'host.1701Le tue sessioni sulle macchine precedenti continuano a funzionare dopo che selezioni **Create another Dev box**, e le nuove sessioni usano la nuova macchina. Seleziona la voce nel selettore dell'ambiente per creare una macchina nuova o per sostituirne una che non esiste più. Nella pagina di nuova sessione, anche il messaggio che indica che Desktop non riesce a raggiungere l'host la offre.
1691 1702
1692* **Sessioni sulle macchine precedenti**: continuale dalla barra laterale, perché il selettore elenca la macchina attuale di Dev box e non quelle precedenti. Desktop può connettersi alle loro macchine da solo, ad esempio all'avvio di Desktop, quindi [smetti di usare una macchina](#stop-using-a-machine) quando hai finito con essa.1703* **Sessioni sulle macchine precedenti**: continuale dalla barra laterale, perché il selettore elenca la macchina corrente di Dev box e non quelle precedenti. Desktop può connettersi alle loro macchine da solo, ad esempio all'avvio di Desktop, quindi [smetti di usare una macchina](#stop-using-a-machine) quando hai finito con essa.
1693* **Un host sostituito prima di Claude Desktop v4.4212.0**: quelle versioni mostrano **Replace Dev box's host** e smettono di connettersi all'host sostituito. Per continuare una sessione su quell'host, apri la sessione, seleziona **Add SSH connection** e salva la connessione che Desktop compila. Aggiorna Desktop prima di sostituire un altro host.1704* **Un host sostituito prima di Claude Desktop v4.4212.0**: quelle versioni mostrano **Replace Dev box's host** e smettono di connettersi all'host sostituito. Per continuare una sessione su quell'host, apri la sessione, seleziona **Add SSH connection** e salva la connessione che Desktop compila. Aggiorna Desktop prima di sostituire un altro host.
1694* **Nuove sessioni su due macchine**: aggiungi una seconda voce a [`sshHostCommands`](#create-an-ssh-connection-from-a-command)1705* **Nuove sessioni su due macchine**: aggiungi una seconda voce a [`sshHostCommands`](#create-an-ssh-connection-from-a-command)
1695* **Un nuovo host che non risponde ancora**: lascia aperta la pagina di nuova sessione fino a 10 minuti mentre continua a tentare di connettersi. Se l'host continua a non rispondere, seleziona **Create another Dev box** nel messaggio della pagina.1706* **Un nuovo host che non risponde ancora**: lascia aperta la pagina di nuova sessione fino a 10 minuti mentre continua a tentare di connettersi. Se l'host ancora non risponde, seleziona **Create another Dev box** nel messaggio della pagina.
1696* **Un'altra macchina poco dopo**: dopo diverse esecuzioni del comando entro un'ora, conferma ogni esecuzione successiva nella finestra di dialogo che Desktop apre, che mostra il comando1707* **Un'altra macchina poco dopo**: dopo diverse esecuzioni del comando entro un'ora, conferma ogni ulteriore esecuzione nella finestra di dialogo che Desktop apre, che mostra il comando
1697 1708
1698##### Smettere di usare una macchina1709##### Smettere di usare una macchina
1699 1710
1701 1712
17021. Trova le sessioni della macchina nella barra laterale. Il [pannello dei dettagli](#see-session-details) di una sessione mostra l'host su cui viene eseguita.17131. Trova le sessioni della macchina nella barra laterale. Il [pannello dei dettagli](#see-session-details) di una sessione mostra l'host su cui viene eseguita.
17032. [Archivia ogni sessione](#archive-a-session) e lasciala archiviata.17142. [Archivia ogni sessione](#archive-a-session) e lasciala archiviata.
17043. Se non hai creato un'altra macchina dalla stessa voce `sshHostCommands` da quando hai creato questa, [creane una](#create-another-machine) oppure [rimuovi la voce](#remove-an-entry). Fino ad allora, la macchina è la connessione salvata della voce, e Desktop può connettersi a essa quando apri la pagina di nuova sessione con quella connessione selezionata.17153. Se non hai creato un'altra macchina dalla stessa voce `sshHostCommands` da quando hai creato questa, [creane una](#create-another-machine) oppure [rimuovi anche la voce](#remove-an-entry). Fino ad allora, la macchina è la connessione salvata della voce e Desktop può connettersi a essa quando apri la pagina di nuova sessione con quella connessione selezionata.
17054. Elimina nell'app qualsiasi altra connessione SSH alla macchina, o rimuovi la sua voce [`sshConfigs`](#pre-configure-ssh-connections-for-your-team).17164. Elimina nell'app qualsiasi altra connessione SSH alla macchina, oppure rimuovi la sua voce [`sshConfigs`](#pre-configure-ssh-connections-for-your-team).
17065. Chiudi e riapri Desktop, il che chiude la sua connessione alla macchina e interrompe i suoi tentativi di raggiungerla.17175. Chiudi e riapri Desktop, il che chiude la sua connessione alla macchina e pone fine ai suoi tentativi di raggiungerla.
17076. Elimina la macchina con il tuo strumento.17186. Elimina la macchina con il tuo strumento.
1708 1719
1709##### Rimuovere una voce1720##### Rimuovere una voce
1710 1721
1711Dopo che rimuovi una voce dal file delle impostazioni o ne modifichi l'`id`, le sessioni sulle sue macchine restano, quindi Desktop può ancora connettersi a quelle macchine. Può farlo senza nessuno al computer, ad esempio per ricollegarsi al processo in esecuzione di una sessione o per consegnare un messaggio in attesa di invio. Per impedirlo, archivia le sessioni, come descritto in [Smettere di usare una macchina](#stop-using-a-machine).1722Dopo che rimuovi una voce dal file delle impostazioni o modifichi il suo `id`, le sessioni sulle sue macchine rimangono, quindi Desktop può ancora connettersi a quelle macchine. Può farlo senza nessuno al computer, ad esempio per ricollegarsi al processo in esecuzione di una sessione o per recapitare un messaggio in attesa di invio. Per impedirlo, archivia le sessioni, come descritto in [Smettere di usare una macchina](#stop-using-a-machine).
1712 1723
1713Se sei un amministratore e hai rimosso una voce gestita, anche le sessioni dei tuoi utenti restano, e ogni utente deve archiviare le proprie. Per bloccare tu stesso le macchine della voce, imposta un [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) che corrisponda agli host di cui i tuoi utenti hanno ancora bisogno e non ai nomi host delle macchine. Puoi farlo solo dove un pattern distingue le due cose.1724Se sei un amministratore e hai rimosso una voce gestita, rimangono anche le sessioni dei tuoi utenti, e ogni utente deve archiviare le proprie. Per bloccare tu stesso le macchine della voce, imposta un'[`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) che corrisponda agli host di cui i tuoi utenti hanno ancora bisogno e non ai nomi host delle macchine. Puoi farlo solo dove un pattern distingue i due.
1714 1725
1715##### Distribuire i comandi al tuo team1726##### Distribuire i comandi al tuo team
1716 1727
1717Per fornire una connessione al tuo team, imposta `sshHostCommands` nel file di [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) di Claude Code o nella policy MDM su ogni computer, non nella [policy di gestione dei dispositivi](#device-management-policies) propria dell'app desktop. Gli utenti vedono le tue voci accanto alle proprie, e l'app non offre alcun modo per modificare o rimuovere una voce, né loro né tua.1728Per fornire una connessione al tuo team, imposta `sshHostCommands` nel file delle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) di Claude Code o nella policy MDM su ogni computer, non nella [policy di gestione dei dispositivi](#device-management-policies) dell'app desktop stessa. Gli utenti vedono le tue voci accanto alle proprie, e l'app non offre alcun modo per modificare o rimuovere una voce, né la loro né la tua.
1718 1729
1719Il seguente file di impostazioni gestite fornisce agli utenti una connessione denominata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:1730Il seguente file di impostazioni gestite fornisce agli utenti una connessione denominata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:
1720 1731
1733 1744
1734Prima di distribuire la chiave, definisci ciascuno di questi aspetti:1745Prima di distribuire la chiave, definisci ciascuno di questi aspetti:
1735 1746
1736* **Dove inserire la chiave**: se la tua policy MDM per Claude Code imposta già una [chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), inseriscila lì. Altrimenti, inseriscila nel file di impostazioni gestite. Per impostazione predefinita, tale policy ha la precedenza sul file, e Desktop ignora quindi le voci nel file. Impostala sul computer anche dove si applicano le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md): Desktop ignora la chiave lì, e nelle impostazioni di progetto e locali.1747* **Dove inserire la chiave**: se la tua policy MDM per Claude Code imposta già una [chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), inseriscila lì. Altrimenti, inseriscila nel file delle impostazioni gestite. Per impostazione predefinita, una policy di questo tipo ha la precedenza sul file, e Desktop ignora quindi le voci nel file. Impostala sul computer anche dove si applicano le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md): Desktop ignora la chiave lì, e nelle impostazioni di progetto e locali.
1737* **L'`id`**: se la voce `sshHostCommands` di un utente ha il tuo `id`, funziona solo la tua. Se qualsiasi altra connessione SSH lo ha, come una nei `sshConfigs` di un utente, la tua voce è grigia. Scegli un `id` che difficilmente gli utenti sceglierebbero.1748* **L'`id`**: se la voce `sshHostCommands` di un utente ha il tuo `id`, funziona solo la tua. Se qualsiasi altra connessione SSH lo ha, come una nelle `sshConfigs` di un utente, la tua voce è grigia. Scegli un `id` che difficilmente gli utenti sceglierebbero.
1738* **Il programma**: indica il suo percorso completo, perché Desktop cerca un nome semplice nel `PATH` di ciascun utente. Il programma viene eseguito come l'utente, con le variabili esportate dalla sua shell di login.1749* **Il programma**: indica il suo percorso completo, perché Desktop cerca un nome semplice nel `PATH` di ciascun utente. Il programma viene eseguito come l'utente, con le variabili che la sua shell di login esporta.
1739* **Le voci degli utenti**: Desktop tratta la voce di un utente come un [hook](https://code.claude.com/docs/it/hooks.md), perché entrambi eseguono un programma sul computer. Per consentire solo le tue voci, imposta [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `["hooks"]`, oppure aggiungi `"hooks"` al suo elenco. Blocchi anche gli hook di Claude Code dalle impostazioni utente, di progetto e locali, senza alcun modo per mantenerli. Se imposti invece quella chiave o [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) su `true`, blocchi di più, come indicato nella voce di ciascuna chiave.1750* **Le voci degli utenti**: Desktop tratta la voce di un utente come un [hook](https://code.claude.com/docs/it/hooks.md), perché entrambi eseguono un programma sul computer. Per consentire solo le tue voci, imposta [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `["hooks"]`, oppure aggiungi `"hooks"` al suo elenco. In questo modo blocchi anche gli hook di Claude Code dalle impostazioni utente, di progetto e locali, senza modo di mantenerli. Se invece imposti quella chiave o [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) su `true`, blocchi di più, come elenca la voce di ciascuna chiave.
1740* **Ogni voce**: per disattivare anche le tue voci, imposta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks) nelle impostazioni gestite. Se imposti [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), o un `sshHostAllowlist` che non consente alcun host, il selettore non elenca alcun elemento **Create** o **Create another**.1751* **Ogni voce**: per disattivare anche le tue voci, imposta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks) nelle impostazioni gestite. Se imposti [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), o un'`sshHostAllowlist` che non consente alcun host, il selettore non elenca alcuna voce **Create** o **Create another**.
1741* **Dove contano i blocchi**: per queste voci, Desktop legge `allowManagedHooksOnly`, `strictPluginOnlyCustomization` e `disableAllHooks` dalle impostazioni gestite dal server e dal file o dalla policy del computer stesso, e applica il risultato più restrittivo. Ogni voce rimane grigia finché Desktop non ha verificato su claude.ai le impostazioni gestite dal server, anche se la tua organizzazione non ne ha.1752* **Dove contano i blocchi**: per queste voci, Desktop legge `allowManagedHooksOnly`, `strictPluginOnlyCustomization` e `disableAllHooks` dalle impostazioni gestite dal server e dal file o dalla policy del computer stesso, e applica il risultato più restrittivo. Ogni voce rimane grigia finché Desktop non ha verificato le impostazioni gestite dal server su claude.ai, anche se la tua organizzazione non ne ha.
1742* **Host consentiti**: se imposti [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to), assicurati che un pattern corrisponda a ogni nome host stampato dal tuo strumento, e ometti `user@` dal pattern. Desktop verifica il nome stampato solo dopo che il comando è stato eseguito, quindi una macchina rifiutata dall'elenco esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, deve corrispondere anche l'`HostName` risolto.1753* **Host consentiti**: se imposti [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to), assicurati che un pattern corrisponda a ogni nome host che il tuo strumento stampa, e ometti `user@` dal pattern. Desktop controlla il nome stampato solo dopo che il comando è stato eseguito, quindi una macchina che l'elenco rifiuta esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, deve corrispondere anche l'`HostName` risolto.
1743 1754
1744Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore dell'ambiente della scheda Code, cerca sotto **SSH**, oppure nella singola riga **SSH**. La tua voce compare come elemento **Create**, oppure come elemento grigio che indica il motivo quando ci passi sopra con il puntatore. Se manca, verifica dove hai inserito la chiave, poi i casi in [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1755Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore dell'ambiente della scheda Code, guarda sotto **SSH**, oppure nella singola riga **SSH**. La tua voce compare come voce **Create**, oppure come voce grigia che mostra il motivo quando vi passi sopra il puntatore. Se manca, controlla dove hai inserito la chiave, poi i casi in [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).
1745 1756
1746##### Se un comando manca o è grigio1757##### Se un comando manca o è grigio
1747 1758
1748Il selettore dell'ambiente non elenca alcun elemento **Create** o **Create another** in questi casi:1759Il selettore dell'ambiente non elenca alcuna voce **Create** o **Create another** in questi casi:
1749 1760
1750* **Il file**: `~/.claude/settings.json` contiene [JSON non valido o un valore rifiutato dallo schema](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file), hai scritto male la chiave, oppure l'hai inserita nelle impostazioni di un progetto. Correggi il file.1761* **Il file**: `~/.claude/settings.json` contiene [JSON non valido o un valore che lo schema rifiuta](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file), hai scritto male la chiave oppure l'hai inserita nelle impostazioni di un progetto. Correggi il file.
1751* **Piattaforma e account**: usi Windows, oppure un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) anziché un account Claude. Aggiungi tu stesso ogni host come [connessione SSH](#ssh-sessions).1762* **Piattaforma e account**: usi Windows, oppure un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) invece di un account Claude. Aggiungi tu stesso ogni host come [connessione SSH](#ssh-sessions).
1752* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.1763* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.
1753* **Nessun programma `ssh`**: Desktop non è riuscito ad avviare il client OpenSSH sul tuo computer. Installalo, o chiedi al tuo amministratore di consentirlo, poi riavvia Desktop.1764* **Nessun programma `ssh`**: Desktop non è riuscito ad avviare il client OpenSSH sul tuo computer. Installalo, oppure chiedi al tuo amministratore di consentirlo, poi riavvia Desktop.
1754 1765
1755Una voce che non puoi selezionare è grigia. Passaci sopra con il puntatore per vedere il motivo:1766Una voce che non puoi selezionare è grigia. Passaci sopra il puntatore per vedere il motivo:
1756 1767
1757* **Un errore nella voce**: correggi il campo o il comando indicato dal messaggio. Se l'`id` è già in uso, assegnane un altro alla voce.1768* **Un errore nella voce**: correggi il campo o il comando indicato dal messaggio. Se l'`id` è già in uso, assegna alla voce un altro `id`.
1758* **Un file di impostazioni danneggiato**: finché il tuo file di impostazioni è danneggiato, le voci del tuo amministratore potrebbero essere grigie, con un messaggio che indica il file. [Correggi il file](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).1769* **Un file delle impostazioni danneggiato**: mentre il tuo file delle impostazioni è danneggiato, le voci del tuo amministratore possono essere grigie, con un messaggio che indica il file. [Correggi il file](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).
1759* **Un nuovo host**: [**Create another**](#create-another-machine) è grigio per un minuto dopo che Desktop ha salvato un host. Selezionalo dopo quel minuto. Prima di Claude Desktop v4.4212.0, **Replace Dev box's host** è grigio per 10 minuti.1770* **Un nuovo host**: [**Create another**](#create-another-machine) è grigio per un minuto dopo che Desktop salva un host. Selezionalo dopo quel minuto. Prima di Claude Desktop v4.4212.0, **Replace Dev box's host** è grigio per 10 minuti.
1760* **Gli hook sono disattivati o limitati**: le tue voci funzionano solo dove possono essere eseguiti i tuoi hook. Rimuovi `disableAllHooks` dalle tue impostazioni, oppure chiedi al tuo amministratore.1771* **Gli hook sono disattivati o limitati**: le tue voci funzionano solo dove i tuoi hook possono essere eseguiti. Rimuovi `disableAllHooks` dalle tue impostazioni, oppure chiedi al tuo amministratore.
1761* **Le impostazioni sono ancora in caricamento**: ogni voce è grigia finché Desktop non ha caricato le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) della tua organizzazione, di solito pochi secondi dopo l'avvio. Se le voci rimangono grigie, verifica la tua connessione a claude.ai.1772* **Le impostazioni sono ancora in caricamento**: ogni voce è grigia finché Desktop non ha caricato le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) della tua organizzazione, di solito pochi secondi dopo l'avvio. Se le voci rimangono grigie, controlla la tua connessione a claude.ai.
1762 1773
1763#### Preconfigurare le connessioni SSH per il tuo team1774#### Preconfigurare le connessioni SSH per il tuo team
1764 1775
1765Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).1776Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).
1766 1777
1767* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore dell'ambiente di ciascun utente.1778* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore dell'ambiente di ogni utente.
1768* **Cosa possono modificare gli utenti**: gli utenti possono selezionare una connessione gestita e [impostare la propria **Worktree folder**](#set-the-worktree-folder-on-an-existing-connection) per essa. Non possono modificarne gli altri campi né eliminarla nell'app.1779* **Cosa possono modificare gli utenti**: gli utenti possono selezionare una connessione gestita e [impostare la propria **Worktree folder**](#set-the-worktree-folder-on-an-existing-connection) per essa. Non possono modificarne gli altri campi né eliminarla nell'app.
1769 1780
1770L'esempio seguente preconfigura una singola connessione:1781L'esempio seguente preconfigura una singola connessione:
1785 1796
1786Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.1797Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.
1787 1798
1788Se ometti `user@` da `sshHost`, Desktop si connette come lo `User` che il `~/.ssh/config` di ciascuno sviluppatore imposta per l'host, oppure come il suo nome utente sul proprio computer.1799Se ometti `user@` da `sshHost`, Desktop si connette come lo `User` che il `~/.ssh/config` di ogni sviluppatore imposta per l'host, oppure altrimenti con il suo nome utente sul proprio computer.
1789 1800
1790#### Limitare gli host SSH a cui gli utenti possono connettersi1801#### Limitare gli host SSH a cui gli utenti possono connettersi
1791 1802
1792Gli amministratori possono limitare le sessioni SSH di Desktop a un insieme approvato di host impostando `sshHostAllowlist` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Quando è impostata, gli utenti possono connettersi solo agli host il cui nome host risolto corrisponde a uno dei pattern. Impostala su un array vuoto per disattivare le sessioni SSH. La [voce di riferimento di `sshHostAllowlist`](https://code.claude.com/docs/it/settings-reference#sshhostallowlist) spiega come un array vuoto si combina con gli elenchi in altre origini gestite.1803Gli amministratori possono limitare le sessioni SSH di Desktop a un insieme approvato di host impostando `sshHostAllowlist` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Quando è impostata, gli utenti possono connettersi solo a host il cui nome host risolto corrisponde a uno dei pattern. Impostala su un array vuoto per disattivare le sessioni SSH. La [voce di riferimento di `sshHostAllowlist`](https://code.claude.com/docs/it/settings-reference#sshhostallowlist) spiega come un array vuoto si combina con gli elenchi in altre origini gestite.
1793 1804
1794L'esempio seguente consente le connessioni a qualsiasi host sotto `devboxes.example.com` e a un singolo bastion host specifico:1805L'esempio seguente consente le connessioni a qualsiasi host in `devboxes.example.com` e a un singolo bastion host con nome:
1795 1806
1796```json theme={null}1807```json theme={null}
1797{1808{
1801 1812
1802> [!WARNING]1813> [!WARNING]
1803>1814>
1804> Se la tua organizzazione fornisce [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), imposta `sshHostAllowlist` lì. Per impostazione predefinita, Desktop legge la chiave solo dall'[origine gestita con priorità più alta che fornisce una chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se quell'origine lascia la chiave non impostata, Desktop ignora un elenco in una policy MDM o in un file di impostazioni gestite con priorità inferiore e tratta la chiave come [non impostata](https://code.claude.com/docs/it/settings-reference.md#sshhostallowlist). Desktop non mostra alcun avviso.1815> Se la tua organizzazione fornisce [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), imposta `sshHostAllowlist` lì. Per impostazione predefinita, Desktop legge la chiave solo dall'[origine gestita con la priorità più alta che fornisce una chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se quell'origine lascia la chiave non impostata, Desktop ignora un elenco in una policy MDM o in un file di impostazioni gestite con priorità inferiore e tratta la chiave come [non impostata](https://code.claude.com/docs/it/settings-reference.md#sshhostallowlist). Desktop non mostra alcun avviso.
1805>1816>
1806> Mantieni inoltre lo stesso elenco sulla macchina di ciascun utente, nella policy MDM o nel file di impostazioni gestite con priorità più alta presente lì. Desktop recupera le impostazioni gestite dal server all'avvio e non ne conserva una copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.1817> Mantieni anche lo stesso elenco sulla macchina di ogni utente, nella policy MDM o nel file di impostazioni gestite con la priorità più alta presente lì. Desktop recupera le impostazioni gestite dal server all'avvio e non ne conserva una copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.
1807 1818
1808I pattern non fanno distinzione tra maiuscole e minuscole. `*` corrisponde a qualsiasi host, e `*.example.com` corrisponde a `example.com` e a qualsiasi sottodominio. Qualsiasi altro valore è una corrispondenza esatta. Il controllo viene eseguito sul nome host dopo la risoluzione di `~/.ssh/config` tramite `ssh -G`, quindi un alias `Host` è consentito purché il suo `HostName` risolto corrisponda. Anche i [jump host](#allow-jump-hosts) di una sessione devono corrispondere.1819I pattern non fanno distinzione tra maiuscole e minuscole. `*` corrisponde a qualsiasi host e `*.example.com` corrisponde a `example.com` e a qualsiasi sottodominio. Qualsiasi altro valore è una corrispondenza esatta. Il controllo viene eseguito sul nome host dopo la risoluzione di `~/.ssh/config` tramite `ssh -G`, quindi un alias `Host` è consentito purché il suo `HostName` risolto corrisponda. Anche i [jump host](#allow-jump-hosts) di una sessione devono corrispondere.
1809 1820
1810`sshHostAllowlist` viene letta solo dalle impostazioni gestite; i valori nelle impostazioni utente o di progetto vengono ignorati. Solo l'app Claude Desktop rispetta questa impostazione; la CLI di Claude Code e le estensioni IDE non la leggono, e non limita i comandi `ssh` eseguiti tramite lo strumento Bash. Determina a quali host si connette l'app Desktop, non il traffico di rete in uscita, quindi abbinala ai controlli di rete o zero-trust della tua organizzazione se hai bisogno di un confine rigido.1821`sshHostAllowlist` viene letta solo dalle impostazioni gestite; i valori nelle impostazioni utente o di progetto vengono ignorati. Solo l'app Claude Desktop rispetta questa impostazione; la CLI di Claude Code e le estensioni IDE non la leggono, e non limita i comandi `ssh` eseguiti tramite lo strumento Bash. Regola gli host a cui l'app Desktop si connette, non il traffico di rete in uscita, quindi abbinala ai controlli di rete o zero-trust della tua organizzazione se ti serve un confine rigido.
1811 1822
1812##### Consentire i jump host1823##### Consentire i jump host
1813 1824
1814Aggiungi a `sshHostAllowlist` ogni jump host che Desktop verifica, tramite il suo `HostName` risolto. Aggiungi i jump host prima che gli utenti aggiornino a Claude Desktop v3.1623.0 o versione successiva, altrimenti non potranno connettersi attraverso di essi.1825Aggiungi a `sshHostAllowlist` ogni jump host che Desktop controlla, tramite il suo `HostName` risolto. Aggiungi i jump host prima che gli utenti aggiornino a Claude Desktop v3.1623.0 o successivo, altrimenti non potranno connettersi attraverso di essi.
1815 1826
1816> [!WARNING]1827> [!WARNING]
1817>1828>
1818> L'elenco ha un solo tipo di voce, quindi gli utenti possono anche avviare una sessione su qualsiasi host che elenchi. Elenca solo jump host su cui consentiresti agli utenti anche di eseguire sessioni.1829> L'elenco ha un solo tipo di voce, quindi gli utenti possono anche avviare una sessione su qualsiasi host che elenchi. Elenca solo i jump host su cui consentiresti anche agli utenti di eseguire sessioni.
1819 1830
1820Desktop verifica i jump host nel `ProxyJump` che il `~/.ssh/config` dell'utente imposta per l'host della sessione, oppure in un `ProxyCommand` scritto come `ssh -W %h:%p <host>`. Se uno di quelli che verifica non è nell'elenco quando Desktop connette o riconnette una sessione, la connessione non riesce. Quando un utente avvia una sessione o invia un messaggio, i dettagli dell'errore riportano l'`HostName` di quel jump host, che è il nome da aggiungere:1831Desktop controlla i jump host nel `ProxyJump` che il `~/.ssh/config` dell'utente imposta per l'host della sessione, oppure in un `ProxyCommand` scritto come `ssh -W %h:%p <host>`. Se uno che controlla non è nell'elenco quando Desktop connette o riconnette una sessione, la connessione non riesce. Quando un utente avvia una sessione o invia un messaggio, i dettagli dell'errore indicano l'`HostName` di quel jump host, che è il nome da aggiungere:
1821 1832
1822```text theme={null}1833```text theme={null}
1823SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".1834SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".
1827 1838
1828**1. Trova il percorso**1839**1. Trova il percorso**
1829 1840
1830Esegui `ssh -G` con un host a cui gli utenti si connettono, come `ssh -G devbox`. Cerca una riga `proxyjump`, oppure una riga `proxycommand` scritta come `ssh -W %h:%p <host>`. Il comando conta comunque con una qualsiasi delle opzioni `-l`, `-p`, `-J`, `-q`, `-v`, `-N`, `-T`, `-x` o `-a`, e anche gli host dopo `-J` sono jump host. Se una riga `proxycommand` esegue un programma diverso da `ssh`, non aggiungere nulla per essa.1841Esegui `ssh -G` con un host a cui gli utenti si connettono, come `ssh -G devbox`. Cerca una riga `proxyjump`, oppure una riga `proxycommand` scritta come `ssh -W %h:%p <host>`. Il comando conta comunque con uno qualsiasi tra `-l`, `-p`, `-J`, `-q`, `-v`, `-N`, `-T`, `-x` o `-a`, e anche gli host dopo `-J` sono jump host. Se una riga `proxycommand` esegue un programma diverso da `ssh`, non aggiungere nulla per essa.
1831 1842
1832**2. Cerca ogni jump host**1843**2. Cerca ogni jump host**
1833 1844
1834Esegui `ssh -G` con ogni jump host presente su quella riga, senza alcun `:port`, e annota l'`hostname` che stampa. Se l'output per il primo jump host su quella riga contiene una riga di uno dei due tipi, ripeti questo passaggio con essa. Ignora una riga di questo tipo nell'output di un jump host successivo.1845Esegui `ssh -G` con ogni jump host su quella riga, senza alcun `:port`, e annota l'`hostname` che stampa. Se l'output per il primo jump host su quella riga contiene una riga di uno dei due tipi, ripeti questo passaggio con essa. Ignora una riga di questo tipo nell'output di un jump host successivo.
1835 1846
1836**3. Aggiungi i nomi**1847**3. Aggiungi i nomi**
1837 1848
1843 1854
1844> [!NOTE]1855> [!NOTE]
1845>1856>
1846> Questa configurazione è destinata agli utenti che accedono con un account Claude. Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH sono disattivate per impostazione predefinita, e l'impostazione di `sshHostAllowlist` può attivarle. Leggi [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) prima di distribuire queste chiavi.1857> Questa configurazione è per gli utenti che accedono con un account Claude. Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH sono disattivate per impostazione predefinita e impostare `sshHostAllowlist` può attivarle. Leggi [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) prima di distribuire queste chiavi.
1847 1858
1848L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:1859L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:
1849 1860
1865 1876
1866* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer1877* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer
1867* **Cowork**: nessuna delle chiavi si applica alle sessioni di [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork1878* **Cowork**: nessuna delle chiavi si applica alle sessioni di [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork
1868* **Sessioni cloud**: nessuna delle chiavi modifica la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Controlli della console di amministrazione](#admin-console-controls).1879* **Sessioni cloud**: nessuna delle chiavi cambia la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Controlli della console di amministrazione](#admin-console-controls).
1869 1880
1870Quando adatti l'esempio, verifica i nomi host, la versione di Desktop e i permessi del file:1881Quando adatti l'esempio, controlla i nomi host, la versione di Desktop e i permessi del file:
1871 1882
1872* **Nomi host**: assicurati che un pattern in `sshHostAllowlist` corrisponda al nome host di ogni voce `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non potranno connettersi. Aggiungi anche un pattern che corrisponda a ogni [jump host](#allow-jump-hosts) che Desktop verifica lungo il percorso. Per come Desktop confronta un nome host, consulta [Limitare gli host SSH a cui gli utenti possono connettersi](#restrict-which-ssh-hosts-users-can-connect-to).1883* **Nomi host**: assicurati che un pattern in `sshHostAllowlist` corrisponda al nome host di ogni voce `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non possono connettersi a essa. Aggiungi anche un pattern che corrisponda a ogni [jump host](#allow-jump-hosts) che Desktop controlla lungo il percorso verso di essa. Per sapere come Desktop fa corrispondere un nome host, consulta [Limitare gli host SSH a cui gli utenti possono connettersi](#restrict-which-ssh-hosts-users-can-connect-to).
1873* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versione successiva1884* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o successivo
1874* **Permessi del file**: assicurati che l'account di ciascuno sviluppatore sul computer possa leggere il file di impostazioni gestite. Desktop non applica le chiavi in un file che l'account non può leggere, e anche Claude Code [si avvia senza di esse](https://code.claude.com/docs/it/managed-settings.md#find-entries-claude-code-dropped).1885* **Permessi del file**: assicurati che l'account di ogni sviluppatore sul computer possa leggere il file delle impostazioni gestite. Desktop non applica le chiavi in un file che l'account non può leggere, e anche Claude Code [si avvia senza di esse](https://code.claude.com/docs/it/managed-settings.md#find-entries-claude-code-dropped).
1875 1886
1876Inserisci le tre chiavi in un'unica [origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), quella con priorità più alta tra quelle che fornisci. Se fornisci [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), conserva anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con priorità più alta su ogni computer. Desktop recupera le impostazioni gestite dal server all'avvio, e la copia sul computer si applica finché un recupero non riesce.1887Inserisci le tre chiavi in un'unica [origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), quella con la priorità più alta che fornisci. Se fornisci [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), mantieni anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con la priorità più alta su ogni computer. Desktop recupera le impostazioni gestite dal server all'avvio, e la copia sul computer si applica finché un recupero non riesce.
1877 1888
1878Per confermare che le impostazioni sono applicate, controlla il computer di uno sviluppatore:1889Per confermare che le impostazioni vengano applicate, controlla il computer di uno sviluppatore:
1879 1890
1880**1. Controlla il selettore dell'ambiente**1891**1. Controlla il selettore dell'ambiente**
1881 1892
1882Chiudi e riapri Desktop, poi apri il [selettore dell'ambiente](#start-a-session). Le impostazioni sono applicate se mostra:1893Chiudi e riapri Desktop, poi apri il [selettore dell'ambiente](#start-a-session). Le impostazioni sono state applicate se mostra:
1883 1894
1884* La voce per quel computer, in grigio1895* La voce relativa a quel computer, in grigio
1885* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.1896* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.
1886 1897
1887Se la voce per il computer è ancora disponibile, verifica queste cause:1898Se la voce relativa al computer è ancora disponibile, verifica queste cause:
1888 1899
1889* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.1900* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.
1890* **File di impostazioni gestite**: assicurati che il file sia JSON valido.1901* **File delle impostazioni gestite**: assicurati che il file sia JSON valido.
1891* **Origine gestita**: assicurati che il computer legga l'[origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) che contiene le chiavi.1902* **Origine gestita**: assicurati che il computer legga l'[origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) che contiene le chiavi.
1892 1903
1893**2. Aggiungi un host che non è nell'allowlist**1904**2. Aggiungi un host che non è nell'allowlist**
1894 1905
1895[Aggiungi una connessione SSH](#ssh-sessions) con un nome host che non è nell'allowlist, come `other.example.com`. Desktop salva la connessione ma rifiuta di connettersi, e indica che le impostazioni della tua organizzazione non consentono la connessione.1906[Aggiungi una connessione SSH](#ssh-sessions) con un nome host che non è nell'allowlist, come `other.example.com`. Desktop salva la connessione ma si rifiuta di connettersi, e indica che le impostazioni della tua organizzazione non consentono la connessione.
1896 1907
1897## Configurazione aziendale1908## Configurazione aziendale
1898 1909
2290| `<host> is out of disk space` | `[ENOSPC]` o `[EDQUOT]` | Libera spazio o quota sulla macchina remota, nella tua directory home o in `/tmp` |2301| `<host> is out of disk space` | `[ENOSPC]` o `[EDQUOT]` | Libera spazio o quota sulla macchina remota, nella tua directory home o in `/tmp` |
2291| `Free up disk space on this computer` | `[ENOSPC]` o `[EDQUOT]`, in un messaggio che inizia con `Couldn't prepare the deploy locally` | Libera spazio sul tuo computer |2302| `Free up disk space on this computer` | `[ENOSPC]` o `[EDQUOT]`, in un messaggio che inizia con `Couldn't prepare the deploy locally` | Libera spazio sul tuo computer |
2292| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Attendi un minuto, quindi riprova. Se continua a non riuscire, esegui sulla macchina remota il comando indicato nel messaggio per vedere se Claude Code risponde lì. |2303| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Attendi un minuto, quindi riprova. Se continua a non riuscire, esegui sulla macchina remota il comando indicato nel messaggio per vedere se Claude Code risponde lì. |
2304| `Ask <host>'s administrator to let Claude's server run` | `[SERVER_NOT_RUNNABLE]` o `[SETUP_DIR_NOEXEC]` | Chiedi all'amministratore della macchina remota di consentire l'esecuzione di programmi da `~/.claude/remote/` su quella macchina, come indicato nei [requisiti](#remote-machine-requirements-for-ssh-sessions) |
2305| `Try again in a few minutes` | `[DOWNLOAD_BUSY]` | Attendi qualche minuto, quindi riprova. Il server di download di Anthropic o un proxy sulla rete del tuo computer ha segnalato di essere occupato. Se la scheda continua a ripresentarsi, chiedi all'amministratore di quella rete se un proxy limita i download. |
2293 2306
2294Per qualsiasi altro messaggio, controlla i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions).2307Per qualsiasi altro messaggio, controlla i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions).
2295 2308