SSH e PowerShell
Come il runner si collega agli host Linux e Windows, e come prepararli.
Ogni host viene raggiunto via SSH dal runner. Il sistema dell'host, impostato in Amministrazione → Host, decide la shell: Linux esegue i comandi nella shell POSIX dell'account, Windows li esegue in PowerShell.
Preparare un host Linux
Va bene qualsiasi server con un demone SSH. Crea o scegli l'account che ogni persona userà, con i diritti minimi che bastano per il lavoro, e consentigli l'accesso con password o con chiave.
Per una chiave, aggiungi la chiave pubblica al file ~/.ssh/authorized_keys dell'account sul server, e salva la chiave privata in Orlok come credenziale della persona.
Preparare un host Windows
Gli host Windows hanno bisogno del server OpenSSH, integrato in Windows Server 2019 e successivi e in Windows 10 e 11. In un PowerShell da amministratore:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Il programma di installazione apre la porta 22 in Windows Firewall. Orlok funziona sia che la shell SSH predefinita del server sia cmd.exe sia che sia PowerShell: ogni comando viene inviato a powershell -NoProfile -NonInteractive -EncodedCommand, quindi nessun livello di quoting può modificarlo.
Su Windows le chiavi degli amministratori stanno altrove. Per un account nel gruppo locale Administrators, OpenSSH legge le chiavi pubbliche da
C:\ProgramData\ssh\administrators_authorized_keys, non dal profilo dell'utente. Quel file deve essere leggibile solo da Administrators e SYSTEM.
Credenziali
Ogni persona salva la propria credenziale per un host in Account → Credenziali:
- una password, con il suo nome utente;
- oppure una chiave SSH, con il suo nome utente e, se la chiave ne ha una, la sua passphrase.
Una credenziale viene provata sui suoi host appena viene salvata. Vedi Credenziali.
Come si collega il runner
- La chiave host diventa attendibile alla prima connessione che riesce a entrare e da lì in poi viene imposta. Orlok preferisce una chiave Ed25519, poi ECDSA, poi RSA.
- Una connessione rinuncia dopo 10 secondi se l'host non risponde.
- L'inoltro dell'agent, X11 e il port forwarding sono disattivati. Viene offerta solo la credenziale salvata in Orlok: nessun'altra chiave e nessun agent.
- Con una password, Orlok la prova una volta sola. Una password sbagliata fallisce subito invece di essere richiesta di nuovo.
Comandi su Windows
Su un host Windows il collega scrive in PowerShell. Un comando riesce quando PowerShell segnala il successo; altrimenti il job fallisce con il codice di uscita del programma, o con 1. Le barre di avanzamento sono disattivate, così l'output resta leggibile.
Cosa parte senza chiedere in modalità Chiedi è elencato in Modalità: ogni cmdlet Get-*, gli strumenti per la pipeline come Where-Object e Select-Object, e i programmi classici come ipconfig e systeminfo. Le righe che usano variabili, foreach, try o metodi .NET si possono approvare solo una volta.