在 Windows 伺服器上配置 Cygwin

安裝 Cygwin 之後,您必須配置 CYGWIN sshd 以自動服務的方式執行,啟動該服務,及更新 Cygwin 環境使用者帳戶和群組,讓使用者能夠登入 Windows 系統上的遠端伺服器。

程序

若要配置 Cygwin 環境與工作台一起正確運作,請完成下列步驟:

  1. 我的電腦上按一下滑鼠右鍵,再按一下內容 > 進階 > 環境變數,以修改 PATH 變數及建立新的環境變數。在 User 或 System 變數區段中(如果使用本電腦的任何帳戶可以使用 Cygwin,則使用 System 變數),執行下列動作:
    1. 選取 PATH 變數,按一下編輯,並將 ;c:cygwin\bin 附加至現存的變數字串結尾。
    2. 按一下新增,以新增一個稱為 CYGWIN 的環境變數。 在變數名稱文字框中輸入 CYGWIN,並在變數值文字框中輸入 binmode tty ntsec
    3. 按一下確定來儲存變更,直到我的電腦視窗關閉為止。
  2. 啟動 Cygwin。如果您安裝 Cygwin 時有建立捷徑,則您可以按兩下桌面上的捷徑。 指令視窗即會開啟。
  3. 在 $ 提示之後鍵入 ssh-host-config,以執行 ssh-host-config 指令。

    依預設,當使用 OpenSSH 3.3 或更新版本時,專用權分隔是設定為 Yes。您必須對專用權分隔選項指定 No,並設定該服務容許使用 sshd-server 帳戶的公開金鑰鑑別。

    回應如下所示的提示:

    1. 當詢問您查詢:應否使用專用權分隔?時,請輸入 no
    2. 當詢問您查詢:您是否要將 sshd 安裝成為一項服務?時,請根據您的環境輸入適當的回應:
      • 輸入 yes 即將 sshd 安裝成為一項服務。
      • 如果 sshd 已安裝成為一項服務,則輸入 no
    3. 當詢問您查詢:對常駐程式輸入 CYGWIN 的值:[ntsec] 時,請輸入 ntsec tty
  4. 啟動 sshd 服務。在 Windows 命令提示字元中,鍵入 net start sshd,或在 bash 提示下,鍵入 cygrunsrv -start sshd 若要驗證 sshd 服務是否在執行,您可以鍵入 ps –a,並檢查 /usr/sbin/sshd 是否在執行中程序的清單中,或者,您可以按一下控制台 > 系統管理工具 > 控制服務,以執行這項檢查。

    若要停止此服務,請在 Windows 命令提示字元中,鍵入 net stop sshd。 另外,您也可以切換到 C:\cygwin\bin 目錄(或開啟 bash shell),並鍵入 cygrunsrv -stop sshd

  5. 啟動該服務之後,從 bash 提示下輸入下列資訊來測試該服務: ssh localhost -l your_username。如果通知您,本端主機的確實性不成立,並詢問您確定要繼續連接嗎?,請輸入 yes。 當提示您輸入本端主機的帳戶密碼時,請輸入您在登入該電腦時使用的密碼。
  6. 建立能夠登入該電腦的帳戶:
    1. 先建立 Windows 帳戶。 按一下開始 > 設定 > 控制台 > 使用者帳戶。使每一個使用者成為 Administrator 群組的成員。 在建立相對應的 Cygwin 帳戶之前,對於您想要新增的每一個使用者完成此步驟。
    2. 製作 /etc/passwd 檔案的備份副本。
    3. 使 Cygwin 環境使用者帳戶與作業系統使用者儲存庫同步化。 執行下列指令:mkpasswd -l > /etc/passwd
    4. 當使用者和群組在 Cygwin 環境中同步化之後,停止並啟動 sshd 服務 唯有當 sshd 服務重新啟動,讓使用者的帳戶能夠被辨識,該服務才會讀取 /etc/passwd。
    5. 如果您需要建立帳戶群組,請先建立 Windows 群組。然後,將 Cygwin 使用者群組同步化。建立 Windows 群組之後,請執行下列指令:mkgroup -l > /etc/passwd 當您新增群組時,也需要停止及啟動 sshd 服務,才能辨識新群組。
  7. 驗證 Cygwin sshd 服務已新增成為自動啟動的服務。 若要完成此驗證,請按一下開始 > 設定 > 控制台 > 系統管理工具 > 服務

讀者意見