Home > i.t. > 在 Windows XP 使用 Cygwin 建置 sshd

在 Windows XP 使用 Cygwin 建置 sshd

November 8th, 2007

目的: 讓 Windows 成為 sshd server, 作為 ssh tunnel 運用

  • 在 Cygwin 設置 sshd service
    • 變更 sshd 埠號
    • 建立 ssh 認證金鑰免密碼登入
  • 在 Cygwin 設置 squid proxy server
    • 修正 Too many open files 問題
    • 以系統服務方式啟動 squid
  • 讓 Cygwin 顯示中文

安裝 Cygwin

http://www.cygwin.com/ 下載並安裝 Cygwin 於 c:\cygwin

  • 建立 c:\cygwin 目錄
  • 將 setup.exe 置入 c:\cygwin
  • 執行 setup.exe
  • Choose A Download Source → Install from Internet
  • Select Root Install Directory → c:\cygwin
    Install For → All Users
    Default Text File Type → Unix / binary
  • Select Local Package Directory → Local Package Directory: c:\cygwin
  • Select Your Internet Connection → Direct Connection
  • Choose A Download Site → ftp://ftp.nctu.edu.tw 或 ftp://ftp.ntu.edu.tw

本篇所使用的 Package:

  • Admin → cygrunsrv
  • Net → openssh
  • Web → squid

設置 sshd service

啟用 sshd

ssh-host-config

Should privilege separation be used? (yes/no) no
Do you want to install sshd as service? (yes/no) yes
CYGWIN= (直接按 Enter 鍵接受預設值 "ntsec")

cygrunsrv –start sshd 啟動 sshd 服務

將 sshd 預設 tcp 22 port 變更成其他埠號的方法

cd /etc
notepad sshd_config → 將 Port 22 改成 Port 80
cygrunsrv –stop sshd && cygrunsrv –start sshd 重新啟動 sshd service

若 /etc/sshd_config 的 owner 是 system, 須先變更 owner: chown $USER sshd_config 才能編輯 sshd_config. 修改完後記得將 owner 回復為 system: chown system sshd_config, 最後再重新啟動 sshd service 即可

調整 Windows 防火牆設定

控制台 → Windows 防火牆 → 例外 → 新增連接埠

名稱: cygwin-sshd (或其他自己喜歡的名稱), 連接埠編號: 22 (TCP) (若已改成 80 port, 就填入 80)

如要限制連入 sshd 的來源 IP, 可另外加裝 tcp_wrappers package (在 Net 類別裡)

以 ssh 認證金鑰進行連線

適用情況:

  1. 連線時不想輸入密碼
  2. 安裝 Cygwin 的那台電腦, Windows 帳號沒有密碼

ssh-keygen -t rsa 過程皆按 Enter (ssh-user-config 亦可建立金鑰)
cd ~/.ssh
mv id_rsa.pub authorized_keys 將 public key 更名為 authorized_key

將 id_rsa (private key) 複製到想以 ssh 連入 Cygwin 的電腦 (client), 使用 puttygen.exe 將 id_rsa 轉成 PuTTY Private Key File:

  • 執行 puttygen.exe
  • 點選 File → Load private key (剛剛的 id_rsa 檔案)
  • 載入後點選 Save private key, 另存成副檔名為 .ppk 的檔案

Client 使用 PuTTY, 以 ssh protocol 連入 Cygwin sshd 時, 點選 Connection → SSH → Auth → Private key file for authentication: Browser 載入剛剛存好的 .ppk 檔, 再進行 ssh 連線, 輸入帳號後即可登入.

也就是說, Cygwin + sshd 這台電腦 (server), 保留 public key 在 $HOME/.ssh/authorized_key
其他想使用 PuTTY 以 ssh 連入 Cygwin + sshd 的電腦 (client), 連線時載入 .ppk (private key) 檔案

為 Cygwin 帳號設置密碼

passwd

  • 效用等同在控制台設定 Windows 使用者密碼
  • 密碼設置後, 下次開機進入 Windows 時, 系統會詢問密碼
  • 若想開機直接登入桌面, 請參考: 關於 Windows XP 的三個備忘
  • 若已完成直接登入的設置, 但又變更密碼時的處理:
    1. 密碼變更後, 立即執行 control userpasswords2 (Win 2000 沒有最後的 "2")
    2. 先勾選「必須輸入使用者名稱和密碼,才能使用這台電腦」
    3. 再點選預設登入帳號
    4. 最後再取消勾選「必須輸入使用者名稱和密碼,才能使用這台電腦」
    5. 按「確定」後, 系統就會再詢問一次密碼, 此時輸入剛剛變更的密碼即可

转载自http://cha.homeip.net/blog/archives/2006/04/_winxp_cygwin_s.html

webflier i.t.

  1. No comments yet.
  1. No trackbacks yet.