一.問題:
一般情況大家到是linux做服務器,比較多的文章說過了,我是需要在window下面做服務器,linux訪問,因爲開發機器是window:-),我測試過window版本的openssh不好用,不知道是不會配置還是什麼,沒有成功.
二.過程:
1.window安裝cygwin
注意選擇Admin->cygrunsrv用做啓動服務功能,openssh服務需要
2.安裝ssh
安裝net->openssh
3.安裝Devel->cvs
三.配置
ssh-host-config -y
提示CYGWIN=輸入 ntsec
cygrunsrv -S sshd
四.測試
ssh localhost
注意就是sshd的cygwin1.dll只能夠有一份(c:/winnt/system32和C:/cygwin/bin),否則不能夠啓動服務,特別 容易出現在多次安裝的情況.
4.key認證
window的key認證
使用putty的puttygen產生key文件。
注意把窗口的內容copy到authorized_keys2,注意是每個Key一行的格式!
把文件authorized_keys2放置到cygwin的$HOME/.ssh目錄,或者添加到linux服務器的$HOME/.ssh目錄的authorized_keys2(就可以實現登陸linux的ssh服務了)
使用pageant.exe加載私Key,這樣後續使用無須密碼
linux的認證
必須使用linux帶的openssh產生一對key,使用putty的不行
添加公共key到cygwin的$HOME/.ssh目錄的authorized_keys2中,注意格式是每個Key一行。
五.服務器建立源碼倉庫
使用winCVS的remote->Create a new repository...
在general裏面:
authentication:選擇local
path:自己選
確定就可以了
六.winCVS設置
先使用pageant.exe加載私Key
admin->preferences->General
authentication選擇ssh
設置ssh:SSH client選擇,同時指定爲putty的工具plink.exe
path輸入:/cygdrive/c/cvsroot注意/cygdrive一定要/c/cvsroot表示c:/cvsroot,就是之前的cvs倉庫路徑
輸入服務器地址/用戶
確定
已經可以正常使用了
七.cygwin的用戶帳號問題
設置用戶
通過將 CYGWIN 系統變量定義爲 ntsec
,這就可以讓 Cygwin 使用 NT 安全性來管理登錄。但是,爲了使 sshd
能夠接受登錄,需要一個 passwd
文件。這可用以下代碼完成:
|
請確保每次創建或刪除用戶時都再次運行這些命令 — 否則將不能與 Windows 保持同步。此外,將需要重新啓動 Cygwin sshd
服務以使它讀入新的 passwd
文件。
仔細檢查以確保 passwd 文件包含每個用戶的主目錄。否則當用戶試圖通過 OpenSSH 隧道運行命令時,OpenSSH 將報告無法切換至用戶的主目錄。這是最讓人討厭的事。
注:mkpasswd
命令將用戶 Guest 插入 passwd
文件。我將其刪除,以消除一個潛在的安全性問題。