SSH 服務不會在新安裝的 Cygwin 1.7.15 上啟動

SSH 服務不會在新安裝的 Cygwin 1.7.15 上啟動

作業系統:Windows 7 x64
Cygwin:1.7.15-1
OpenSSH:6.0p1-1


我正在嘗試在 Windows 7 上安裝 SSH 伺服器。http://www.howtogeek.com/howto/41560/how-to-get-ssh-command-line-access-to-windows-7-using-cygwin/

問題是執行net start sshd命令後我得到以下輸出:

CYGWIN sshd 服務正在啟動。
CYGWIN sshd 服務無法啟動。

該服務沒有報告錯誤。

鍵入 NET HELPMSG 3534 可以獲得更多協助。

這是設定的完整輸出:

管理員使用者@ThisComputer ~
$ ssh 主機配置

*** 訊息:產生 /etc/ssh_host_key
*** 訊息:產生 /etc/ssh_host_rsa_key
*** 訊息:產生 /etc/ssh_host_dsa_key
*** 訊息:產生 /etc/ssh_host_ecdsa_key
*** 訊息:建立預設的 /etc/ssh_config 文件
*** 訊息:建立預設 /etc/sshd_config 文件
*** 資訊:自 OpenSSH 3.3 起,權限分離預設為 yes。
*** 資訊:但是,這需要一個名為「sshd」的非特權帳戶。
*** 資訊:有關權限分離的更多信息,請閱讀 /usr/share/doc/openssh/README.privsep。
*** 查詢:是否應該使用權限分離? (是/否)是
*** 資訊:請注意,建立新使用者需要目前帳戶具有
*** 訊息:管理員權限。如果此腳本嘗試建立
*** 查詢:新的本機帳號「sshd」? (是/否)是
*** 資訊:更新 /etc/sshd_config 文件

*** 查詢:您要將 sshd 安裝為服務嗎?
*** 查詢:(如果已作為服務安裝,請說「否」)(是/否)是
*** 查詢:輸入守護程式的 CYGWIN 值:[]
*** 資訊:在 Windows Server 2003、Windows Vista 及更高版本上,
*** 資訊:SYSTEM 帳號無法將uid 設定為其他使用者-一種功能
*** 訊息:sshd 需要。您需要擁有或創建一個特權
*** 資訊:帳戶。該腳本將幫助您做到這一點。

*** 資訊:您似乎正在執行 Windows XP 64 位元、Windows 2003 Server、
*** 訊息:或稍後。在這些系統上,無法使用 LocalSystem
*** 資訊:無需註冊即可更改使用者 ID 的服務帳戶
*** 資訊:明確密碼(例如無密碼登入[例如公鑰
*** 資訊:透過 sshd 進行身份驗證)。

*** 訊息:如果您想啟用該功能,則需要建立
*** 資訊:具有特殊權限的新帳戶(除非類似帳戶
*** 訊息:已存在)。然後該帳戶用於運行這些特殊的
*** 資訊:伺服器。

*** 資訊:請注意,建立新使用者需要目前帳戶
*** 資訊:本身俱有管理員權限。

*** 資訊:找不到特權帳戶。

*** 資訊:此腳本計畫使用「cyg_server」。
*** 資訊:「cyg_server」僅由註冊服務使用。
*** 查詢:您想使用不同的名稱嗎? (是/否)否
*** 查詢:建立新的特權使用者帳號「cyg_server」? (是/否)是
*** 資訊:請輸入新使用者 cyg_server 的密碼。請務必
*** 訊息:該密碼符合您系統上給予的密碼規則。
*** 訊息:不輸入密碼將退出設定。
*** 查詢: 請輸入密碼:
*** 查詢: 重新輸入:

*** 資訊:已使用密碼「[CENSORED]」建立使用者「cyg_server」。
***訊息:如果您更改密碼,請記住同時更改
*** 資訊:正在使用(或即將使用)的已安裝服務的密碼
*** 資訊:「cyg_server」帳戶。

*** 資訊:也請記住,使用者「cyg_server」需要讀取權限
*** 資訊:關於所有作為「cyg_server」運作的服務的使用者的相關文件。
*** 資訊:特別是對於 sshd 伺服器,所有使用者的 .ssh/authorized_keys
*** 資訊:檔案必須具有適當的權限才能允許公鑰
*** 資訊:身份驗證。 (重新)運行每個使用者的 ssh-user-config 將設定
*** 資訊:這些權限正確。 [類似的限制適用於
*** 資訊:例如,如果 rshd 伺服器正在運行,則為 .rhosts 文件,等等]。


*** 資訊:sshd 服務已安裝在「cyg_server」下
*** 資訊:帳戶。若要立即啟動服務,請呼叫“net start sshd”或
*** 訊息:`cygrunsrv -S sshd'。否則會自動啟動
*** 訊息:下次重新啟動後。

*** 資訊:主機配置完成。玩得開心!

管理員使用者@ThisComputer ~
$ 網路啟動 sshd
CYGWIN sshd 服務正在啟動。
CYGWIN sshd 服務無法啟動。

該服務沒有報告錯誤。

鍵入 NET HELPMSG 3534 可以獲得更多協助。

*** Query: Enter the value of CYGWIN for the daemon: []請注意,我沒有在該行輸入任何內容。教程中經常提到使用ntsecntsec tty,但這些選項已從最新版本的 OpenSSH 中刪除。無論如何,我已經嘗試使用它們,結果是一樣的。

文件/var/log/sshd.log為空。如果我嘗試運行該命令,/usr/sbin/sshd我會得到輸出/var/empty must be owned by root and not group or world-writable.。 /var/empty 目錄具有以下權限:drwxr-xr-x+ 1 cyg_server root 0 May 29 15:28 empty。谷歌搜尋此錯誤沒有找到任何有效的修復方法。一個人似乎已經透過使用該命令解決了這個問題,chown SYSTEM /var/empty但在我的情況下並沒有解決它。

答案1

嘗試停用權限分離/etc/sshd_config

答案2

在 Cygwin 下,/var/empty必須擁有由使用者運行sshd。 (除非您停用權限分離!)

Corinna Vinschen 於 2012 年向 Cygwin 郵件清單發送的一封有用的電子郵件

通常 sshd 測試 /var/empty 是否由 uid 0 擁有。程式碼已被修改以測試 /var/empty 是否由執行 sshd 的使用者擁有。因此,如果您在命令列上啟動 sshd,則必須 chown /var/empty 為目前使用者帳戶。 /etc下的ssh相關檔案也是如此。此錯誤訊息是普通的上游錯誤訊息。 Cygwin 沒有改變以保持與 Cygwin 相關的上游補丁集較小。

答案3

就我而言,我與其他服務發生了衝突。我安裝了 Bitvise 試用版來嘗試託管 SSH 伺服器。

當我安裝 Cygwin OpenSSH 時,我需要關閉 Bitvise 服務才能啟動 Cygwin sshd。

相關內容