解鎖macOS新姿勢:手把手教你用SSH遠程登錄,效率倍增!
我們前面簡單介紹過macOS及其簡單應用,主要包括在VMware ESXi中部署黑蘋果系統(VMware ESXi部署macOS Monterey)、在macOS上安裝iNode(MacOS用戶福音:手把手教你在新版macOS上安裝H3C iNode客戶端)等等。
在使用過程中,我發現macOS終端的操作跟Linux非常相似,那macOS是否支持SSH遠程登錄呢?我們今天就來揭開它的神秘面紗。
圖片
從命令上看,macOS可以支持一些常用的Linux命令,比如ls、df、pwd等等,雖然沒有systemctl和service命令,但是有一個sshd命令。
圖片
在之前的印象中,帶d的一般跟服務有關。從幫助命令中,我們可以看出其對應的OpenSSH版本為9.9p2,LibreSSL版本為3.3.6,既然有這個命令,那是不是已經運行SSH服務了呢?
圖片
使用netstat命令查看網絡狀態,發現沒有22端口相關的連接。那我們直接遠程探測一下。
圖片
macOS查看網卡IP地址的命令是ifconfig,不支持ip命令。可以看到,網卡的IP地址為192.168.0.108,貌似看不出來掩碼長度。
圖片
在本地進行探測,發現該地址可以ping通,但是22端口確實沒有開放,那就說明現在SSH服務應該是處于禁用狀態。
經過一番探索,我發現在系統配置中可以打開SSH遠程登錄,具體路徑為【通用->共享->高級】里面的【遠程登錄】。
圖片
我們點擊【遠程登錄】后面的詳細信息,可以看到這里的遠程登錄其實是允許遠程用戶通過SSH和SFTP訪問這臺電腦。
圖片
開啟遠程登錄之后,我們還要點擊加號將本地用戶添加進來,方便進行登錄;或者可以將【僅這些用戶】調整為【所有用戶】,雖然更方便,但存在安全隱患,不建議這么配置。
單擊【完成】使配置生效,之后,我們就可以測試服務狀態了。
圖片
現在的22端口已經開放了,我們再遠程連接一下。
圖片
可以看到,使用MobaXterm進行連接時,可以同時連接到SSH和SFTP,現在查看netstat也有連接信息了。不過,局域網內的主機都不顯示IP地址,Mac主機和遠程主機都顯示為bogon,貌似有點不太方便。
或者,我們可以改變一下netstat的展示。默認情況下,netstat對于活動套接字的本地和遠程地址的地址格式為“host.port”或“network.port”,如果是已知名稱或協議,則分別根據數據庫/etc/hosts和/etc/networks象征性地顯示主機和網絡地址。對于未知的地址,或者指定了-n選項,才會根據地址族以數字形式打印地址。
也就是說,我們可以使用-n選項,將網絡地址顯示為數字。
圖片
但這么做的結果就是ssh協議也不再展示了,我們需要匹配22端口才行。而且這里的grep也不能直接匹配“.22”字符,正所謂“失之毫厘,謬以千里”,因為在正則表達式中,點號(.)作為元字符,默認會匹配任意單個字符,我們需要使用反斜杠(\)來轉義。
netstat -n |grep '\.22'
netstat -n |grep "\.22"
圖片
不過這樣用起來就麻煩了不少,具體怎么用看個人需求吧。
到這里,我們就能跟使用Linux一樣,通過SSH遠程登錄macOS并使用SFTP進行文件管理了,“運籌帷幄之中,決勝于千里之外”便可在我們的Mac上輕松實現了。不知各位讀者還能發掘出哪些妙用?




















