38 38
39Per [lavoro ricorrente pianificato](https://code.claude.com/docs/it/desktop-scheduled-tasks.md), [scorciatoie da tastiera](#keyboard-shortcuts), o [invio di attività dal tuo telefono](#sessions-from-dispatch), consulta le pagine e le sezioni collegate. Se utilizzi già il CLI basato su terminale, consulta il [confronto CLI](#coming-from-the-cli) per vedere cosa si trasferisce.39Per [lavoro ricorrente pianificato](https://code.claude.com/docs/it/desktop-scheduled-tasks.md), [scorciatoie da tastiera](#keyboard-shortcuts), o [invio di attività dal tuo telefono](#sessions-from-dispatch), consulta le pagine e le sezioni collegate. Se utilizzi già il CLI basato su terminale, consulta il [confronto CLI](#coming-from-the-cli) per vedere cosa si trasferisce.
40 40
41## Avvia una sessione41## Avviare una sessione
42 42
43Prima di inviare il tuo primo messaggio, scegli l'ambiente, la cartella del progetto, la modalità di permesso e il modello nella riga sotto la casella del prompt:43Prima di inviare il tuo primo messaggio, scegli l'ambiente, la cartella del progetto, la modalità di permesso e il modello nella riga sotto la casella del prompt:
44 44
45* **Ambiente**: usa il selettore dell'ambiente, il primo controllo della riga, per scegliere dove Claude viene eseguito. Vedi [configurazione dell'ambiente](#environment-configuration).45* **Ambiente**: usa il selettore dell'ambiente, il primo controllo della riga, per scegliere dove viene eseguito Claude. Consulta la [configurazione dell'ambiente](#environment-configuration).
46 * Se una nuova sessione non ha il selettore dell'ambiente sotto la casella del prompt, segui i [passaggi del layout precedente](#check-which-layout-you-have).46 * Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, segui i [passaggi del layout precedente](#check-which-layout-you-have).
47* **Cartella del progetto**: fai clic sul controllo della cartella del progetto, accanto al selettore dell'ambiente, per scegliere la cartella su cui Claude lavora.47* **Cartella del progetto**: fai clic sul controllo della cartella del progetto, accanto al selettore dell'ambiente, per scegliere la cartella in cui lavora Claude.
48 * **Sessione cloud**: seleziona dei [repository](#run-long-running-tasks-in-the-cloud) invece di una cartella48 * **Sessione cloud**: seleziona i [repository](#run-long-running-tasks-in-the-cloud) invece di una cartella
49 * **[Ambiente locale o SSH salvato](#create-a-saved-environment)**: l'ambiente contiene già le sue cartelle, quindi la riga non mostra alcun controllo della cartella del progetto. Per cambiare le cartelle, [modifica l'ambiente](#use-edit-or-remove-a-saved-environment).49 * **[Ambiente locale o SSH salvato](#create-a-saved-environment)**: l'ambiente contiene già le sue cartelle, quindi la riga non mostra alcun controllo della cartella del progetto. Per cambiare le cartelle, [modifica l'ambiente](#use-edit-or-remove-a-saved-environment).
50* **Modalità di permesso**: usa il [selettore di modalità](#choose-a-permission-mode) per scegliere quanta autonomia ha Claude. Puoi cambiare la modalità di permesso durante la sessione.50* **Modalità di permesso**: usa il [selettore della modalità](#choose-a-permission-mode) per scegliere quanta autonomia ha Claude. Puoi cambiare la modalità di permesso durante la sessione.
51* **Modello**: scegli un [modello](https://code.claude.com/docs/it/model-config.md#available-models) dal selettore del modello verso l'estremità destra della riga. Puoi cambiare il modello durante la sessione.51* **Modello**: scegli un [modello](https://code.claude.com/docs/it/model-config.md#available-models) dal selettore del modello verso l'estremità destra della riga. Puoi cambiare il modello durante la sessione.
52 52
53Digita il tuo compito e premi **Invio** per iniziare. Ogni sessione traccia il suo proprio contesto e le modifiche in modo indipendente.53Scrivi il tuo compito e premi **Enter** per iniziare. Ogni sessione tiene traccia in modo indipendente del proprio contesto e delle proprie modifiche.
54 54
55## Lavora con il codice55## Lavorare con il codice
56 56
57Dai a Claude il contesto giusto, controlla quanto fa da solo e rivedi cosa ha cambiato.57Fornisci a Claude il contesto giusto, controlla quanto fa in autonomia e rivedi ciò che ha modificato.
58 58
59### Usa la casella del prompt59### Usare la casella del prompt
60 60
61Digita quello che vuoi che Claude faccia e premi **Invio** per inviare. Claude legge i file del tuo progetto, apporta modifiche ed esegue comandi in base alla tua [modalità di permesso](#choose-a-permission-mode). Puoi interrompere Claude in qualsiasi momento: fai clic sul pulsante di arresto per interrompere immediatamente, oppure digita una correzione e premi **Invio** per inviarla senza interrompere l'azione in corso. Claude legge la correzione non appena l'azione corrente si completa e si adatta prima del suo passo successivo.61Scrivi cosa vuoi che Claude faccia e premi **Enter** per inviare. Claude legge i file del tuo progetto, apporta modifiche ed esegue comandi in base alla tua [modalità di permesso](#choose-a-permission-mode). Puoi reindirizzare Claude in qualsiasi momento: fai clic sul pulsante di stop per interromperlo immediatamente, oppure scrivi una correzione e premi **Enter** per inviarla senza fermare l'azione in corso. Claude legge la correzione non appena l'azione corrente termina e si adegua prima del passaggio successivo.
62 62
63Fai clic sul pulsante **+** accanto alla casella del prompt per allegati di file, [skill](#use-skills), [connettori](#connect-external-tools) e [plugin](#install-plugins).63Fai clic sul pulsante **+** accanto alla casella del prompt per allegati, [skill](#use-skills), [connettori](#connect-external-tools) e [plugin](#install-plugins).
64 64
65### Accetta un prompt suggerito65### Accettare un prompt suggerito
66 66
67Dopo che Claude risponde, la scheda Code può mostrare un prompt successivo suggerito come testo grigio nella casella del prompt vuota. Claude Code [genera ogni suggerimento](https://code.claude.com/docs/it/interactive-mode.md#prompt-suggestions) dalla tua conversazione con una breve richiesta in background che viene conteggiata nei limiti di utilizzo del tuo piano o nei costi dell'API.67Dopo la risposta di Claude, la scheda Code può mostrare un prompt successivo suggerito come testo grigio nella casella del prompt vuota. Claude Code [genera ogni suggerimento](https://code.claude.com/docs/it/interactive-mode.md#prompt-suggestions) dalla tua conversazione con una breve richiesta in background che viene conteggiata nei limiti di utilizzo del tuo piano o nei tuoi costi API.
68 68
69* **Usa il suggerimento**: premi **Tab** o **Freccia destra** per inserirlo nella casella del prompt, modificalo se vuoi, poi premi **Invio** per inviarlo. Premere **Invio** prima di accettare il suggerimento non lo invia.69* **Usa il suggerimento**: premi **Tab** o **Freccia destra** per inserirlo nella casella del prompt, modificalo se vuoi, quindi premi **Enter** per inviarlo. Premere **Enter** prima di accettare il suggerimento non lo invia.
70* **Scrivi il tuo prompt**: inizia a digitare. Il suggerimento viene mostrato solo mentre la casella del prompt è vuota e non ha file allegati.70* **Scrivi il tuo prompt**: inizia a digitare. Il suggerimento viene mostrato solo mentre la casella del prompt è vuota e non ha file allegati.
71 71
72Disattiva **Prompt suggestions** in **Impostazioni > Code** o **Impostazioni > Claude Code** per interrompere i suggerimenti. Ogni sessione smette di mostrarli la prossima volta che viene avviata o ripresa.72Disattiva **Prompt suggestions** in **Settings > Code** o **Settings > Claude Code** per interrompere i suggerimenti. Ogni sessione smette di mostrarli la volta successiva che viene avviata o ripresa.
73 73
74### Aggiungi file e contesto ai prompt74### Aggiungere file e contesto ai prompt
75 75
76Per dare un file a Claude, menzionalo con @ o allegalo nella casella del prompt:76Per fornire un file a Claude, menzionalo con @ o allegalo nella casella del prompt:
77 77
78* **@mention file**: digita `@` seguito da un nome di file per aggiungere un file al contesto della conversazione.78* **Menziona file con @**: digita `@` seguito da un nome file per aggiungere un file al contesto della conversazione.
79 * **In una sessione cloud**: `@` può elencare i file solo dopo che hai inviato il tuo primo messaggio. Se `@` non ne elenca nessuno, invia il tuo primo messaggio senza il file, poi menziona il file con @ nel messaggio successivo.79 * **In una sessione cloud**: `@` può elencare i file solo dopo che hai inviato il tuo primo messaggio. Se `@` non ne elenca nessuno, invia il primo messaggio senza il file, quindi menziona il file con @ nel messaggio successivo.
80* **Allega file**: allega immagini, PDF e altri file al tuo prompt dal pulsante **+** accanto alla casella del prompt, o trascina e rilascia i file direttamente nel prompt. Questo è utile per condividere screenshot di bug, mockup di design o documenti di riferimento.80* **Allega file**: allega immagini, PDF e altri file al tuo prompt dal pulsante **+** accanto alla casella del prompt, oppure trascina i file direttamente nel prompt. È utile per condividere screenshot di bug, mockup di design o documenti di riferimento.
81 * **In una [sessione WSL](https://code.claude.com/docs/it/desktop-wsl.md)**: se il menu **+** mostra **Add image** invece di **Add files or photos**, puoi allegare solo immagini. Per dare a Claude qualsiasi altro file dalla cartella della sessione, menzionalo con @.81 * **In una [sessione WSL](https://code.claude.com/docs/it/desktop-wsl.md)**: se il menu **+** mostra **Add image** invece di **Add files or photos**, puoi allegare solo immagini. Per fornire a Claude qualsiasi altro file dalla cartella della sessione, menzionalo con @.
82 82
83### Scegli una modalità di permesso83### Scegliere una modalità di permesso
84 84
85Le modalità di permesso controllano quanta autonomia ha Claude durante una sessione: se chiede prima di modificare file, eseguire comandi o entrambi. Puoi cambiare modalità di permesso in qualsiasi momento usando il selettore di modalità nella riga sotto la casella del prompt. Per approvare ogni modifica tu stesso, passa a Manual.85Le modalità di permesso controllano quanta autonomia ha Claude durante una sessione: se chiede prima di modificare file, eseguire comandi o entrambi. Puoi cambiare modalità di permesso in qualsiasi momento usando il selettore di modalità nella riga sotto la casella del prompt. Per approvare personalmente ogni modifica, passa a Manual.
86 86
87Per impostare una modalità predefinita per le nuove sessioni locali, aggiungi `permissions.defaultMode` al tuo [file di impostazioni](https://code.claude.com/docs/it/settings.md#where-settings-live). L'app desktop legge gli stessi file di impostazioni della CLI. Una modalità che scegli nel selettore viene ricordata per cartella e ha la precedenza su `defaultMode` per quella cartella, tranne Plan, che si applica solo alla sessione corrente.87Per impostare una modalità predefinita per le nuove sessioni locali, aggiungi `permissions.defaultMode` al tuo [file di impostazioni](https://code.claude.com/docs/it/settings.md#where-settings-live). L'app desktop legge gli stessi file di impostazioni della CLI. Una modalità scelta nel selettore viene ricordata per cartella e ha la precedenza su `defaultMode` per quella cartella, tranne Plan, che si applica solo alla sessione corrente.
88 88
89| Modalità | Chiave di impostazione | Comportamento |89| Modalità | Chiave di impostazione | Comportamento |
90| - | - | - |90| - | - | - |
91| **Manual** | `default` | Claude chiede prima di modificare file o eseguire comandi. Vedi un diff e puoi accettare o rifiutare ogni modifica. |91| **Manual** | `default` | Claude chiede prima di modificare file o eseguire comandi. Vedi un diff e puoi accettare o rifiutare ogni modifica. |
92| **Accept edits** | `acceptEdits` | Claude accetta automaticamente le modifiche ai file e i comandi comuni del filesystem come `mkdir`, `touch` e `mv`, ma chiede comunque prima di eseguire altri comandi di terminale. Usa questa modalità quando ti fidi delle modifiche ai file e vuoi un'iterazione più veloce. |92| **Accept edits** | `acceptEdits` | Claude accetta automaticamente le modifiche ai file e i comandi comuni del filesystem come `mkdir`, `touch` e `mv`, ma chiede comunque prima di eseguire altri comandi del terminale. Usala quando ti fidi delle modifiche ai file e vuoi iterare più velocemente. |
93| **Plan** | `plan` | Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Buono per compiti complessi dove vuoi rivedere l'approccio prima. |93| **Plan** | `plan` | Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Ideale per attività complesse in cui vuoi prima rivedere l'approccio. |
94| **Auto** | `auto` | Claude esegue senza richieste di permesso abituali; prima che azioni come comandi shell e richieste di rete vengano eseguite, un classificatore in background verifica che si allineino con la tua richiesta. Appare quando [la modalità auto è disponibile](#auto-mode-availability); non c'è un interruttore Impostazioni separato per essa. |94| **Auto** | `auto` | Claude lavora senza richieste di permesso abituali; prima che vengano eseguite azioni come comandi shell e richieste di rete, un classificatore in background verifica che siano in linea con la tua richiesta. Compare quando [la modalità auto è disponibile](#auto-mode-availability); non esiste un interruttore separato in Settings. |
95| **Bypass permissions** | `bypassPermissions` | Claude viene eseguito senza richieste di permesso, tranne per le [azioni che nessuna modalità auto-approva](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves), classificatori di sicurezza quando Claude [agisce su siti esterni](#browse-external-sites), o azioni desktop come l'eliminazione di una sessione, ma non la sua [archiviazione](#work-across-sessions). Equivalente a `--dangerously-skip-permissions` nella CLI. Su piani Pro e Max, abilita "Allow bypass permissions mode" in **Impostazioni > Code** o **Impostazioni > Claude Code**. Su piani Team e Enterprise non c'è un interruttore Impostazioni, e la politica organizzativa lo controlla invece. Usala solo in container sandbox o VM. |95| **Bypass permissions** | `bypassPermissions` | Claude lavora senza richieste di permesso, tranne per le [azioni che nessuna modalità approva automaticamente](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves), i classificatori di sicurezza quando Claude [agisce su siti esterni](#browse-external-sites), o azioni del desktop come eliminare una sessione, ma non [archiviarla](#work-across-sessions). Equivale a `--dangerously-skip-permissions` nella CLI. Nei piani Pro e Max, abilita "Allow bypass permissions mode" in **Settings > Code** o **Settings > Claude Code**. Nei piani Team ed Enterprise non esiste un interruttore in Settings e la controlla invece la policy dell'organizzazione. Usala solo in container o VM isolati. |
96 96
97Le versioni precedenti della scheda Code etichettavano queste modalità Ask permissions, Auto accept edits e Plan mode.97Le versioni precedenti della scheda Code chiamavano queste modalità Ask permissions, Auto accept edits e Plan mode.
98 98
99La modalità di permesso `dontAsk` è disponibile solo nella [CLI](https://code.claude.com/docs/it/permission-modes.md#allow-only-pre-approved-tools-with-dontask-mode).99La modalità di permesso `dontAsk` è disponibile solo nella [CLI](https://code.claude.com/docs/it/permission-modes.md#allow-only-pre-approved-tools-with-dontask-mode).
100 100
101> [!TIP]101> [!TIP]
102>102>
103> Inizia compiti complessi in Plan in modo che Claude mappi un approccio prima di apportare modifiche. Una volta approvato il piano, passa a Accept edits o Manual per eseguirlo. Vedi [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) per ulteriori informazioni su questo workflow.103> Avvia le attività complesse in Plan così Claude definisce un approccio prima di apportare modifiche. Una volta approvato il piano, passa ad Accept edits o Manual per eseguirlo. Consulta [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) per saperne di più su questo workflow.
104 104
105Le sessioni cloud supportano Accept edits, Plan e Auto. Accept edits corrisponde alla modalità `default`: le sessioni cloud pre-approvano le modifiche ai file, quindi il selettore mostra Accept edits invece di Manual. Bypass permissions non è disponibile nelle sessioni cloud, incluse le sessioni in un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments).105Le sessioni cloud supportano Accept edits, Plan e Auto. Accept edits corrisponde alla modalità `default`: le sessioni cloud pre-approvano le modifiche ai file, quindi il selettore mostra Accept edits invece di Manual. Bypass permissions non è disponibile nelle sessioni cloud, incluse le sessioni in un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments).
106 106
107Gli amministratori aziendali possono limitare quali modalità di permesso sono disponibili. Vedi [configurazione aziendale](#enterprise-configuration) per i dettagli.107Gli amministratori Enterprise possono limitare le modalità di permesso disponibili. Consulta [configurazione enterprise](#enterprise-configuration) per i dettagli.
108 108
109#### Disponibilità della modalità auto109#### Disponibilità della modalità auto
110 110
111La modalità auto è disponibile a tutti gli utenti sull'API Anthropic e richiede Claude Opus 4.6 o successivo, Sonnet 4.6 o successivo, Haiku 5.5 o un [modello Fable](https://code.claude.com/docs/it/model-config.md#work-with-fable). Gli amministratori dell'organizzazione possono disattivare la modalità auto con la chiave `disableAutoMode` nelle [impostazioni gestite](#managed-settings).111La modalità auto è disponibile per tutti gli utenti sull'API Anthropic e richiede Claude Opus 4.6 o successivo, Sonnet 4.6 o successivo, Haiku 5.5 o un [modello Fable](https://code.claude.com/docs/it/model-config.md#work-with-fable). Gli amministratori dell'organizzazione possono disattivare la modalità auto con la chiave `disableAutoMode` nelle [impostazioni gestite](#managed-settings).
112 112
113Nelle distribuzioni Enterprise che instradano Desktop verso Agent Platform di Google Cloud, la modalità auto è anche disponibile per impostazione predefinita; vedi [Modalità auto su Bedrock, Agent Platform o Foundry](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry) per i modelli supportati.113Nelle distribuzioni Enterprise che instradano Desktop verso Agent Platform di Google Cloud, la modalità auto è disponibile anche per impostazione predefinita; consulta [Modalità auto su Bedrock, Agent Platform o Foundry](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry) per i modelli supportati.
114 114
115### Anteprima della tua app115### Visualizzare l'anteprima della tua app
116 116
117Claude può avviare un server di sviluppo e aprirlo nel riquadro Browser per verificare le sue modifiche. Questo funziona per app web frontend così come per server backend: Claude può testare endpoint API, visualizzare log del server e iterare su problemi che trova. Nella maggior parte dei casi, Claude avvia il server automaticamente dopo aver modificato i file del progetto. Puoi anche chiedere a Claude di visualizzare un'anteprima in qualsiasi momento. Per impostazione predefinita, Claude [verifica automaticamente](#auto-verify-changes) le modifiche dopo ogni modifica.117Claude può avviare un server di sviluppo e aprirlo nel riquadro Browser per verificare le sue modifiche. Funziona sia per le app web frontend sia per i server backend: Claude può testare endpoint API, visualizzare i log del server e iterare sui problemi che trova. Nella maggior parte dei casi, Claude avvia il server automaticamente dopo aver modificato i file del progetto. Puoi anche chiedere a Claude di mostrare l'anteprima in qualsiasi momento. Per impostazione predefinita, Claude [verifica automaticamente](#auto-verify-changes) le modifiche dopo ogni modifica.
118 118
119In una sessione locale, fai clic su un percorso HTML, PDF o video nella chat per aprirlo nel riquadro Browser.119In una sessione locale, fai clic su un percorso HTML, PDF o video nella chat per aprirlo nel riquadro Browser.
120 120
121> [!NOTE]121> [!NOTE]
122>122>
123> In una [sessione SSH](#ssh-sessions), Claude non può aprire la tua app nel riquadro Browser, perché lì non ha a disposizione gli strumenti del riquadro. Per vedere l'app tu stesso, [inoltra la sua porta al tuo computer](#reach-a-port-on-the-remote-machine).123> In una [sessione SSH](#ssh-sessions), Claude non può aprire la tua app nel riquadro Browser, perché lì non dispone degli strumenti del riquadro. Per vedere tu stesso l'app, [inoltra la sua porta al tuo computer](#reach-a-port-on-the-remote-machine).
124 124
125Se il riquadro Browser non è aperto dopo che Claude avvia un server in una sessione locale, fai clic su **Open** nella scheda del server nella chat.125Se il riquadro Browser non è aperto dopo che Claude ha avviato un server in una sessione locale, fai clic su **Open** nella scheda del server nella chat.
126 126
127Dal riquadro Browser, puoi:127Dal riquadro Browser puoi:
128 128
129* Interagire con la tua app in esecuzione direttamente nel riquadro Browser129* Interagire con la tua app in esecuzione direttamente nel riquadro Browser
130* Guardare Claude verificare automaticamente le sue stesse modifiche: scatta screenshot, ispeziona il DOM, fa clic su elementi, compila moduli e corregge i problemi che trova130* Osservare Claude verificare automaticamente le proprie modifiche: acquisisce screenshot, ispeziona il DOM, fa clic sugli elementi, compila moduli e corregge i problemi che trova
131* Avviare o arrestare server, o arrestarli tutti contemporaneamente, 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 mantiene i cookie dopo che esci dall'app con **Keep cookies** nel menu **⋮** del riquadro Browser, in modo da non dover effettuare di nuovo l'accesso 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
134Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app utilizza un comando dev personalizzato, modifica `.claude/launch.json` per adattarlo alla tua configurazione. Vedi [Configura server di anteprima](#configure-preview-servers) per il riferimento completo.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.
135 135
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 **Impostazioni > Code** o **Impostazioni > Claude Code**.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**.
137 137
138### Sfoglia siti esterni138### Navigare su siti esterni
139 139
140Il riquadro Browser è un browser a schede, quindi puoi aprire documentazione, tracker di problemi o qualsiasi altro sito accanto alla tua app in esecuzione. Per aprire il Browser, premi **Cmd+Maiusc+B** su macOS o **Ctrl+Maiusc+B** su Windows, oppure fai clic su **Browser** nella barra del titolo della sessione. Puoi accedere ai siti nel riquadro, inclusi flussi di accesso popup come Google OAuth.140Il riquadro Browser è un browser a schede, quindi puoi aprire documentazione, issue tracker o qualsiasi altro sito accanto alla tua app in esecuzione. Per aprire il Browser, premi **Cmd+Shift+B** su macOS o **Ctrl+Shift+B** su Windows, oppure fai clic su **Browser** nella barra del titolo della sessione. Puoi accedere ai siti nel riquadro, inclusi i flussi di accesso in popup come Google OAuth.
141 141
142La prima volta che fai clic su un collegamento esterno nella chat, una finestra di dialogo chiede se i collegamenti devono aprirsi nel riquadro Browser o nel tuo browser predefinito. Per cambiare la tua scelta in seguito, usa **Open links in built-in browser** nel menu **⋮** del riquadro Browser. **Cmd**-clic su macOS o **Ctrl**-clic su Windows apre un collegamento direttamente nel tuo browser predefinito.142La prima volta che fai clic su un link esterno nella chat, una finestra di dialogo chiede se i link devono aprirsi nel riquadro Browser o nel tuo browser predefinito. Per cambiare la scelta in seguito, usa **Open links in built-in browser** nel menu **⋮** del riquadro Browser. **Cmd**-clic su macOS o **Ctrl**-clic su Windows apre direttamente un link nel tuo browser predefinito.
143 143
144Claude può leggere e interagire con pagine esterne usando gli stessi strumenti che usa per [verificare la tua app](#preview-your-app), con due controlli di sicurezza aggiuntivi:144Claude può leggere e interagire con le pagine esterne usando gli stessi strumenti che usa per [verificare la tua app](#preview-your-app), con due controlli di sicurezza aggiuntivi:
145 145
146* I classificatori di sicurezza esaminano le azioni di scrittura di Claude su pagine esterne, come fare clic e digitare, in ogni modalità di permesso. Questi sono gli stessi classificatori che usa la [modalità auto](#choose-a-permission-mode), e quando segnalano un'azione, ricevi una richiesta di permesso indipendentemente dalla modalità.146* I classificatori di sicurezza esaminano le azioni di scrittura di Claude sulle pagine esterne, come fare clic e digitare, in ogni modalità di permesso. Sono gli stessi classificatori usati dalla [modalità auto](#choose-a-permission-mode) e, quando segnalano un'azione, ricevi una richiesta di permesso indipendentemente dalla modalità.
147* Nelle modalità di permesso diverse da Auto e Bypass permissions, un controllo dell'allowlist dei domini si applica anche prima che Claude navighi verso un nuovo sito.147* Nelle modalità di permesso diverse da Auto e Bypass permissions, si applica anche un controllo dell'allowlist dei domini prima che Claude navighi verso un nuovo sito.
148 148
149#### Approva le azioni di Claude su un sito149#### Approvare le azioni di Claude su un sito
150 150
151La prima volta che Claude agisce su un sito esterno, appare una scheda di permesso e Claude attende la tua scelta: **Allow once**, **Always allow** o **Deny**. **Allow once** approva l'azione senza salvare nulla. **Always allow** salva l'approvazione per quel sito sul tuo dispositivo, e puoi revocarla in Impostazioni. Ogni sito ha bisogno della sua propria approvazione, inclusi i sottodomini. I tuoi server di sviluppo locali e i file del progetto non hanno bisogno di approvazione, quindi [auto-verify](#auto-verify-changes) continua a funzionare senza richieste di permesso.151La prima volta che Claude agisce su un sito esterno, compare una scheda di permesso e Claude attende la tua scelta: **Allow once**, **Always allow** o **Deny**. **Allow once** approva l'azione senza salvare nulla. **Always allow** salva l'approvazione per quel sito sul tuo dispositivo e puoi revocarla in Settings. Ogni sito richiede la propria approvazione, inclusi i sottodomini. I tuoi server di sviluppo locali e i file del progetto non richiedono approvazione, quindi la [verifica automatica](#auto-verify-changes) continua a funzionare senza richieste.
152 152
153Anche su un sito approvato, Claude non acquisterà articoli, creerà account o aggirerà CAPTCHA senza il tuo input. La navigazione nel riquadro Browser utilizza lo stesso modello di sicurezza dell'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md). Vedi [Utilizzo di Claude in Chrome in sicurezza](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) per come Claude gestisce siti sensibili e azioni rischiose.153Anche su un sito approvato, Claude non acquista articoli, non crea account né aggira CAPTCHA senza il tuo intervento. La navigazione nel riquadro Browser usa lo stesso modello di sicurezza dell'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md). Consulta [Using Claude in Chrome safely](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) per sapere come Claude gestisce i siti sensibili e le azioni rischiose.
154 154
155#### Scegli tra il Browser e l'estensione Chrome155#### Scegliere tra il Browser e l'estensione Chrome
156 156
157Il riquadro Browser utilizza un profilo browser pulito, separato dal tuo browser personale, senza nessuno dei tuoi accessi salvati o cronologia. Usalo per costruire e testare la tua app e per siti che non hanno bisogno della tua identità. Quando vuoi che Claude agisca come te nelle tue sessioni di accesso, usa invece l'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md), che condivide lo stato di accesso del tuo browser.157Il riquadro Browser usa un profilo browser pulito, separato dal tuo browser personale, senza nessuno dei tuoi accessi salvati né della tua cronologia. Usalo per creare e testare la tua app e per i siti che non richiedono la tua identità. Quando vuoi che Claude agisca a tuo nome nelle sessioni in cui hai effettuato l'accesso, usa invece l'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md), che condivide lo stato di accesso del tuo browser.
158 158
159#### Limita la navigazione esterna per la tua organizzazione159#### Limitare la navigazione esterna per la tua organizzazione
160 160
161Il Browser segue gli stessi [controlli di allowlist e blocklist dei siti](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls) dell'estensione Claude in Chrome. Se la tua organizzazione ha già configurato quelle liste per l'estensione, il Browser le rispetta automaticamente. Gli amministratori possono anche disattivare gli strumenti di Claude su pagine esterne con l'impostazione gestita [`browserExternalPageTools`](#managed-settings). Con gli strumenti disabilitati, gli utenti possono ancora navigare verso siti esterni; gli strumenti di Claude non possono leggerli o agire su di essi.161Il Browser segue gli stessi [controlli di allowlist e blocklist dei siti](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls) dell'estensione Claude in Chrome. Se la tua organizzazione ha già configurato questi elenchi per l'estensione, il Browser li rispetta automaticamente. Gli amministratori possono anche disattivare gli strumenti di Claude sulle pagine esterne con l'[impostazione gestita `browserExternalPageTools`](#managed-settings). Con gli strumenti disattivati, gli utenti possono comunque visitare siti esterni; gli strumenti di Claude non possono leggerli né agire su di essi.
162 162
163Per disattivare completamente la navigazione esterna, imposta l'impostazione gestita [`disableBrowserExternalNavigation`](#managed-settings) su `true`. Questo blocca tutta la navigazione esterna nel Browser, inclusi i siti nell'allowlist della tua organizzazione; i server dev localhost e le anteprime di file continuano a funzionare. Usa `browserExternalPageTools` per consentire agli utenti di continuare a sfogliare siti esterni senza gli strumenti di Claude, e `disableBrowserExternalNavigation` per bloccare i siti esterni sia per gli utenti che per Claude.163Per disattivare completamente la navigazione esterna, imposta l'[impostazione gestita `disableBrowserExternalNavigation`](#managed-settings) su `true`. Questo blocca tutta la navigazione esterna nel Browser, inclusi i siti nell'allowlist della tua organizzazione; i server di sviluppo su localhost e le anteprime dei file continuano a funzionare. Usa `browserExternalPageTools` per consentire agli utenti di continuare a navigare su siti esterni senza gli strumenti di Claude, e `disableBrowserExternalNavigation` per bloccare i siti esterni sia per gli utenti sia per Claude.
164 164
165### Rivedi le modifiche con la visualizzazione diff165### Rivedere le modifiche con la vista diff
166 166
167Dopo che Claude apporta modifiche al tuo codice, la visualizzazione diff ti consente di rivedere le modifiche file per file prima di creare una pull request. Per aprire la visualizzazione diff, fai clic sui conteggi delle righe, come `+12 -1`, nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details). Puoi anche fare clic su **Changes** nella barra del titolo della sessione. Il diff di una sessione cloud rispetto al branch di base può [escludere le modifiche non ancora sottoposte a push](https://code.claude.com/docs/it/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).167Dopo che Claude ha apportato modifiche al tuo codice, la vista diff ti permette di rivedere le modifiche file per file prima di creare una pull request. Per aprire la vista diff, fai clic sui conteggi delle righe, come `+12 -1`, nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details). Puoi anche fare clic su **Changes** nella barra del titolo della sessione. Il diff di una sessione cloud rispetto al branch di base può [omettere le modifiche non ancora inviate](https://code.claude.com/docs/it/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).
168 168
169Per commentare righe specifiche, passa il mouse su una riga e fai clic sul **+** che appare accanto al suo numero di riga per aprire una casella di commento. Digita il tuo feedback e premi **Invio** per aggiungere il commento. Dopo aver aggiunto commenti a più righe, invia tutti i commenti contemporaneamente:169Per commentare righe specifiche, passa il mouse su una riga e fai clic sul **+** che compare accanto al numero di riga per aprire una casella di commento. Scrivi il tuo feedback e premi **Enter** per aggiungere il commento. Dopo aver aggiunto commenti a più righe, invia tutti i commenti insieme:
170 170
171* **macOS**: premi **Cmd+Invio**171* **macOS**: premi **Cmd+Enter**
172* **Windows**: premi **Ctrl+Invio**172* **Windows**: premi **Ctrl+Enter**
173 173
174Claude legge i tuoi commenti e apporta le modifiche richieste, che appaiono come un nuovo diff che puoi rivedere.174Claude legge i tuoi commenti e apporta le modifiche richieste, che compaiono come un nuovo diff che puoi rivedere.
175 175
176### Rivedi il tuo codice176### Fare la revisione del tuo codice
177 177
178Per far rivedere a Claude le tue modifiche prima di eseguire il commit, inserisci `/code-review` nella [casella del prompt](#use-the-prompt-box). I risultati arrivano nella conversazione quando la revisione è completata.178Per far rivedere a Claude le tue modifiche prima di fare il commit, inserisci `/code-review` nella [casella del prompt](#use-the-prompt-box). I risultati arrivano nella conversazione al termine della revisione.
179 179
180Nelle sessioni locali, [SSH](#ssh-sessions) e [WSL](https://code.claude.com/docs/it/desktop-wsl.md), i risultati appaiono come una scheda **Code review**, raggruppati per file. Usa la scheda per agire su di essi:180Nelle sessioni locali, [SSH](#ssh-sessions) e [WSL](https://code.claude.com/docs/it/desktop-wsl.md), i risultati compaiono come una scheda **Code review**, raggruppati per file. Usa la scheda per intervenire:
181 181
182* Fai clic su **Walk through in diff** per aprire la visualizzazione diff ed esaminare i risultati uno alla volta. Un risultato nel diff corrente appare alla sua riga, dove puoi fare clic su **Fix this one** o ignorarlo.182* Fai clic su **Walk through in diff** per aprire la vista diff e scorrere i risultati uno alla volta. Un risultato presente nel diff corrente compare alla sua riga, dove puoi fare clic su **Fix this one** o ignorarlo.
183* Fai clic su **Apply fixes** per chiedere a Claude di correggere i risultati ancora aperti.183* Fai clic su **Apply fixes** per chiedere a Claude di correggere i risultati ancora aperti.
184 184
185In qualsiasi sessione, puoi anche chiedere a Claude nella casella del prompt di correggere ciò che la revisione ha trovato. Per sapere cosa cerca `/code-review` e quali argomenti accetta, vedi [Rivedi localmente con `/code-review`](https://code.claude.com/docs/it/code-review-local).185In qualsiasi sessione, puoi anche chiedere a Claude nella casella del prompt di correggere quanto trovato dalla revisione. Per sapere cosa cerca `/code-review` e quali argomenti accetta, consulta [Revisione locale con `/code-review`](https://code.claude.com/docs/it/code-review-local).
186 186
187### Monitora lo stato della pull request187### Monitorare lo stato della pull request
188 188
189Per far correggere a Claude i controlli non riusciti, o per far eseguire a GitHub il merge della pull request, attiva **Auto-fix** o **Merge when ready**. Dopo aver aperto una pull request, questa appare nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details) con lo stato dei suoi controlli CI. Apri il menu **⋮** accanto al suo titolo:189Per far correggere a Claude i controlli non superati, o per far eseguire a GitHub il merge della pull request, attiva **Auto-fix** o **Merge when ready**. Dopo che apri una pull request, questa compare nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details) con lo stato dei suoi controlli CI. Apri il menu **⋮** accanto al suo titolo:
190 190
191* **Auto-fix**: in una sessione locale, Claude gestisce anche i nuovi commenti di revisione lasciati da qualcuno diverso da te. L'autore del commento deve essere il proprietario del repository, un membro dell'organizzazione, un collaboratore o una GitHub App.191* **Auto-fix**: in una sessione locale, Claude gestisce anche i nuovi commenti di revisione lasciati da persone diverse da te. L'autore del commento deve essere il proprietario del repository, un membro dell'organizzazione, un collaboratore o una GitHub App.
192* **Merge when ready**: attiva l'auto-merge di GitHub per la PR. In una sessione locale, Desktop richiede uno squash merge a meno che il branch di base non utilizzi una merge queue.192* **Merge when ready**: attiva l'auto-merge di GitHub per la PR. In una sessione locale, Desktop richiede uno squash merge a meno che il branch di base non usi una merge queue.
193 * **Nelle sessioni SSH e WSL**: **Merge when ready** è disabilitato, quindi attiva l'auto-merge per la pull request su GitHub193 * **Nelle sessioni SSH e WSL**: **Merge when ready** è disabilitato, quindi attiva l'auto-merge per la pull request su GitHub
194 * **Se il repository non consente l'auto-merge**: **Merge when ready** non si attiva, quindi abilita prima l'auto-merge nelle [impostazioni del tuo repository GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)194 * **Se il repository non consente l'auto-merge**: **Merge when ready** non si attiva, quindi abilita prima l'auto-merge nelle [impostazioni del repository GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)
195* **[Layout precedente](#check-which-layout-you-have)**: una volta che la sessione ha una pull request, fai clic su **CI** nella sua barra di stato.195* **[Layout precedente](#check-which-layout-you-have)**: una volta che la sessione ha una pull request, fai clic su **CI** nella sua barra di stato.
196 196
197Per archiviare la sessione automaticamente una volta che la PR viene sottoposta a merge o chiusa, attiva [auto-archive](#archive-a-session) in **Impostazioni > Code** o **Impostazioni > Claude Code**.197Per archiviare automaticamente la sessione quando la PR viene unita con merge o chiusa, attiva l'[archiviazione automatica](#archive-a-session) in **Settings > Code** o **Settings > Claude Code**.
198 198
199> [!NOTE]199> [!NOTE]
200>200>
201> Il monitoraggio delle PR richiede che [GitHub CLI (`gh`)](https://cli.github.com/) sia installato e autenticato sulla tua macchina. Se `gh` non è installato, Desktop ti chiede di installarlo la prima volta che tenti di creare una PR.201> Il monitoraggio delle PR richiede che la [GitHub CLI (`gh`)](https://cli.github.com/) sia installata e autenticata sulla tua macchina. Se `gh` non è installata, Desktop ti chiede di installarla la prima volta che provi a creare una PR.
202>202>
203> In una [sessione SSH](#ssh-sessions), configura `git` e `gh` sulla macchina remota prima di fare clic su **Create PR**, perché Claude esegue lì il push del branch ed esegue `gh pr create`. Installa tu stesso `gh` lì, perché Desktop non te lo chiede in una sessione SSH. Poi verifica lì che `git push` funzioni e che `gh auth status` indichi che hai effettuato l'accesso.203> In una [sessione SSH](#ssh-sessions), configura `git` e `gh` sulla macchina remota prima di fare clic su **Create PR**, perché è lì che Claude esegue il push del branch ed esegue `gh pr create`. Installa tu stesso `gh` lì, perché Desktop non te lo chiede in una sessione SSH. Quindi verifica lì che `git push` funzioni e che `gh auth status` segnali che hai effettuato l'accesso.
204 204
205## Organizza il workspace205## Organizza il workspace
206 206
805 805
806## Configurazione dell'ambiente806## Configurazione dell'ambiente
807 807
808L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove Claude viene eseguito e come ti connetti:808L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove viene eseguito Claude e come ti connetti:
809 809
810* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file810* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file
811* **Cloud**: viene eseguito sull'infrastruttura gestita da Anthropic per impostazione predefinita. Le sessioni continuano anche se chiudi l'app.811* **Cloud**: viene eseguito per impostazione predefinita su un'infrastruttura gestita da Anthropic. Le sessioni continuano anche se chiudi l'app.
812* **SSH**: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi stessi 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.812* **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.
813* **WSL** (Windows): viene eseguito all'interno di una [distribuzione WSL 2](https://code.claude.com/docs/it/desktop-wsl.md) sulla tua macchina, utilizzando la sua toolchain Linux e i percorsi nativi813* **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
814 814
815### Creare un ambiente salvato815### Creare un ambiente salvato
816 816
817Un 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, controlla quale layout hai e come ottenere quello attuale.817Un 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.
818 818
819**1. Apri la finestra di dialogo New environment**819**1. Apri la finestra di dialogo New environment**
820 820
821Apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.821Apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.
822 822
823**2. Scegli dove viene eseguito Claude**823**2. Scegli dove viene eseguito Claude**
824 824
830 830
831#### Ambienti che Desktop crea per te831#### Ambienti che Desktop crea per te
832 832
833Se il selettore di 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).833Se 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).
834 834
835#### Usare, modificare o rimuovere un ambiente salvato835#### Usare, modificare o rimuovere un ambiente salvato
836 836
837Trova la voce dell'ambiente nel [selettore di ambiente](#start-a-session):837Trova la voce dell'ambiente nel [selettore dell'ambiente](#start-a-session):
838 838
839* **Avviare una sessione**: seleziona la voce.839* **Avviare una sessione**: seleziona la voce.
840* **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**.840* **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**.
844 844
845Per 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.845Per 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.
846 846
847Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni proprie:847Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni specifiche:
848 848
849| Variabile | Cosa fare invece |849| Variabile | Cosa fare invece |
850| :- | :- |850| :- | :- |
855 855
856Su 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).856Su 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).
857 857
858#### Impostare le variabili d'ambiente per le sessioni locali858#### Impostare variabili d'ambiente per le sessioni locali
859 859
860Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da esso. Desktop [imposta alcune variabili da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`, e le tue sessioni ricevono il suo valore per quelle al posto del tuo.860Aggiungi 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.
861 861
862> [!NOTE]862> [!NOTE]
863>863>
864> Se il tuo selettore di ambiente si trova sopra 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).864> 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).
865 865
866**1. Apri il modulo di un ambiente locale**866**1. Apri il modulo di un ambiente locale**
867 867
868* **Per creare un ambiente locale salvato**: seleziona [**New environment**](#create-a-saved-environment) in fondo al menu del selettore dell'ambiente, quindi la scheda **Local**868* **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**
869* **Per modificarne uno che hai già**: nel selettore dell'ambiente, passa il puntatore 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)869* **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)
870 870
871**2. Inserisci le variabili**871**2. Inserisci le variabili**
872 872
873Seleziona **Environment variables**, inserisci un `KEY=value` per riga e seleziona **Done**.873Seleziona **Environment variables**, inserisci una riga `KEY=value` per ciascuna variabile e seleziona **Done**.
874 874
875**3. Salva l'ambiente**875**3. Salva l'ambiente**
876 876
880 880
881Per impostare una variabile per ogni sessione locale, aggiungila alla [chiave `env`](https://code.claude.com/docs/it/env-vars#set-variables-in-settings-files) nel tuo file `~/.claude/settings.json`. Claude Code [ignora il valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) se quella variabile è già presente nell'ambiente con cui Desktop avvia la sessione. Consulta [variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md) per l'elenco completo delle variabili supportate.881Per impostare una variabile per ogni sessione locale, aggiungila alla [chiave `env`](https://code.claude.com/docs/it/env-vars#set-variables-in-settings-files) nel tuo file `~/.claude/settings.json`. Claude Code [ignora il valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) se quella variabile è già presente nell'ambiente con cui Desktop avvia la sessione. Consulta [variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md) per l'elenco completo delle variabili supportate.
882 882
883#### Impostare le variabili d'ambiente per i dev server883#### Impostare variabili d'ambiente per i dev server
884 884
885Per fornire un segreto a un dev server senza eseguirne il commit in [`launch.json`](#configure-preview-servers), impostalo in uno di questi punti, poi riavvia Desktop:885Per 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:
886 886
887* **macOS e Linux**: esportalo nel profilo della tua shell887* **macOS e Linux**: esportalo nel profilo della tua shell
888* **Windows**: aggiungilo alle tue variabili d'ambiente utente o di sistema888* **Windows**: aggiungilo alle variabili d'ambiente utente o di sistema
889* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se riesci ad aprirlo889* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se puoi aprirlo
890 890
891I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.891I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.
892 892
897* **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.897* **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.
898* **Selettore sopra la casella del prompt**: passa il mouse su **Local** e fai clic sull'icona a forma di ingranaggio898* **Selettore sopra la casella del prompt**: passa il mouse su **Local** e fai clic sull'icona a forma di ingranaggio
899 899
900Inserisci un `KEY=value` per riga e seleziona **Save changes**. Le variabili che salvi qui vengono memorizzate 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.900Inserisci 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.
901 901
902#### Variabile esportata mancante o errata nei comandi eseguiti da Claude902#### Variabile esportata mancante o errata nei comandi eseguiti da Claude
903 903
904Se un comando che Claude esegue su macOS o Linux non riceve una variabile che hai impostato con `export` in `~/.zshrc` o `~/.bashrc`, oppure riceve il valore sbagliato, prova questi passaggi nell'ordine:904Se 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:
905 905
906**1. Avvia una nuova sessione**906**1. Avvia una nuova sessione**
907 907
913 913
914**3. Controlla le variabili salvate**914**3. Controlla le variabili salvate**
915 915
916Se un comando riceve il valore errato, controlla 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.916Se 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.
917 917
918**4. Usa un ambiente salvato**918**4. Usa un ambiente salvato**
919 919
923 923
924#### Variabili d'ambiente che Desktop imposta da sé924#### Variabili d'ambiente che Desktop imposta da sé
925 925
926Se hai impostato `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` e non è cambiato nulla nelle tue sessioni locali, è perché Desktop imposta da sé queste [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.926Se 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.
927 927
928* `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 tuo terminale.928* `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.
929* `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.929* `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.
930 930
931#### Disattivare il ragionamento esteso931#### Disattivare il ragionamento esteso
932 932
933Il [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 quindi sull'API di Anthropic, tranne su Opus 5.5, Sonnet 5.5, Haiku 5.5 e sui modelli Fable, che usano sempre il ragionamento esteso.933Il [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.
934 934
935Su Opus 5, seleziona anche un 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 a un livello più alto, avviane una nuova a `high` o inferiore.935Su 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.
936 936
937#### Budget di ragionamento fissi937#### Budget di ragionamento fissi
938 938
939Sui 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é è invece il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` a `1` per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e versioni successive, Haiku 5.5, e Opus 4.7 e versioni successive utilizzano sempre il ragionamento adattivo e non hanno una modalità di budget fisso.939Sui 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.
940 940
941### Sessioni locali su dispositivi gestiti941### Sessioni locali su dispositivi gestiti
942 942
943Se la voce del tuo computer è disattivata nel selettore di 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), viene disattivata allo stesso modo.943Se 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.
944 944
945Le 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.945Le 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.
946 946
947### Cloud sessions947### Sessioni cloud
948 948
949Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo conta verso i limiti del tuo [piano di abbonamento](https://code.claude.com/docs/it/costs.md) senza costi di calcolo separati.949Le 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.
950 950
951Per 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):951Per 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):
952 952
953* **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)953* **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)
954* **Edit or archive one of your own environments**: passa il mouse su di esso e fai clic sull'icona dell'ingranaggio954* **Modificare o archiviare uno dei tuoi ambienti**: passa il mouse su di esso e fai clic sull'icona a forma di ingranaggio
955 955
956Vedi [Configure cloud environments](https://code.claude.com/docs/it/cloud-environments.md) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili di ambiente.956Consulta [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.
957 957
958### Sessioni SSH958### Sessioni SSH
959 959
960Le sessioni SSH ti consentono di eseguire Claude Code su una macchina remota mentre usi l'app desktop come tua interfaccia. Questo è utile per lavorare con codebase che vivono su VM cloud, dev container o server con hardware o dipendenze specifiche.960Le 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.
961 961
962> [!NOTE]962> [!NOTE]
963>963>
964> 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 a parte. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).964> 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).
965 965
966Aggiungi 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 ha un selettore di ambiente sotto la casella del prompt, hai il layout precedente. Consulta [Verificare quale layout hai](#check-which-layout-you-have).966Aggiungi 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).
967 967
968**1. Apri la finestra di dialogo New environment**968**1. Apri la finestra di dialogo New environment**
969 969
970Prima di avviare una sessione, apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.970Prima di avviare una sessione, apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.
971 971
972**2. Aggiungi la connessione**972**2. Aggiungi la connessione**
973 973
975 975
976* **Name**: un'etichetta descrittiva per questa connessione.976* **Name**: un'etichetta descrittiva per questa connessione.
977* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.977* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.
978* **SSH port**: se lasciato vuoto usa 22 come valore predefinito, oppure usa la porta della tua configurazione SSH.978* **SSH port**: se lasciato vuoto, il valore predefinito è 22, oppure viene usata la porta della tua configurazione SSH.
979* **SSH key (optional)**: percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Lascia vuoto per usare la tua configurazione SSH o il tuo agente SSH.979* **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.
980* **Worktree folder**: una cartella sulla macchina remota, come `~/worktrees`, in cui le nuove sessioni creano i loro worktree. Lascia vuoto per usare il [valore predefinito della macchina remota](#choose-where-ssh-session-worktrees-go).980* **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).
981 981
982Poi seleziona **Add SSH connection**.982Poi seleziona **Add SSH connection**.
983 983
984**3. Avvia una sessione sulla connessione**984**3. Avvia una sessione sulla connessione**
985 985
986Seleziona una cartella sulla macchina remota e fai clic su **Create environment**. Mantieni 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 **Invio**.986Seleziona 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**.
987 987
988La macchina remota può eseguire Linux, macOS o [Windows](#windows-remote-machines). Desktop installa Claude Code sulla macchina remota automaticamente la prima volta che ti connetti. Una volta connesso, le sessioni SSH supportano modalità di permesso, connettori, plugin e server MCP.988La 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.
989 989
990#### Requisiti della macchina remota per le sessioni SSH990#### Requisiti della macchina remota per le sessioni SSH
991 991
992Una 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:992Una 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:
993 993
994* **Sistema**: un processore x86\_64 o arm64. La macchina deve anche 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 dei due ha la macchina, esegui `ldd --version` su di essa. 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).994* **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).
995* **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>`.995* **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>`.
996* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, esegui una di queste operazioni:996* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, esegui una di queste operazioni:
997 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o versioni successive997 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o successiva
998 * **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 riesce a connettersi a quel server998 * **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
999 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 10999 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 10
1000* **Accessi con `MaxSessions 1`**: usa un metodo di 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 servono per i comandi eseguiti da Claude.1000* **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.
1001* **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.1001* **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.
1002* **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).1002* **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).
1003* **Shell**: la shell impostata per il tuo account sulla macchina remota deve eseguire i comandi inviati tramite SSH, come fanno Bash, Zsh e `sh`1003* **Shell**: la shell impostata per il tuo account sulla macchina remota deve eseguire i comandi inviati tramite SSH, come fanno Bash, Zsh e `sh`
1004* **Rete**: Claude Code viene eseguito sulla macchina remota ed effettua le sue richieste di rete da lì, quindi la macchina necessita dell'[accesso alla rete richiesto da Claude Code](https://code.claude.com/docs/it/network-config.md#network-access-requirements). Se la macchina non riesce a scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica sulla macchina. Le altre richieste di Claude Code partono comunque dalla macchina remota. Su una macchina remota Linux, se quelle richieste richiedono un proxy, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).1004* **Rete**: Claude Code viene eseguito sulla macchina remota ed effettua le proprie richieste di rete da lì, quindi la macchina deve disporre dell'[accesso alla 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. Su una macchina remota Linux, se quelle richieste necessitano di un proxy, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).
1005 1005
1006#### Verificare la chiave host di una macchina remota1006#### Verificare la chiave host di una macchina remota
1007 1007
1011 1011
1012* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`1012* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`
1013* **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 raggiungere1013* **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
1014* **`ssh` chiede o avvisa in un terminale**: la macchina indicata nel suo messaggio, che potrebbe non essere quella che hai digitato1014* **`ssh` chiede o avvisa in un terminale**: la macchina indicata dal suo messaggio, che potrebbe non essere quella che hai digitato
1015 1015
1016Ottieni l'impronta digitale della macchina dalla macchina stessa, non tramite la connessione che stai verificando:1016Ottieni l'impronta digitale propria di quella macchina dalla macchina stessa, non tramite la connessione che stai verificando:
1017 1017
1018* **La macchina è gestita da qualcun altro**: chiedi loro l'impronta digitale della chiave host1018* **La macchina è gestita da qualcun altro**: chiedi a quella persona l'impronta digitale della chiave host
1019* **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`.1019* **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`.
1020 1020
1021Quindi confronta l'impronta digitale della macchina con quella che ti è stata mostrata:1021Poi confronta l'impronta digitale della macchina con quella che ti è stata mostrata:
1022 1022
1023* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.1023* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.
1024* **Sono diverse, o non puoi verificare**: non connetterti. Seleziona **Cancel** in Desktop, oppure rispondi `no` nel terminale. Se la macchina è gestita da qualcun altro, comunica loro quale impronta digitale ti è stata mostrata.1024* **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.
1025 1025
1026Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo uno dei due risultati.1026Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo l'uno o l'altro risultato.
1027 1027
1028#### Impostare un proxy o un certificato CA per le sessioni SSH1028#### Impostare un proxy o un certificato CA per le sessioni SSH
1029 1029
1030Se una macchina remota Linux raggiunge internet tramite un proxy o ha bisogno di un certificato CA, aggiungi le [variabili per proxy e 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.1030Se 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.
1031 1031
1032In 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** o **Authentication failed**, e accedere di nuovo non aiuta.1032In 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** o **Authentication failed**, e accedere di nuovo non serve.
1033 1033
1034**1. Aggiungi le variabili**1034**1. Aggiungi le variabili**
1035 1035
1036Per 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 proveniente da `SSL_CERT_FILE` in `~/.claude/settings.json`. Questo esempio imposta un proxy e un file CA:1036Per 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:
1037 1037
1038```json ~/.claude/settings.json theme={null}1038```json ~/.claude/settings.json theme={null}
1039{1039{
1044}1044}
1045```1045```
1046 1046
1047**2. Invia di nuovo il tuo messaggio**1047**2. Invia di nuovo il messaggio**
1048 1048
1049Invia di nuovo il tuo messaggio, perché una variabile che aggiungi o modifichi in quel file ha effetto entro pochi secondi. Se non riesce ancora, avvia una nuova sessione.1049Invia 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.
1050 1050
1051##### Trovare una variabile di proxy o CA impostata altrove sulla macchina remota1051##### Trovare una variabile del proxy o della CA impostata altrove sulla macchina remota
1052 1052
1053Verifica se la macchina remota Linux imposta la variabile di proxy o 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):1053Verifica 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):
1054 1054
1055**1. Elenca le variabili impostate dalla macchina remota**1055**1. Elenca le variabili impostate dalla macchina remota**
1056 1056
1058 1058
1059**2. Modifica la variabile dove è impostata**1059**2. Modifica la variabile dove è impostata**
1060 1060
1061Se l'elenco contiene la variabile, modificala nel file che la imposta, come `~/.zshenv`, `/etc/environment` o `~/.bashrc` sulla macchina remota.1061Se l'elenco contiene la variabile, modificala nel file che la imposta, ad esempio `~/.zshenv`, `/etc/environment` o `~/.bashrc` sulla macchina remota.
1062 1062
1063**3. Fornisci il nuovo valore alle sessioni**1063**3. Fornisci il nuovo valore alle sessioni**
1064 1064
1065Riavvia 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 nessuna attività è in esecuzione, perché in entrambi i casi il lavoro di Claude viene interrotto.1065Riavvia 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.
1066 1066
1067#### Usare la tua configurazione SSH1067#### Usare la tua configurazione SSH
1068 1068
1069Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:1069Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:
1070 1070
1071* **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.1071* **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.
1072* **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:1072* **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:
1073 1073
1074 * Claude Desktop v2.2553.0 o versioni successive. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).1074 * Claude Desktop v2.2553.0 o successiva. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).
1075 * OpenSSH di Microsoft 9.4 o versioni successive1075 * OpenSSH di Microsoft 9.4 o successiva
1076 * Desktop installato con i pulsanti di download nella parte superiore di questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH1076 * Desktop installato con i pulsanti di download in cima a questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH
1077 1077
1078 Se non puoi soddisfare questi requisiti, o usi un provider di terze parti, consulta [Connettersi su Windows senza il client OpenSSH](#connect-on-windows-without-the-openssh-client).1078 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).
1079 1079
1080Con il client OpenSSH, inserisci un nome `Host` dal 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`.1080Con 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`.
1081 1081
1082Prima di aggiungere la connessione, controlla il client e la voce in un terminale sul tuo computer:1082Prima di aggiungere la connessione, verifica il client e la voce in un terminale sul tuo computer:
1083 1083
1084* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o versioni successive.1084* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o successivo.
1085* **Versione del client su Windows**: Desktop prova prima 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 successive. 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`.1085* **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`.
1086* **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`.1086* **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`.
1087* **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.1087* **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.
1088 1088
1089Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:1089Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:
1090 1090
1093 1093
1094##### Connettersi su Windows senza il client OpenSSH1094##### Connettersi su Windows senza il client OpenSSH
1095 1095
1096Su 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 l'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).1096Su 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).
1097 1097
1098Con il client integrato, puoi comunque inserire un nome `Host` dalla tua configurazione SSH nel campo **SSH host** se il tuo `PATH` contiene un comando `ssh`, con questi limiti:1098Con 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:
1099 1099
1100* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port` e `IdentityFile`. Prende anche `ProxyCommand` se nel tuo `PATH` è presente una shell `sh`.1100* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port` e `IdentityFile`. Prende anche `ProxyCommand` se una shell `sh` è presente nel tuo `PATH`.
1101* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`1101* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`
1102* **`CertificateFile` e `ProxyJump`**: Desktop ignora `CertificateFile` e la connessione non riesce se la voce imposta `ProxyJump`. Per usare una delle due impostazioni, [connettiti tramite il client OpenSSH](#use-your-ssh-configuration).1102* **`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).
1103 1103
1104##### Raggiungere una macchina dietro un jump host1104##### Raggiungere una macchina dietro un jump host
1105 1105
1106Per 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`:1106Per 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`:
1107 1107
1108```text ~/.ssh/config theme={null}1108```text ~/.ssh/config theme={null}
1109Host devbox1109Host devbox
1114 1114
1115Inserisci `devbox` nel campo **SSH host**.1115Inserisci `devbox` nel campo **SSH host**.
1116 1116
1117Se 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 chiedigli di consentire l'`hostname` che stampa.1117Se 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.
1118 1118
1119##### Raggiungere un container su una macchina remota1119##### Raggiungere un container su una macchina remota
1120 1120
1121Per 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.1121Per 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.
1122 1122
1123**1. Aggiungi la voce**1123**1. Aggiungi la voce**
1124 1124
1125Aggiungi 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:1125Aggiungi 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:
1126 1126
1127```text ~/.ssh/config theme={null}1127```text ~/.ssh/config theme={null}
1128Host devbox-container1128Host devbox-container
1132 1132
1133**2. Prepara il container**1133**2. Prepara il container**
1134 1134
1135* Installa il server OpenSSH, con una chiave host che rimanga la stessa quando ricompili l'immagine o ricrei il container1135* Installa il server OpenSSH, con una chiave host che resti la stessa quando ricompili l'immagine o ricrei il container
1136* Fornisci all'account indicato in `User` un modo per accedere, come un file `authorized_keys`1136* Fornisci all'account indicato in `User` un modo per accedere, ad esempio un file `authorized_keys`
1137* Verifica che il container soddisfi i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions)1137* Verifica che il container soddisfi i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions)
1138 1138
1139**3. Controlla l'allowlist**1139**3. Controlla l'allowlist**
1140 1140
1141Se 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. Chiedigli di consentire in `sshHostAllowlist` l'`hostname` che stampa, in questo caso `devbox-container`. Quando consente quel nome, consente qualunque destinazione a cui si connetta il `ProxyCommand` della tua voce.1141Se 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.
1142 1142
1143**4. Testa la voce, poi connettiti**1143**4. Testa la voce, poi connettiti**
1144 1144
1145Esegui `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:1145Esegui `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:
1146 1146
1147* **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza richieste, come una chiave conservata dal tuo agente SSH1147* **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 SSH
1148* **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.1148* **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.
1149* **Se `ssh` segnala `Connection closed by UNKNOWN port 65535`**: esegui `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` nello stesso terminale.1149* **Se `ssh` segnala `Connection closed by UNKNOWN port 65535`**: esegui `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` nello stesso terminale.
1150 * Se stampa `Missing privilege separation directory: /run/sshd`, crea quella cartella nel container.1150 * Se stampa `Missing privilege separation directory: /run/sshd`, crea quella cartella nel container.
1151 * Se stampa `no hostkeys available` e il container ha chiavi host, aggiungi `-u root` dopo `exec` in questo comando e nella voce.1151 * Se stampa `no hostkeys available` e il container ha delle chiavi host, aggiungi `-u root` dopo `exec` in questo comando e nella voce.
1152 1152
1153Poi inserisci `devbox-container` nel campo **SSH host**.1153Poi inserisci `devbox-container` nel campo **SSH host**.
1154 1154
1155##### Usare variabili della tua shell in un `ProxyCommand`1155##### Usare variabili della tua shell in un `ProxyCommand`
1156 1156
1157Su macOS e Linux, per usare una tua variabile d'ambiente in un `ProxyCommand` o in un comando `Match exec`, esportala in un file di avvio della shell, ad esempio `~/.zshrc`. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che la tua shell di login esporta e mantiene quei valori finché non lo chiudi.1157Su 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.
1158 1158
1159Questo 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.1159Questo 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.
1160 1160
1161> [!NOTE]1161> [!NOTE]
1162>1162>
1163> Se la tua shell imposta credenziali AWS temporanee, [fornisci un profilo all'AWS CLI](#use-aws-credentials-in-a-proxycommand) invece di esportare variabili `AWS_*`.1163> Se la tua shell imposta credenziali AWS temporanee, [fornisci un profilo alla AWS CLI](#use-aws-credentials-in-a-proxycommand) anziché esportare variabili `AWS_*`.
1164 1164
1165##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux1165##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux
1166 1166
1167Se imposti credenziali AWS temporanee in un file di avvio della shell, un `ProxyCommand` che esegue l'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` né `AWS_PROFILE`.1167Se 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`.
1168 1168
1169Se l'AWS CLI non ha un'altra fonte 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 all'AWS CLI un profilo che legge da `~/.aws/config`:1169Se 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`:
1170 1170
1171**1. Aggiungi un profilo con una regione e una fonte di credenziali**1171**1. Aggiungi un profilo con una regione e una fonte di credenziali**
1172 1172
1173Questo esempio aggiunge un profilo denominato `corp` che ottiene le sue credenziali da un programma di supporto:1173Questo esempio aggiunge un profilo chiamato `corp` che ottiene le credenziali da un programma helper:
1174 1174
1175```ini ~/.aws/config theme={null}1175```ini ~/.aws/config theme={null}
1176[profile corp]1176[profile corp]
1178credential_process = /full/path/to/your-credential-helper1178credential_process = /full/path/to/your-credential-helper
1179```1179```
1180 1180
1181* **`region`**: indica la AWS Region delle macchine a cui ti connetti1181* **`region`**: indica la regione AWS delle macchine a cui ti connetti
1182* **`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é l'AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei assente.1182* **`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.
1183* **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.1183* **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.
1184 1184
1185**2. Indica il profilo nel ProxyCommand**1185**2. Indica il profilo nel ProxyCommand**
1193 1193
1194**3. Connettiti di nuovo**1194**3. Connettiti di nuovo**
1195 1195
1196Esegui `ssh` con l'host in un terminale per confermare che la voce si connetta ancora lì, poi connettiti da Desktop.1196Esegui `ssh` con l'host in un terminale per confermare che la voce si connette ancora lì, poi connettiti da Desktop.
1197 1197
1198##### Aumentare il timeout della connessione SSH1198##### Aumentare il timeout della connessione SSH
1199 1199
1207 ConnectTimeout 1201207 ConnectTimeout 120
1208```1208```
1209 1209
1210`ssh` usa il primo valore che trova per un host, quindi mantieni la voce sopra qualsiasi voce `Host *` che imposti `ConnectTimeout`. Per verificarlo, 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.1210`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.
1211 1211
1212Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque `ConnectTimeout` tu imposti. Non puoi aumentare questo limite, perché Desktop imposta autonomamente `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per quel lasso di tempo. Se invece è un jump host o un `ProxyCommand` ad attenderti, aumenta `ConnectTimeout` nella voce della macchina remota per coprire quel tempo.1212Se 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.
1213 1213
1214##### Correggere un blocco `Match host` che solo Desktop applica1214##### Correggere un blocco `Match host` che applica solo Desktop
1215 1215
1216Se 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 `HostName` sulla riga di comando, quindi `ssh` confronta il blocco con quel valore.1216Se 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.
1217 1217
1218Per 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:1218Per 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:
1219 1219
1221ssh -G -o HostName=devbox.internal.example.com -l alice devbox1221ssh -G -o HostName=devbox.internal.example.com -l alice devbox
1222```1222```
1223 1223
1224Confronta 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 far sì che anche Desktop lo salti, aggiungi `!originalhost devbox` alla sua riga `Match`:1224Confronta 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`:
1225 1225
1226```text ~/.ssh/config theme={null}1226```text ~/.ssh/config theme={null}
1227Match host *.internal.example.com !originalhost devbox1227Match host *.internal.example.com !originalhost devbox
1228```1228```
1229 1229
1230Per verificarlo, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.1230Per confermare, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.
1231 1231
1232##### Impostazioni di inoltro che Desktop lascia disattivate1232##### Impostazioni di forwarding che Desktop lascia disattivate
1233 1233
1234Nella 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é lì Desktop può avviare un `ssh` separato che le segue.1234Nella 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.
1235 1235
1236* **Per raggiungere una porta sulla macchina remota**: [inoltrala tu stesso](#reach-a-port-on-the-remote-machine)1236* **Per raggiungere una porta sulla macchina remota**: [esegui tu il forwarding](#reach-a-port-on-the-remote-machine)
1237* **Per usare le tue chiavi dalla macchina remota**: configura una credenziale sulla macchina remota stessa, ad esempio per `git push`1237* **Per usare le tue chiavi dalla macchina remota**: configura una credenziale sulla macchina remota stessa, ad esempio per `git push`
1238 1238
1239Per 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.1239Per 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.
1240 1240
1241Cerca in entrambi gli output una riga `forwardagent` che indichi 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`.1241Cerca 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`.
1242 1242
1243#### Raggiungere una porta sulla macchina remota1243#### Raggiungere una porta sulla macchina remota
1244 1244
1245Per aprire un server in esecuzione sulla macchina remota, come un server di sviluppo 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, come `devbox`:1245Per 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`:
1246 1246
1247```bash theme={null}1247```bash theme={null}
1248ssh -N -L 3000:localhost:3000 devbox1248ssh -N -L 3000:localhost:3000 devbox
1249```1249```
1250 1250
1251Se 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 l'inoltro TCP, controllato da `AllowTcpForwarding` nel `sshd_config` del server SSH.1251Se 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.
1252 1252
1253#### Macchine remote Windows1253#### Macchine remote Windows
1254 1254
1255Una macchina remota Windows richiede Claude Desktop v2.31226.0 o versioni successive.1255Una macchina remota Windows richiede Claude Desktop v2.31226.0 o successiva.
1256 1256
1257Usa 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.1257Usa 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.
1258 1258
1259Le macchine remote Windows sono testate meno di quelle Linux. Prova il tuo lavoro su di esse prima di farci affidamento.1259Le macchine remote Windows vengono testate meno di quelle Linux. Prova il tuo lavoro lì prima di farvi affidamento.
1260 1260
1261Aspettati questi limiti, tra gli altri, su una macchina remota Windows:1261Aspettati queste limitazioni, tra le altre, su una macchina remota Windows:
1262 1262
1263* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`1263* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`
1264* **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).1264* **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).
1265* **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.1265* **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.
1266* **Server MCP**: su alcune macchine remote Windows, le chiamate di Claude ai server MCP di `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.1266* **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.
1267* **Worktree**: i worktree vengono creati in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.1267* **Worktree**: i worktree vengono creati in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.
1268* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti dover connetterti prima di vedere i messaggi precedenti di una sessione1268* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti doverti connettere prima di vedere i messaggi precedenti di una sessione
1269* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi fare il fork di una sessione solo dal suo primo messaggio1269* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi creare un fork di una sessione solo dal suo primo messaggio
1270* **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).1270* **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).
1271* **Processi residui**: al termine di una sessione, controlla la macchina alla ricerca di 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) che Desktop installa non si arresta da solo lì.1271* **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ì.
1272 1272
1273#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso1273#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso
1274 1274
1275Se 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 conta come sospensione. Un riavvio di Desktop o del tuo computer, anche per un aggiornamento, conta come chiusura.1275Se 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.
1276 1276
1277Claude 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 essere eseguito. Il comportamento descritto in questa sezione richiede Claude Desktop v2.31226.0 o versioni successive.1277Claude 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.
1278 1278
1279> [!WARNING]1279> [!WARNING]
1280>1280>
1281> 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 che ti disconnetti, e l'attività a quel punto si interrompe. Il tempo rimanente al momento della disconnessione varia, e può essere di pochi minuti.1281> 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.
1282>1282>
1283> Il lavoro svolto fino a quel momento rimane sulla macchina remota e puoi continuare con un messaggio al tuo ritorno.1283> Il lavoro svolto fino a quel momento resta sulla macchina remota e puoi continuare con un messaggio quando torni.
1284>1284>
1285> Se l'attività deve essere eseguita per tutta la notte:1285> Se l'attività deve essere eseguita per tutta la notte:
1286>1286>
1287> * [Mantieni il tuo 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 esecuzione1287> * [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
1288> * Usa un accesso che funzioni senza richieste, come una chiave conservata dal tuo agente SSH, per la macchina remota e per qualsiasi jump host lungo il percorso. Desktop potrà quindi riconnettersi da solo dopo un'interruzione.1288> * 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.
1289>1289>
1290> Per un'attività che deve essere eseguita mentre il tuo computer è in sospensione o spento, avvia invece una [sessione cloud](#run-long-running-tasks-in-the-cloud).1290> 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).
1291 1291
1292* **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 richieste. Se non può, [invia un messaggio](#reconnect-after-sleep-or-a-network-loss).1292* **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).
1293* **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 chiuderlo. Se hai perso l'attività, invia un messaggio per continuare.1293* **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.
1294 1294
1295Quando torni e l'attività non è terminata, verifica se c'è un avviso che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:1295Quando 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:
1296 1296
1297* **Desktop non riesce a riconnettersi**: la sessione indica il motivo, e potrebbe farlo anche una notifica. Desktop potrebbe [aver bisogno che tu acceda](#reconnect-after-sleep-or-a-network-loss).1297* **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).
1298* **Errore di autenticazione**: il [token di accesso o la credenziale](#limits-while-desktop-is-disconnected) potrebbero essere scaduti. 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).1298* **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).
1299* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)1299* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)
1300* **Nessuno di questi**: invia un messaggio per continuare1300* **Nessuno di questi**: invia un messaggio per continuare
1301 1301
1302##### Preparare un'attività lunga1302##### Preparare un'attività lunga
1303 1303
1304* **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 su 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).1304* **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).
1305* **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, consulta [Riaprire una sessione dopo aver chiuso Desktop](#reopen-a-session-after-you-quit-desktop).1305* **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).
1306* **Su una versione precedente, lascia Desktop aperto**: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo la chiusura o il riavvio di Desktop. 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).1306* **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).
1307* **Riduci le richieste**: scegli una modalità di permesso, regole o hook che [facciano sì che l'attività ti attenda meno spesso](#handle-requests-that-arrive-while-you-are-away)1307* **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)
1308* **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 richieste. Altrimenti Desktop può inviare un'altra notifica push ogni volta che tenta di riconnettersi.1308* **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.
1309* **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).1309* **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).
1310* **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 Desktop1310* **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
1311 1311
1312##### Limiti mentre Desktop è disconnesso1312##### Limiti mentre Desktop è disconnesso
1313 1313
1314Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, o quando il programma di supporto si arresta o viene sostituito:1314Un'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:
1315 1315
1316* **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 proveniente da 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) in modo che possa rinnovare l'accesso.1316* **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.
1317* **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`.1317* **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`.
1318* **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 chiude 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).1318* **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).
1319* **Aggiornamenti di Desktop**: se un aggiornamento introduce un nuovo programma di supporto, Desktop sostituisce il programma di supporto sulla macchina remota in una connessione successiva, il che può terminare un'attività ancora in esecuzione1319* **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 esecuzione
1320* **Assenze lunghe**: 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 Claude Code in esecuzione sotto di esso. Connettiti prima di allora.1320* **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.
1321 1321
1322Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:1322Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:
1323 1323
1324* **Worktree**: in una sessione che usa un [worktree](#run-a-session-in-its-own-worktree), Desktop verifica ogni modifica ai file prima che Claude la apporti. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi fallisce. 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.1324* **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.
1325* **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.1325* **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.
1326* **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 secondi1326* **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
1327* **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 riesce1327* **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 riesce
1328* **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 di `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.1328* **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.
1329 1329
1330> **Quando le modifiche in un worktree continuano a funzionare**1330> **Quando le modifiche in un worktree continuano a funzionare**
1331>1331>
1333>1333>
1334> Le modifiche non riescono comunque in alcuni casi, tra cui questi:1334> Le modifiche non riescono comunque in alcuni casi, tra cui questi:
1335>1335>
1336> * **Client SSH integrato**: Desktop lo usa, ad esempio in un'installazione da Microsoft Store, su un computer Windows senza OpenSSH 9.4 o versioni successive di Microsoft, oppure per impostazione predefinita su Windows con un provider di terze parti1336> * **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 parti
1337> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa o `~/.claude`1337> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa, oppure `~/.claude`
1338> * **Percorsi macOS**: su una macchina remota macOS, il repository si trova sotto `/Volumes`, oppure un nome di cartella nel percorso del repository o del worktree contiene un `~` o un carattere non ASCII1338> * **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 ASCII
1339> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare1339> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare
1340> * **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)1340> * **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)
1341>1341>
1342> Una sessione senza worktree non ha questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.1342> Una sessione senza worktree non prevede questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.
1343 1343
1344##### Gestire le richieste che arrivano mentre sei assente1344##### Gestire le richieste che arrivano mentre sei via
1345 1345
1346Se 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.1346Se 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.
1347 1347
1348Se 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 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.1348Se 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.
1349 1349
1350Se perdi una richiesta, invia un messaggio per continuare.1350Se perdi una richiesta, invia un messaggio per continuare.
1351 1351
1352Per ridurre la frequenza con cui un'attività si ferma per attenderti, e per ricevere sue notizie mentre sei assente, configura uno di questi elementi prima di allontanarti:1352Per 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:
1353 1353
1354* **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).1354* **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).
1355* **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 file `.claude/settings.json` di un progetto, consulta [Project allow rules and workspace trust](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust).1355* **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).
1356* **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 tuo1356* **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
1357* **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 attesa1357* **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
1358* **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 API termina il turno. Per quel caso, configura un [hook `StopFailure`](https://code.claude.com/docs/it/hooks#stopfailure).1358* **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).
1359 1359
1360Se 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.1360Se 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.
1361 1361
1362Claude 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 un'azione di questo tipo o te la chiede, e l'attività attende quindi la tua risposta.1362Claude 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.
1363 1363
1364##### Riconnettersi dopo una sospensione o una perdita di rete1364##### Riconnettersi dopo la sospensione o una perdita di rete
1365 1365
1366Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza richieste, ad esempio con una chiave conservata dal tuo agente SSH.1366Se 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.
1367 1367
1368* **Password memorizzata**: anche una password che lasci memorizzare a Desktop funziona senza richieste, ma per un'assenza lunga 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.1368* **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.
1369* **Qualsiasi altra richiesta**: 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 la richiesta.1369* **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.
1370 1370
1371> **Se un jump host chiede un accesso, l'interruzione è lunga, manca dell'output o il processo non c'è più**1371> **Se un jump host chiede un accesso, l'interruzione è lunga, manca dell'output o il processo non c'è più**
1372>1372>
1373> * **Jump host, le notifiche push si fermano mentre sei assente**: 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.1373> * **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.
1374> * **Jump host, le notifiche push continuano ad arrivare**: dove Desktop non riesce a 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 fermare i tentativi, chiudi Desktop, il che [può farti perdere l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop).1374> * **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).
1375> * **Interruzione lunga**: Desktop rallenta a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio, che Desktop recapita una volta connesso.1375> * **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.
1376> * **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 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.1376> * **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.
1377> * **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.1377> * **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.
1378 1378
1379##### Riaprire una sessione dopo aver chiuso Desktop1379##### Riaprire una sessione dopo aver chiuso Desktop
1380 1380
1381Dopo aver chiuso Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si ferma 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, ha bisogno di te o raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected).1381Dopo 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).
1382 1382
1383* **Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0**: non recuperi l'attività, anche se nel frattempo Desktop è stato aggiornato. Riavvia Desktop solo quando prevedi che l'attività sia terminata, perché la sessione può aprirsi all'avvio di Desktop e l'attività si ferma quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi comunque finché non prevedi che sia terminata.1383* **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.
1384* **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 terminata.1384* **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.
1385* **Qualsiasi altra attività**: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre riesce a ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi [aggiorna prima di un'attività lunga](#prepare-a-long-task).1385* **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).
1386 1386
1387Quando l'attività si ferma, 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.1387Quando 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.
1388 1388
1389Per 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).1389Per 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).
1390 1390
1391> [!WARNING]1391> [!WARNING]
1392>1392>
1393> 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 essa sulla macchina remota. Claude Code non te lo impedisce, e a quel punto entrambi i processi scrivono 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.1393> 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.
1394 1394
1395#### Scegliere dove vengono creati i worktree delle sessioni SSH1395#### Scegliere dove vanno i worktree delle sessioni SSH
1396 1396
1397A 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:1397A 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:
1398 1398
13991. **Worktree folder** nella connessione SSH13991. **Worktree folder** nella connessione SSH
14002. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota14002. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota
1408 1408
1409**1. Trova la connessione**1409**1. Trova la connessione**
1410 1410
1411Apri il [selettore di ambiente](#start-a-session) e trova la connessione sotto **SSH**.1411Apri il [selettore dell'ambiente](#start-a-session) e trova la connessione sotto **SSH**.
1412 1412
1413**2. Apri le impostazioni della connessione**1413**2. Apri le impostazioni della connessione**
1414 1414
1416 1416
1417**3. Imposta la cartella**1417**3. Imposta la cartella**
1418 1418
1419In **Worktree folder**, inserisci una cartella sulla macchina remota, come `~/worktrees`, e seleziona **Save changes**.1419In **Worktree folder**, inserisci una cartella sulla macchina remota, ad esempio `~/worktrees`, e seleziona **Save changes**.
1420 1420
1421#### File e processi sulla macchina remota1421#### File e processi sulla macchina remota
1422 1422
1423Desktop 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.1423Desktop 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.
1424 1424
1425| Cartella | Contenuto |1425| Cartella | Contenuto |
1426| - | - |1426| - | - |
1427| `~/.claude/remote/srv/` | Il programma di supporto, in una cartella per versione |1427| `~/.claude/remote/srv/` | L'helper, in una cartella per versione |
1428| `~/.claude/remote/ccd-cli/` | Claude Code, in un file per versione |1428| `~/.claude/remote/ccd-cli/` | Claude Code, in un file per versione |
1429| `~/.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 |1429| `~/.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 |
1430| `~/.claude/remote/plugins/` | I plugin che Desktop copia dal computer dell'utente |1430| `~/.claude/remote/plugins/` | I plugin che Desktop copia dal computer dell'utente |
1431| [`~/.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 |1431| [`~/.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 |
1432 1432
1433Per 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`:1433Per 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`:
1434 1434
1435* **Programma di supporto**: uno o più processi `server` per ogni computer che si connette1435* **Helper**: uno o più processi `server` per ogni computer che si connette
1436* **Claude Code**: i processi che il programma di supporto avvia per le sessioni dell'utente, ciascuno da un file che porta il nome della sua versione, come `2.1.295-…`1436* **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-…`
1437 1437
1438Desktop raggiunge il programma di supporto tramite la connessione SSH dell'utente, attraverso 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.1438Desktop 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.
1439 1439
1440Per sapere quando il programma di supporto si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).1440Per i casi in cui l'helper si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).
1441 1441
1442Per rimuovere il programma di supporto e Claude Code per un utente:1442Per rimuovere l'helper e Claude Code per un utente:
1443 1443
1444**1. Chiudi Desktop**1444**1. Chiudi Desktop**
1445 1445
1446Chiudi Desktop su ogni computer da cui l'utente si connette. Desktop installa di nuovo entrambi i programmi alla connessione successiva, e può riconnettersi da solo.1446Chiudi Desktop su ogni computer da cui l'utente si connette. Desktop installa di nuovo entrambi i programmi alla connessione successiva e può riconnettersi da solo.
1447 1447
1448**2. Termina i processi**1448**2. Termina i processi**
1449 1449
1450Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui `kill` con l'ID di ogni processo Claude Code elencato da [`pgrep`](#files-and-processes-on-the-remote-machine). 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.1450Dopo 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.
1451 1451
1452Poi 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`.1452Poi 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`.
1453 1453
1454**3. Elimina la cartella**1454**3. Elimina la cartella**
1455 1455
1456Elimina `~/.claude/remote/`. Per rimuovere i file 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).1456Elimina `~/.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).
1457 1457
1458##### Terminare il processo di una sessione1458##### Terminare il processo di una sessione
1459 1459
1460Per 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 esci da Desktop.1460Per 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.
1461 1461
1462Prima 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).1462Prima 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).
1463 1463
1464##### Vedere con quale utente vengono eseguiti i processi1464##### Vedere con quale utente vengono eseguiti i processi
1465 1465
1466Il programma di supporto 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).1466L'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).
1467 1467
1468Anche i programmi che Claude Code avvia, come i comandi 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ì.1468Anche 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ì.
1469 1469
1470##### Vedere chi si è connesso alla macchina remota1470##### Vedere chi si è connesso alla macchina remota
1471 1471
1472Per 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.1472Per 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.
1473 1473
1474Se il server imposta `MaxSessions 1`, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettati almeno un'altra voce per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`.1474Se 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 `!`.
1475 1475
1476Non 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).1476Non 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).
1477 1477
1478#### Connessioni che si chiudono prima dell'accesso1478#### Connessioni che si chiudono prima dell'accesso
1479 1479
1480Se 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 immediatamente, senza inviare nulla. Aspettati un test o diversi di fila, ad esempio otto in circa due minuti.1480Se 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.
1481 1481
1482Se 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 a rifiutare 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).1482Se 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).
1483 1483
1484##### Riconoscere un test nel log del server SSH1484##### Riconoscere un test nel log del server SSH
1485 1485
1486Confronta le righe nel 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 invece vedere le righe dell'ultima colonna se il messaggio di benvenuto del server arriva prima che Desktop chiuda la connessione:1486Confronta 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:
1487 1487
1488| Versione di OpenSSH | Righe per un test | Righe se il messaggio di benvenuto arriva prima |1488| Versione di OpenSSH | Righe per un test | Righe se il saluto arriva prima |
1489| - | - | - |1489| - | - | - |
1490| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |1490| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |
1491| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |1491| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |
1497 1497
1498Le 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.1498Le 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.
1499 1499
1500##### Verificare se è il server SSH stesso a rifiutare l'indirizzo1500##### Verificare se il server SSH stesso rifiuta l'indirizzo
1501 1501
1502Se le connessioni vengono rifiutate da un indirizzo condiviso da molti computer con Desktop, cerca nel log del server SSH una riga che termina come questa:1502Se le connessioni vengono rifiutate da un indirizzo condiviso da molti computer con Desktop, cerca nel log del server SSH una riga che termina come questa:
1503 1503
1505drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication1505drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication
1506```1506```
1507 1507
1508Con il `LogLevel` predefinito, OpenSSH 9.8 e successivi possono scrivere una riga del genere 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 pochi test soltanto.1508Con 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.
1509 1509
1510Per 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 non applica quindi nessuna delle sue penalità a quegli indirizzi, incluse 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.1510Per 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.
1511 1511
1512##### Verificare se fail2ban conta i test di Desktop1512##### Verificare se fail2ban conta i test di Desktop
1513 1513
1514Se fail2ban 0.10.5 o successivo ha bloccato un indirizzo da cui Desktop si connette, trova la modalità del tuo jail in `jail.conf`, `jail.local` o in `jail.d/`:1514Se 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/`:
1515 1515
1516* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.1516* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.
1517* **Solo la riga `filter` standard**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non ce n'è una.1517* **Solo la riga `filter` predefinita**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non ce n'è una.
1518 1518
1519Se la modalità è `normal`, fail2ban non conta le righe dei test di Desktop, quindi cerca un'altra causa del blocco.1519Se la modalità è `normal`, fail2ban non conta le righe dei test di Desktop, quindi cerca un'altra causa del blocco.
1520 1520
1521Per 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à del tuo jail, ad esempio `aggressive`:1521Per 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`:
1522 1522
1523```bash theme={null}1523```bash theme={null}
1524fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"1524fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"
1528 1528
1529##### Evitare un blocco da parte di fail2ban1529##### Evitare un blocco da parte di fail2ban
1530 1530
1531Per impedire a fail2ban di bloccare un indirizzo per i test di Desktop, modifica una delle due impostazioni del jail, ciascuna con un costo:1531Per impedire a fail2ban di bloccare un indirizzo a causa dei test di Desktop, modifica una di due impostazioni della jail, ciascuna con un costo:
1532 1532
1533* **`mode`**: impostala su `normal` ovunque il tuo 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 quello dei client che si connettono e se ne vanno senza tentare l'accesso.1533* **`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.
1534* **`ignoreip`**: impostala sugli indirizzi da cui le persone si connettono, ad esempio `ignoreip = 203.0.113.7`. fail2ban non conta quindi nulla da quegli indirizzi, inclusi gli accessi non riusciti.1534* **`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.
1535 1535
1536#### Usare i server MCP configurati sulla macchina remota1536#### Usare server MCP configurati sulla macchina remota
1537 1537
1538Per usare un [server MCP](https://code.claude.com/docs/it/mcp.md) di `~/.claude.json` o del `.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 eseguiti da quei server. Per i server di `claude_desktop_config.json`, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).1538Per 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).
1539 1539
1540#### Aprire una sessione SSH da un link1540#### Aprire una sessione SSH da un link
1541 1541
1542Un 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 già configurato per la macchina e la cartella giuste. Per le piattaforme che rimuovono questi link, consulta [Il link viene visualizzato come testo normale invece di essere cliccabile](https://code.claude.com/docs/it/deep-links.md#the-link-renders-as-plain-text-instead-of-being-clickable).1542Un 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).
1543 1543
1544I link SSH richiedono Claude Desktop v2.110.0 o versioni successive.1544I link SSH richiedono Claude Desktop v2.110.0 o versione successiva.
1545 1545
1546Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:1546Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:
1547 1547
1555| :- | :- |1555| :- | :- |
1556| `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 `-` |1556| `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 `-` |
1557| `ssh_port` | Un numero di porta da 1 a 65535 |1557| `ssh_port` | Un numero di porta da 1 a 65535 |
1558| `ssh_folder` | Una cartella sulla macchina remota. Inizia con `/` o `~/`, oppure usa `~` |1558| `ssh_folder` | Una cartella sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~` |
1559| `q` | Testo con codifica URL per la casella del prompt |1559| `q` | Testo con codifica URL per la casella del prompt |
1560 1560
1561Un alias di `~/.ssh/config` funziona come `ssh_host` solo per chi ha quella voce. Per far corrispondere una connessione che le persone hanno già, assegna al link lo stesso utente, host e porta di quella connessione.1561Un 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.
1562 1562
1563Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:1563Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:
1564 1564
1565* **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.1565* **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.
1566* **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 del link, e la porta e la cartella se il link le indica.1566* **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.
1567 1567
1568Finché non confermi, Desktop non salva l'host, la porta o la cartella del link, e non seleziona né apre una connessione con essi. Se è già selezionata una connessione SSH, la pagina di nuova sessione può comunque connettersi a essa autonomamente, 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.1568Finché 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.
1569 1569
1570Chiunque può scrivere un link, quindi controlla cosa ha compilato:1570Chiunque può scrivere un link, quindi verifica cosa ha compilato:
1571 1571
1572* **Prima di confermare**: controlla l'host e la cartella.1572* **Prima di confermare**: verifica l'host e la cartella.
1573* **Prima di inviare**: controlla il prompt e l'ambiente selezionato.1573* **Prima di inviare**: verifica il prompt e l'ambiente selezionato.
1574 1574
1575Desktop 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 normale, quindi una `/` o un `!` iniziali e una menzione di file con `@` non agiscono come comando o menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.1575Desktop 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.
1576 1576
1577Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.1577Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.
1578 1578
1579Se il link apre Desktop senza una finestra di dialogo relativa alla connessione, verifica una di queste cause:1579Se il link apre Desktop senza una finestra di dialogo sulla connessione, cerca una di queste cause:
1580 1580
1581* **Hai effettuato la disconnessione**: accedi, quindi apri di nuovo il link.1581* **Non hai effettuato l'accesso**: accedi, poi apri di nuovo il link.
1582* **È aperta un'altra finestra di dialogo**: chiudila, quindi apri di nuovo il link.1582* **È aperta un'altra finestra di dialogo**: chiudila, poi apri di nuovo il link.
1583* **Il link non è valido**: Desktop mostra un messaggio che indica cosa correggere e non compila il prompt.1583* **Il link non è valido**: Desktop mostra un messaggio che indica cosa correggere e non compila il prompt.
1584* **Desktop è precedente alla v2.110.0**: le versioni precedenti ignorano i parametri SSH e aprono la pagina di nuova sessione solo con il prompt.1584* **Desktop è precedente alla v2.110.0**: le versioni precedenti ignorano i parametri SSH e aprono la pagina di nuova sessione con il solo prompt.
1585* **Le sessioni SSH sono disattivate**: se il tuo amministratore imposta l'allowlist su un array vuoto, Desktop rifiuta i link SSH.1585* **Le sessioni SSH sono disattivate**: se il tuo amministratore imposta l'allowlist su un array vuoto, Desktop rifiuta i link SSH.
1586 1586
1587#### Creare una connessione SSH da un comando1587#### Creare una connessione SSH da un comando
1588 1588
1589Se 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 di ambiente elenca quindi una voce che prende il nome dalla tua voce, come **Create Dev box**. Quando la selezioni, Desktop esegue il comando sul tuo computer, salva come connessione SSH l'host che il comando stampa e si connette.1589Se 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.
1590 1590
1591> [!NOTE]1591> [!NOTE]
1592>1592>
1593> Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o successivo su macOS o Linux, con accesso tramite un account Claude. Gli amministratori possono [distribuire i comandi a un team](#distribute-commands-to-your-team).1593> 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).
1594 1594
1595Ogni voce è una connessione, con un host alla volta. Desktop esegue il comando solo quando crei la connessione o [sostituisci il suo host](#replace-the-host), non ogni volta che ti connetti. Per mantenere due macchine contemporaneamente, aggiungi una seconda voce.1595Ogni voce è una connessione, con un host alla volta. Desktop esegue il comando solo quando crei la connessione o [sostituisci il suo host](#replace-the-host), non ogni volta che ti connetti. Per mantenere due macchine contemporaneamente, aggiungi una seconda voce.
1596 1596
1597> [!WARNING]1597> [!WARNING]
1598>1598>
1599> Desktop non arresta né elimina le macchine. Ognuna di queste resta in esecuzione, e può continuare a generare costi, finché non la elimini con il tuo strumento:1599> 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:
1600>1600>
1601> * Un host che hai sostituito1601> * Un host che hai sostituito
1602> * L'host di una voce che hai rimosso dal file, o di cui hai cambiato l'`id`1602> * L'host di una voce che hai rimosso dal file, o di cui hai modificato l'`id`
1603> * Una macchina che il tuo comando ha creato senza che Desktop ne salvasse l'host, ad esempio in questi casi:1603> * Una macchina creata dal tuo comando senza che Desktop ne abbia salvato l'host, ad esempio in questi casi:
1604> * Il comando non riesce o supera il tempo limite1604> * Il comando non riesce o esaurisce il tempo
1605> * Desktop non può usare l'host stampato, un'altra connessione lo usa già oppure la tua organizzazione non lo consente1605> * Desktop non può usare l'host stampato, un'altra connessione lo usa già, oppure la tua organizzazione non lo consente
1606> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, cambi il suo `command` o `id`, oppure chiudi Desktop1606> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, modifichi il suo `command` o `id`, oppure chiudi Desktop
1607 1607
1608L'esempio seguente aggiunge una connessione chiamata 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:1608L'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:
1609 1609
1610```json ~/.claude/settings.json theme={null}1610```json ~/.claude/settings.json theme={null}
1611{1611{
1624 1624
1625| Campo | Valore |1625| Campo | Valore |
1626| :- | :- |1626| :- | :- |
1627| `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 cambi, la connessione riparte senza host e la vecchia macchina resta in esecuzione. |1627| `id` | Fino a 64 lettere ASCII, cifre, `.`, `_` e `-`, che inizi 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 e la vecchia macchina continua a essere in esecuzione. |
1628| `name` | Il nome della connessione nel selettore di ambiente, fino a 200 caratteri su una riga |1628| `name` | Il nome della connessione nel selettore dell'ambiente, fino a 200 caratteri su una riga |
1629| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |1629| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |
1630| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |1630| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |
1631| `startDirectory` | La cartella predefinita sulla macchina remota. Falla iniziare con `/` o `~/`, oppure usa `~`. |1631| `startDirectory` | La cartella predefinita sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~`. |
1632 1632
1633Per 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 riesci a selezionarla, consulta [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1633Per 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).
1634 1634
1635##### Scrivere il comando1635##### Scrivere il comando
1636 1636
1638 1638
1639* **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.1639* **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.
1640* **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 `~`.1640* **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 `~`.
1641* **Script**: se il comando ha bisogno di 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.1641* **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.
1642* **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.1642* **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.
1643* **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.1643* **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.
1644* **Tempo limite**: Desktop arresta un programma 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.1644* **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.
1645 1645
1646Il programma deve terminare con codice 0 e stampare solo l'host sullo standard output, in una di due forme:1646Il programma deve uscire con codice 0 e stampare solo l'host sullo standard output, in una di due forme:
1647 1647
1648* **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.1648* **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.
1649* **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}`1649* **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}`
1650 1650
1651Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output reindirizzato in un file:1651Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output in un file:
1652 1652
1653```bash theme={null}1653```bash theme={null}
1654acme-dev create < /dev/null > host.txt1654acme-dev create < /dev/null > host.txt
1655```1655```
1656 1656
1657Il file deve contenere solo l'host. Quando esegui questo test, anche il tuo strumento crea una macchina, quindi eliminala in seguito con il tuo strumento.1657Il 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.
1658 1658
1659Se 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 termina con lo stesso codice, in modo che Desktop segnali l'errore:1659Se 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:
1660 1660
1661```bash theme={null}1661```bash theme={null}
1662#!/bin/bash1662#!/bin/bash
1673Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:1673Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:
1674 1674
1675* **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.1675* **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.
1676* **Cartella**: scegli se considerare attendibile la cartella che apri lì1676* **Cartella**: scegli se ritieni attendibile la cartella che apri lì
1677 1677
1678Mantieni 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.1678Mantieni 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.
1679 1679
1680##### Sostituire l'host1680##### Sostituire l'host
1681 1681
1682Una volta che Dev box ha un host, il selettore elenca Dev box tra le tue connessioni SSH, e **Create Dev box** diventa **Replace Dev box's host**. Se quella voce non è nell'elenco, cercala sotto **More**.1682Una volta che Dev box ha un host, il selettore elenca Dev box tra le tue connessioni SSH e **Create Dev box** diventa **Replace Dev box's host**. Se quell'elemento non è nell'elenco, cerca sotto **More**.
1683 1683
1684Selezionala quando la macchina non c'è più o ne vuoi una nuova. Nella pagina di nuova sessione, la offre anche il messaggio che indica che Desktop non riesce a raggiungere l'host. Desktop esegue di nuovo il comando e le nuove sessioni usano il nuovo host.1684Selezionalo quando la macchina non esiste più o ne vuoi una nuova. Nella pagina di nuova sessione, lo offre anche il messaggio che indica che Desktop non riesce a raggiungere l'host. Desktop esegue di nuovo il comando e le nuove sessioni usano il nuovo host.
1685 1685
1686* **Un nuovo host**: la voce è grigia per 10 minuti dopo che Desktop ha salvato un host, perché una nuova macchina può impiegare un po' di tempo ad avviarsi. Finché un nuovo host non risponde, la pagina di nuova sessione continua a provare a connettersi per quei 10 minuti.1686* **Un nuovo host**: l'elemento è grigio per 10 minuti dopo che Desktop ha salvato un host, perché una nuova macchina può impiegare un po' di tempo per avviarsi. Finché un nuovo host non risponde, la pagina di nuova sessione continua a tentare di connettersi per quei 10 minuti.
1687* **Sessioni sul vecchio host**: restano su di esso, e Desktop non si connette a quell'host a meno che tu non lo aggiunga di nuovo. Per continuarne una, apri la sessione e seleziona **Add SSH connection**. Desktop compila il vecchio host. Salvalo come connessione a sé stante.1687* **Sessioni sul vecchio host**: rimangono su di esso, e Desktop non si connette a quell'host a meno che tu non lo aggiunga di nuovo. Per continuarne una, apri la sessione e seleziona **Add SSH connection**. Desktop compila il vecchio host. Salvalo come connessione a sé stante.
1688 1688
1689##### Distribuire i comandi al tuo team1689##### Distribuire i comandi al tuo team
1690 1690
1691Per fornire una connessione al tuo team, imposta `sshHostCommands` nel file di [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) o nella policy MDM di Claude Code 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.1691Per 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.
1692 1692
1693Il seguente file di impostazioni gestite fornisce agli utenti una connessione chiamata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:1693Il 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:
1694 1694
1695```json managed-settings.json theme={null}1695```json managed-settings.json theme={null}
1696{1696{
1707 1707
1708Prima di distribuire la chiave, definisci ciascuno di questi aspetti:1708Prima di distribuire la chiave, definisci ciascuno di questi aspetti:
1709 1709
1710* **Dove mettere 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), mettila lì. Altrimenti, mettila nel file di 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ì, così come nelle impostazioni di progetto e locali.1710* **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.
1711* **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.1711* **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.
1712* **Il programma**: fornisci 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.1712* **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.
1713* **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 alcun 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 indica la voce di ciascuna chiave.1713* **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.
1714* **Tutte le voci**: 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 una `sshHostAllowlist` che non consente alcun host, il selettore non elenca voci **Create** o **Replace**.1714* **Tutte le voci**: 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), oppure un `sshHostAllowlist` che non consente alcun host, il selettore non elenca elementi **Create** o **Replace**.
1715* **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, e applica il risultato più restrittivo. Ogni voce resta grigia finché Desktop non ha verificato su claude.ai le impostazioni gestite dal server, anche se la tua organizzazione non ne ha.1715* **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.
1716* **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 controlla il nome stampato solo dopo l'esecuzione del comando, quindi una macchina rifiutata dall'elenco esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, anche l'`HostName` risolto deve corrispondere.1716* **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.
1717 1717
1718Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore di ambiente della scheda Code, cerca sotto **SSH**, o nella singola riga **SSH**. La tua voce appare come voce **Create**, oppure come voce grigia che indica il motivo quando ci passi sopra con il puntatore. Se manca, controlla dove hai messo la chiave, poi i casi in [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1718Dopo 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).
1719 1719
1720##### Se un comando manca o è grigio1720##### Se un comando manca o è grigio
1721 1721
1722Il selettore di ambiente non elenca alcuna voce **Create** o **Replace** in questi casi:1722Il selettore dell'ambiente non elenca alcun elemento **Create** o **Replace** in questi casi:
1723 1723
1724* **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.1724* **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.
1725* **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).1725* **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).
1726* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.1726* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.
1727* **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.1727* **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.
1728 1728
1729Una voce che non puoi selezionare è grigia. Passaci sopra con il puntatore per vedere il motivo:1729Una voce che non puoi selezionare è grigia. Passaci sopra con il puntatore per vedere il motivo:
1730 1730
1731* **Un errore nella voce**: correggi il campo o il comando indicato dal messaggio. Se l'`id` è già in uso, assegnane un altro alla voce.1731* **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`.
1732* **Un file di impostazioni danneggiato**: mentre il tuo file di 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).1732* **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).
1733* **Un nuovo host**: puoi [sostituire un host](#replace-the-host) quando ha almeno 10 minuti.1733* **Un nuovo host**: puoi [sostituire un host](#replace-the-host) una volta trascorsi 10 minuti dalla sua creazione.
1734* **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.1734* **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.
1735* **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 restano grigie, controlla la tua connessione a claude.ai.1735* **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.
1736 1736
1737#### Pre-configure SSH connections for your team1737#### Preconfigurare le connessioni SSH per il tuo team
1738 1738
1739Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).1739Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).
1740 1740
1741* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore di ambiente di ciascun utente.1741* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore dell'ambiente di ciascun utente.
1742* **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.1742* **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.
1743 1743
1744L'esempio seguente pre-configura una singola connessione:1744L'esempio seguente preconfigura una singola connessione:
1745 1745
1746```json theme={null}1746```json theme={null}
1747{1747{
1759 1759
1760Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.1760Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.
1761 1761
1762Se ometti `user@` da `sshHost`, Desktop si connette come lo `User` che il file `~/.ssh/config` di ciascuno sviluppatore imposta per l'host, oppure, in mancanza di questo, con il nome utente dello sviluppatore sul proprio computer.1762Se 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.
1763 1763
1764#### Restrict which SSH hosts users can connect to1764#### Limitare gli host SSH a cui gli utenti possono connettersi
1765 1765
1766Gli 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 impostato, gli utenti possono connettersi solo a host il cui nome host risolto corrisponde a uno dei modelli. Impostalo su un array vuoto per disabilitare 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 presenti in altre fonti gestite.1766Gli 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.
1767 1767
1768L'esempio seguente consente connessioni a qualsiasi host sotto `devboxes.example.com` e a un singolo host bastion denominato:1768L'esempio seguente consente le connessioni a qualsiasi host sotto `devboxes.example.com` e a un singolo bastion host specifico:
1769 1769
1770```json theme={null}1770```json theme={null}
1771{1771{
1775 1775
1776> [!WARNING]1776> [!WARNING]
1777>1777>
1778> Se la tua organizzazione distribuisce [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 dalla [fonte gestita con priorità più alta che distribuisce una chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se quella fonte lascia la chiave non impostata, Desktop ignora un elenco presente 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.1778> 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.
1779>1779>
1780> Mantieni inoltre lo stesso elenco sulla macchina di ogni utente, nella policy MDM o nel file di impostazioni gestite con priorità più alta su quella macchina. Desktop recupera le impostazioni gestite dal server all'avvio e non conserva alcuna copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.1780> 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.
1781 1781
1782I pattern non distinguono 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 sull'hostname 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.1782I 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.
1783 1783
1784`sshHostAllowlist` viene letto solo dalle impostazioni gestite; i valori nelle impostazioni utente o progetto vengono ignorati. Solo l'app Claude Desktop onora questa impostazione; la CLI Claude Code e le estensioni IDE non la leggono, e non limita i comandi `ssh` eseguiti tramite lo strumento Bash. Governa a quali host l'app Desktop si connette, non l'uscita di rete, quindi abbinalo ai controlli di rete della tua organizzazione o zero-trust se hai bisogno di un confine rigido.1784`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.
1785 1785
1786##### Consenti i jump host1786##### Consentire i jump host
1787 1787
1788Aggiungi 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 versioni successive, altrimenti non potranno connettersi tramite essi.1788Aggiungi 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.
1789 1789
1790> [!WARNING]1790> [!WARNING]
1791>1791>
1792> 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.1792> 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.
1793 1793
1794Desktop controlla i jump host nel `ProxyJump` che il file `~/.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 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 riportano l'`HostName` di quel jump host, che è il nome da aggiungere:1794Desktop 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:
1795 1795
1796```text theme={null}1796```text theme={null}
1797SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".1797SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".
1798```1798```
1799 1799
1800Se il messaggio dice `managed settings on this computer`, aggiungi il nome all'elenco sul computer dell'utente. Se manca più di un jump host, l'errore li indica uno alla volta. Per trovare tutti i nomi prima che gli utenti aggiornino, usa un terminale sul computer di un utente:1800Se il messaggio riporta `managed settings on this computer`, aggiungi il nome all'elenco sul computer dell'utente. Se manca più di un jump host, l'errore li indica uno alla volta. Per trovare tutti i nomi prima che gli utenti aggiornino, usa un terminale sul computer di un utente:
1801 1801
1802**1. Trova il percorso**1802**1. Trova il percorso**
1803 1803
1804Esegui `ssh -G` con un host a cui gli utenti si connettono, ad esempio `ssh -G devbox`. Cerca una riga `proxyjump`, oppure una riga `proxycommand` scritta come `ssh -W %h:%p <host>`. Il comando vale 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.1804Esegui `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.
1805 1805
1806**2. Cerca ogni jump host**1806**2. Cerca ogni jump host**
1807 1807
1808Esegui `ssh -G` con ogni jump host su quella riga, senza alcun `:port`, e annota l'`hostname` che stampa. Se l'output del 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.1808Esegui `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.
1809 1809
1810**3. Aggiungi i nomi**1810**3. Aggiungi i nomi**
1811 1811
1812Aggiungi ogni hostname, o un carattere jolly che lo copra, a `sshHostAllowlist` in ogni origine gestita in cui imposti un elenco. Poi chiedi agli utenti di chiudere e riaprire Desktop, perché recupera le impostazioni gestite dal server all'avvio.1812Aggiungi ogni nome host, o un carattere jolly che lo copra, a `sshHostAllowlist` in ogni origine gestita in cui imposti un elenco. Poi chiedi agli utenti di chiudere e riaprire Desktop, perché recupera le impostazioni gestite dal server all'avvio.
1813 1813
1814#### Disattivare le sessioni locali e distribuire connessioni SSH1814#### Disattivare le sessioni locali e distribuire le connessioni SSH
1815 1815
1816Per disattivare le sessioni locali e limitare le sessioni SSH agli host che scegli, distribuisci insieme [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to).1816Per disattivare le sessioni locali e limitare le sessioni SSH agli host che scegli, distribuisci insieme [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to).
1817 1817
1818> [!NOTE]1818> [!NOTE]
1819>1819>
1820> Questa configurazione è pensata 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.1820> 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.
1821 1821
1822L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:1822L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:
1823 1823
1838Le chiavi si applicano all'app desktop. Lasciano invariati gli altri modi di eseguire Claude Code, come la CLI, Cowork e le sessioni cloud:1838Le chiavi si applicano all'app desktop. Lasciano invariati gli altri modi di eseguire Claude Code, come la CLI, Cowork e le sessioni cloud:
1839 1839
1840* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer1840* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer
1841* **Cowork**: nessuna delle chiavi si applica alle sessioni [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork1841* **Cowork**: nessuna delle chiavi si applica alle sessioni di [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork
1842* **Sessioni cloud**: nessuna delle chiavi cambia la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Admin console controls](#admin-console-controls).1842* **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).
1843 1843
1844Quando adatti l'esempio, controlla i nomi host, la versione di Desktop e i permessi del file:1844Quando adatti l'esempio, verifica i nomi host, la versione di Desktop e i permessi del file:
1845 1845
1846* **Hostname**: assicurati che un pattern in `sshHostAllowlist` corrisponda all'hostname di ogni voce di `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non potranno connettersi. Aggiungi anche un pattern che corrisponda a ogni [jump host](#allow-jump-hosts) che Desktop controlla lungo il percorso. Per sapere come Desktop confronta un hostname, consulta [Limita gli host SSH a cui gli utenti possono connettersi](#restrict-which-ssh-hosts-users-can-connect-to).1846* **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).
1847* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versioni successive1847* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versione successiva
1848* **Permessi del file**: assicurati che l'account di ogni sviluppatore sul computer possa leggere il file di impostazioni gestite. Desktop non applica le chiavi presenti 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).1848* **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).
1849 1849
1850Inserisci le tre chiavi in un'unica [fonte gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), quella con priorità più alta tra quelle che distribuisci. Se distribuisci [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 priorità più alta su ciascun computer. Desktop recupera le impostazioni gestite dal server all'avvio e la copia sul computer si applica finché un recupero non riesce.1850Inserisci 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.
1851 1851
1852Per verificare che le impostazioni vengano applicate, controlla il computer di uno sviluppatore:1852Per confermare che le impostazioni sono applicate, controlla il computer di uno sviluppatore:
1853 1853
1854**1. Controlla il selettore di ambiente**1854**1. Controlla il selettore dell'ambiente**
1855 1855
1856Chiudi e riapri Desktop, poi apri il [selettore di ambiente](#start-a-session). Le impostazioni sono applicate se mostra:1856Chiudi e riapri Desktop, poi apri il [selettore dell'ambiente](#start-a-session). Le impostazioni sono applicate se mostra:
1857 1857
1858* La voce relativa a quel computer, in grigio1858* La voce per quel computer, in grigio
1859* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.1859* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.
1860 1860
1861Se la voce relativa al computer è ancora disponibile, verifica queste cause:1861Se la voce per il computer è ancora disponibile, verifica queste cause:
1862 1862
1863* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.1863* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.
1864* **File delle impostazioni gestite**: assicurati che il file sia un JSON valido.1864* **File di impostazioni gestite**: assicurati che il file sia JSON valido.
1865* **Fonte gestita**: assicurati che il computer legga la [fonte gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) che contiene le chiavi.1865* **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.
1866 1866
1867**2. Aggiungi un host che non è nell'allowlist**1867**2. Aggiungi un host che non è nell'allowlist**
1868 1868
1869[Aggiungi una connessione SSH](#ssh-sessions) con un hostname 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.1869[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.
1870 1870
1871## Configurazione aziendale1871## Configurazione aziendale
1872 1872
2122 2122
2123### Verifica quale layout hai2123### Verifica quale layout hai
2124 2124
2125Se una nuova sessione non ha il [selettore dell'ambiente](#start-a-session) sotto la casella del prompt, hai il layout precedente:2125Se una nuova sessione mostra l'[ambiente](#start-a-session) sopra la casella del prompt anziché sotto, hai il layout precedente:
2126 2126
2127* **[Desktop precedente alla v2.37337.0](#check-your-version)**: aggiorna per ottenere il layout attuale. Seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows.2127* **[Desktop precedente alla v2.37337.0](#check-your-version)**: aggiorna per ottenere il layout attuale. Seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows.
2128* **[Provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) con sessioni sul tuo computer**: il layout attuale richiede Claude Desktop v3.1623.0 o successiva, quindi [verifica la tua versione](#check-your-version). Per aggiornare, seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows. Se la tua organizzazione [disattiva gli aggiornamenti automatici](#device-management-policies), **Check for Updates…** è nascosto, quindi chiedi al tuo amministratore la v3.1623.0 o successiva.2128* **[Provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) con sessioni sul tuo computer**: il layout attuale richiede Claude Desktop v3.1623.0 o successiva, quindi [verifica la tua versione](#check-your-version). Per aggiornare, seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows. Se la tua organizzazione [disattiva gli aggiornamenti automatici](#device-management-policies), **Check for Updates…** è nascosto, quindi chiedi al tuo amministratore la v3.1623.0 o successiva.
2129* **Provider di terze parti con sessioni sull'infrastruttura della tua organizzazione**: quando la tua organizzazione esegue le sessioni sulla propria infrastruttura anziché sul tuo computer, Desktop mantiene il layout precedente e l'aggiornamento non cambia il layout. Se non sai dove vengono eseguite le tue sessioni, chiedi al tuo amministratore.2129* **Provider di terze parti con sessioni sull'infrastruttura della tua organizzazione**: il layout attuale richiede Claude Desktop v4.29.0 o successiva, quindi [verifica la tua versione](#check-your-version). Se hai una versione precedente, chiedi al tuo amministratore la v4.29.0 o successiva. Se non sai dove vengono eseguite le tue sessioni, chiedi al tuo amministratore.
2130 2130
2131Nel layout precedente, scegli l'ambiente e la cartella del progetto sopra la casella del prompt, e la modalità di permesso e il modello nella riga sottostante. Il layout precedente non dispone del [pannello dei dettagli della sessione](#see-session-details) e degli [ambienti locali e SSH salvati](#create-a-saved-environment).2131Nel layout precedente, scegli l'ambiente ed eventuali cartelle del progetto o repository sopra la casella del prompt, e la modalità di permesso e il modello nella riga sottostante. Il layout precedente non dispone del [pannello dei dettagli della sessione](#see-session-details) e degli [ambienti locali e SSH salvati](#create-a-saved-environment).
2132 2132
2133### 403 or authentication errors in the Code tab2133### 403 or authentication errors in the Code tab
2134 2134