1. 程式人生 > >Cygwin之——配置sshd服務

Cygwin之——配置sshd服務

1、以管理員身份登入

2、給檔案授權,以完成sshd 服務的安裝
$ chmod +r /etc/group
$ chmod +r /etc/passwd
$ chmod +rwx /var

2、安裝 sshd 服務
$ ssh-host-config

Query: Should privilege separation be used? (yes/no) yes
Query: (Say "no" if it is already installed as a service) (yes/no) yes
Query: Enter the value of CYGWIN for the daemon: [ntsec] ntsec
Query: Do you want to use a different name? (yes/no) no
不同版本的sshd問題不一樣,假如有其他提問自己看著辦

3、使用 windows 使用者本地認證,即使用windows 的使用者名稱和密碼登入

(這一步比較關鍵,之前按照Hadoop開發者的資料操作,沒有這個步驟,導致了我的CYGWIN sshd服務啟動不起來,老是提示“一些服務自動停止,如果他們沒什麼可做的......”)
$ mkpasswd -l > /etc/passwd
$ mkgroup -l > /etc/group   

4、啟動
$ cygrunsrv --start sshd
停止
$ cygrunsrv --stop sshd

5、客戶端登入(假設伺服器地址為192.168.1.100)

$ ssh [email protected]

常見問題:

1、Q: cygrunsrv -S sshd不能啟動,報告
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062

A: 很可能是/var/log的許可權設定不正確。首先執行 mkpasswd 和 mkgroup 重新生成許可權資訊,再刪除sshd服務,重新配置:

$ mkpasswd -l > /etc/passwd
$ mkgroup -l > /etc/group
$ cygrunsrv -R sshd
$ ssh-host-config -y
$ cygrunsrv -S sshd

2、Q: 客戶端連線時提示伺服器金鑰(ssh-rsa)不一致

A: 應該是客戶端以前連線時記錄的伺服器金鑰跟新的不一致:

在客戶端的cygwin的 /home/xxx(使用者名稱,比如Administrator)/.ssh/known_hosts檔案中找到伺服器地址所對應的一行,刪除掉,重新連線

3、Win7下Cygwin中,使用ssh localhost命令,出現Connection closed by127.0.0.1的問題

解決方案:
1)開始——執行——services.msc
2)右鍵CYGWINsshd——屬性——登入選項卡——選擇“此賬戶”——瀏覽——高階——立即查詢——選擇你的賬戶名(必須為管理員許可權)——輸入密碼(必須要有,空密碼不接受)——確定。
3)重啟CYGWINsshd服務即可。這樣就以你的賬戶的名義啟動了這個服務。然後ssh localhost成功。