在 Windows 上正確設定 OpenSSH Server 和 Guacamole SFTP

前情提要

我最近有遇到一個問題就是我 Windows 10 要使用 share devices 然後給外包廠商上傳檔案在 Guacamole 那麼我知道 Guacamole 有 SFTP 的服務可以串接讓外包廠商上傳檔案,但是中間一直連線失敗有點弄到快爆氣哈哈哈...,但是後面發現滿蠢的哈哈哈哈,廢話不多說開始吧。

圖 1. : Blog Image

Windows 10 / Windows Server 2019 安裝內建的 OpenSSH 工具

  1. 可以先用以下指令確認有哪些內建的 OpenSSH 工具

    1
    Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

    • 輸出內容 :

      1
      2
      3
      4
      5
      Name  : OpenSSH.Client~~~~0.0.1.0
      State : Installed

      Name : OpenSSH.Server~~~~0.0.1.0
      State : Installed

  2. 安裝 OpenSSH-Client,這個預設有些是安裝的

    1
    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  3. 安裝 OpenSSH-Server,這樣的話就 Windows 就會有這個 Service

    1
    Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

  4. 可以使用 win+r 然後輸入 services.msc

    1. 檢查是否有 OpenSSH SSH Server 這個 Service

      圖 2. : 檢查 Service
    2. 然後開啟 Serivce 和調整成 Automatic,那麼有兩種啟動方式一種是 powershell 的方式,和 GUI 的方式

      1
      2
      3
      4
      5
      #啟動 sshd service
      Start-Service sshd

      # setting sshd Automatic start
      Set-Service -Name sshd -StartupType 'Automatic'

      圖 3. : 自動啟動 Service GUI
  5. 再來確定防火牆規則吧!

    1
    Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled

    • 輸出內容 :

      1
      2
      3
      Name                  Enabled
      ---- -------
      OpenSSH-Server-In-TCP True

  6. 可以先手動連線一下

    1. 先測試是否可以連線

      1
      ssh [email protected]

    2. 再來測試是否可以使用 sftp,並且確認是否有檔案到該使用者桌面

      1
      scp test.txt [email protected]:~/Desktop

Guacamole SFTP 設定

那這邊的設定及其簡單,但是讓我崩潰的點可能是我的網路太慢了,所以導致我連線的時候會一直連線不上,但是不要慌去連接一個好網路就好了,這個問題我還特別去翻了 Windows Event 看 SSH 有沒有連線成功,但是都顯示連線成功,那時候真的就通靈了哈哈哈。

  • 設定 Guacamole SFTP 那麼 hostname 當然要用自己需要遠端的 IP Address,至於我不用是因為我把它塗掉了。

    圖 4. Guacamole SFTP 設定
  • 設定成功後會按下 command + ctrl + shift + esc (mac),就會有 share devices,圖示了那麼就可以上傳檔案到這台電腦了

    圖 5. 完成圖

參考