Så här aktiverar du SSH på en Mac från kommandoraden

Alla moderna Mac-datorer med MacOS eller Mac OS X levereras med SSH förinstallerad som standard, men SSH (Secure Shell) -demonen är också inaktiverad som standard. Avancerade Mac-användare kan uppskatta att man vet att möjligheten att aktivera SSH och inaktivera SSH båda är tillgängliga helt från kommandoraden i Mac OS, vilket möjliggör ett enkelt sätt att tillåta eller förhindra fjärranslutningar till en dator. Det finns ingen kext-laddning, nedladdningar eller kompilering som krävs, för att aktivera SSH från terminalen på vilken Mac som helst måste du enkelt utföra ett systeminställningskommando, vilket vi kommer att visa i den här handledningen.


En snabb sida notering; den här guiden gäller alla versioner av MacOS och Mac OS X, men riktar sig riktigt mot mer avancerade användare som spenderar mycket tid i terminalen. Om du vill byta SSH av och på och undvika kommandoraden kan du göra det genom att aktivera fjärrloggning i panelen Delningsinställningar på en Mac eller stoppa servern genom att lämna den avmarkerad. Om du inte använder ssh regelbundet, finns det ingen anledning att aktivera ssh-servern på en Mac.

Så här kontrollerar du om SSH Remote Login är aktiverad i Mac OS via Terminal

Vill du kolla SSHs nuvarande status på en Mac? Genom att använda kommandosträngen systemetup kan vi snabbt avgöra om SSH och Remote Login för närvarande är aktiverad på vilken Mac som helst:

sudo systemsetup -getremotelogin

Om fjärrloggning och SSH är aktiverad kommer kommandot och rapporten att säga "Fjärrlogg: På", medan om SSH är inaktiverat och i standardmacOS-läget, kommer det att säga "Fjärrlogg: Av".

Aktivera SSH på Mac från kommandoraden med systemsetup

För att snabbt slå på SSH-servern och tillåta inkommande ssh-anslutningar till den aktuella Macen använder du -setremotelogin-flaggan med systemuppsättning som så:

sudo systemsetup -setremotelogin on

sudo är nödvändigt eftersom systemetup-kommandot kräver administratörsbehörigheter, precis som när du aktiverar fjärrloggning från delningsinställningarna på en Mac för att aktivera de säkra skalservrarna.

Det finns ingen bekräftelse eller ett meddelande om att fjärrloggning och SSH har aktiverats, men du kan använda den ovan nämnda flaggan för att markera och verifiera att SSH-servern verkligen körs. Och ja, med -setremotelogin gäller för att möjliggöra både ssh och sftp-servrar på Mac.

När ssh har aktiverats kan ett användarkonto eller en person som har en inloggning på den nuvarande Macen få åtkomst till det på distans med ssh-kommandot riktat till Macs IP-adress som så:

ssh [email protected]

När du är ansluten kommer användaren att ha fjärråtkomst till datorn via kommandoraden, och om de har ett administratorkonto eller administratörslösenord, skulle de också ha full fjärråtkomståtkomst.

Stäng av SSH på Mac OS med systemuppsättning

Om du vill inaktivera SSH-servrar från kommandoraden och därigenom förhindra fjärranslutningar, slår du enkelt på "av" till "av" med -setremotelogin-flaggan i systemuppsättningen som så:

sudo systemsetup -setremotelogin off

Återigen är sudo nödvändigt för att stänga av SSH och inaktivera ssh- och sftp-servrarna.

När du kör kommandot framgångsrikt kommer du att bli frågad: "Vill du verkligen stänga av fjärrloggning? Om du gör det kommer du att förlora den här anslutningen och kan bara slå tillbaka den lokalt på servern (ja / nej)? " Skriv så" ja "för att bekräfta, vilket kommer att inaktivera SSH och koppla bort alla aktiva SSH-anslutningar till Mac i fråga. Om du vill undvika att skriva ja / nej, kanske för att inkluderas i ett installationsskript eller på annat sätt kan du använda -f-flaggan för att kringgå frågan så här:

sudo systemsetup -f -setremotelogin off

På samma sätt kan du också använda -f för att hoppa över några anvisningar när det gäller att aktivera SSH också.

systemsetup -f -setremotelogin on

Observera att om du stänger av SSH eller aktiverar SSH från kommandoraden, justeras inställningspanelens inställning för fjärrinsloggningssystemet i Mac OS X GUI för att återspegla ändringen i enlighet med detta.