====== Sessioni SSH da Visual Studio Code ====== [[https://code.visualstudio.com|Visual Studio Code]] o VSC è un ambiente di sviluppo integrato (IDE o Integrated Development Environment) sviluppato e mantenuto da Microsoft e rilasciato sotto licenza MIT (quindi gratuito). VSC permette di lavorare usando un server remoto. Questo grazie ad una connessione SSH ed ad un mini vscode-server che viene installato nella \${HOME}/.vscode-server e che "rimane in contatto" con il client in esecuzione sul PC grazie ad un socket linux definito in una sotto-directory di \${HOME}/.vscode-server ===== Preparazione ambiente Linux AFS ===== Siccome le \${HOME} degli utenti nei server della sezione INFN di Lecce sono su OpenAFS, nel cui spazio non è possibile creare files di tipo socket, per poter usare VSC con connessioni SSH verso i nostri server è necessario far puntare \${HOME}/.vscode-server ad una directory su filesystem Linux - rinominare, se esiste, \${HOME}/.vscode-server in \${HOME}/.vscode-server-backup - creare una apposita directory in /tmp (mkdir -p /tmp/\${UID}/vscode-server) - creare un link simbolico (ln -s \${HOME}/.vscode-server /tmp/\${UID}/vscode-server) ===== Configurazione SSH (jump host) ===== Tutti i server Linux della sezione INFN di Lecce sono accessibili via SSH solo dalla LAN o dal bastion che coincide con il server di login pubblica login.le.infn.it. E' possibile configurare il client SSH in modo che effettui in modo trasparente un "salto" sul bastion e quindi l'accesso al server interno di interesse. Ecco un esempio del file di configurazione del client SSH $HOME/.ssh/config (su client unix-like come Linux o macOS) Host lecce-hop User enrico HostName login.le.infn.it Port 22 IdentityFile ~/.ssh/id_rsa IPQoS lowdelay throughput Host gpu-vscode HostName gpu-0.le.infn.it User enrico Port 22 ProxyJump lecce-hop KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 GSSAPIAuthentication yes GSSAPIDelegateCredentials yes IdentityFile ~/.ssh/id_rsa IPQoS lowdelay throughput ===== Sessione SSH remota ===== Su VSC aprire una sessione SSH remota selezionando come host gpu-vscode (se definito come nell'esempio)