小試了在 Windows Server 2016 執行 OpenSSH 伺服器,憑印象找到保哥這篇:如何在 Windows 正確的安裝與設定 OpenSSH Server 服務,當時是 8.6 版,需下載 ZIP 解壓複製,安裝設定步驟有點繁瑣。時至今日,Win32-OpenSSH 已更新到 9.2 版,從 8.9 版起已有提供 .msi 安裝檔,基本上已是無腦安裝啟用。

Win32-OpenSSH Github 專案發佈區下載最新版安裝檔,檔案有數位簽章,算是微軟官方版本:

安裝程式沒有選項要輸入,程式還一閃而逝,害我搞不清楚是裝完還是當掉,直到用 PowerShell Test-NetConnection 測試 22 Port 有通 (延伸閱讀:Windows 測試 TCP 連線,比 Telnet 更好的方法),這才確認不是閃退。(結束照例應顯示完成訊息再按確定才 Friendly,這安裝程式有點草率啊)

電腦管理/服務清單可以看到 OpenSSH SSH Server 及 OpenSSH Authentication Agent,且已在執行中:

防火牆也一併設定好了,但這裡有個眉角。開放範圍預設為私人(Private)網路位置,可能需視實際狀況調整,像我的網路位置是網域(Domain),手動修正才打通:
參考: 【笨問題】Windows 的網路位置(公用、私人、網域)與防火牆

從遠端使用 ssh CLI 工具順利連上 Windows OpenSSH 伺服器:(註:ssh CLI 可在 Cmder 或 Git for Windows 找到,或者 C:\Program Files\OpenSSH 目錄也有 ssh、sftp、scp 等 CLI 工具程式)

登入後會進入命令提示字元(CMD.EXE)環境,工作目錄預設為 C:\Users\使用者 目錄:

除了 ssh,也可用 scp CLI 上傳檔案,用法跟 Linux 差不多,主要差在路徑要寫成 /C:/Users/....

就這樣,原以為要大費周章,沒想到沒花什麼力氣就搞定,收工。

補充:由於 OpenSSH 伺服器允許遠端自由操作主機,應用上需強化安全防護,可考慮採用防火牆限定特定 IP 連線、平日不啟動服務用完立刻關閉... 等管理策略,降低風險。


Comments

# by Anonymous

這句會不會太多餘了? 雲端運算幾萬台 Linux 每天開 22 給人家踹密碼也不會有事啊… 補充:由於 OpenSSH 伺服器允許遠端自由操作主機,應用上需強化安全防護,可考慮採用防火牆限定特定 IP 連線、平日不啟動服務用完立刻關閉... 等管理策略,降低風險。

# by Anonymous2

您的回覆才是多餘的吧 笑死 版主提醒別人有風險要小心還被說多餘

# by Jackson137

樓上留言就外行了... 為了降低風險,除了用防火牆、限制特定來源登入, 可能還會把通用的 SSH 22 port 故意改成 2222 讓攻擊者無法識別, 還有其他奇奇怪怪的方法,就是要降低攻擊的機會

# by Jeffrey

to Anonymous,儘可能減少曝露面積是資安基本心法,以 Azure 防火牆設定介面為例,若你對網際網路任意 IP 開放 3389 或 22 Port,會看到以下警示: "SSH 連接埠 22 已公開至網際網路。此作法建議僅供測試之用。若是實際執行環境,則建議使用 VPN 或私人連線。" 當然,這跟戴口罩一樣,要不要落實是個人自由。但也跟防疫一樣,當個體成為破口可能會害到群體(例如被入侵當跳板機攻擊其他目標)。

# by Anonymous

不太曉得看到一堆用微軟思維看待世界,要用什麼方式溝通 任何雲端運算,即使把 3389 / 22 改成非預設,全世界都還是知道改成什麼 所以,以作業系統和雲端運算的角度出發,要怎麼開放 3389 / 22,還是要兼顧到安全,這個就是技術了 對於雲端運算,即使是要求在開機器後 1 分鐘更改密碼,還是會被講不安全 所以在 SSH 就研發出 https://blog.darkthread.net/blog/ssh-key-auth/ 這個在 Google 雲端運算是強制,而且也是唯一方式,無法用任何方式改掉 用防火牆、限制特定來源登入、VPN、阻止特定 IP(尤其是中國大陸,他們真的很會踹)這些的確可以降低風險 但每個都要錢啊,而且很貴 甚至我今天只需要一台,然後再搞的防火牆比這台機器還要貴 一個作業系統做到只剩踹密碼的方式為資安破口 在現在這個年代,不是很基本嗎?

# by yoyo

用key或Personal Access Token比密碼更安全 現在更有Passkey免密碼的登入機制,不用再記一堆密碼了 希望台灣的政府及金融業能早日導入,加強資安技術水準 https://www.passkeys.io/

Post a comment