2010-01-29 86 views
15

我是Linux的粉絲,但由於Linux中壞的英特爾無線驅動程序,我不得不切換到Windows 7.我已經在Windows中安裝了Cygwin,並且想要配置SSH以遠程連接我的筆記本電腦。Cygwin SSH的目錄權限(Windows 7)

我搜索谷歌和發現information for installing openssh server on Win 7,但運行ssh-host-config當我收到以下錯誤:

 
[email protected] ~ 
$ ssh-host-config 
yes 
*** Info: Creating default /etc/ssh_config file 
*** Query: Overwrite existing /etc/sshd_config file? (yes/no) yes 
*** Info: Creating default /etc/sshd_config file 
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3. 
*** Info: However, this requires a non-privileged account called 'sshd'. 
*** Info: For more info on privilege separation read /usr/share/doc/openssh/READ 
ME.privsep. 
*** Query: Should privilege separation be used? (yes/no) no 
*** Info: Updating /etc/sshd_config file 

*** Warning: The following functions require administrator privileges! 

*** Query: Do you want to install sshd as a service? 
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes 
*** Query: Enter the value of CYGWIN for the daemon: [] 
*** Info: On Windows Server 2003, Windows Vista, and above, the 
*** Info: SYSTEM account cannot setuid to other users -- a capability 
*** Info: sshd requires. You need to have or to create a privileged 
*** Info: account. This script will help you do so. 

*** Warning: The owner and the Administrators need 
*** Warning: to have .w. permission to /var/run. 
*** Warning: Here are the current permissions and ACLS: 
*** Warning:  drwxr-xr-x 1 bala None 0 2010-01-17 22:34 /var/run 
*** Warning:  # file: /var/run 
*** Warning:  # owner: bala 
*** Warning:  # group: None 
*** Warning:  user::rwx 
*** Warning:  group::r-x 
*** Warning:  other:r-x 
*** Warning:  mask:rwx 
*** Warning: 
*** Warning: Please change the user and/or group ownership, 
*** Warning: permissions, or ACLs of /var/run. 

*** ERROR: Problem with /var/run directory. Exiting. 

此文件夾的權限都顯示爲只讀(僅適用於本文件夾),檢查灰色。我試圖取消選中,但在我再次打開屬性後,該框再次被檢查。有沒有辦法改變這個文件夾的權限?

+2

它與窗口UAC有關嗎?如果您使用管理員運行Cygwin,它會發生嗎? – Tommy 2010-01-29 03:33:42

+0

我實際上在我的機器中禁用了UAC。即使在使用「以管理員身份運行」時也會發生這種情況 – Boolean 2010-01-29 03:38:42

+0

這是超級用戶嗎?這不是與編程相關的。 – Catchwa 2010-01-29 04:15:28

回答

5

我在Windows 7 x64和sshd上運行cygwin 1.7。我不記得收到此錯誤,當我跑的sshd_config,但我只是看着我的/ var/run中的目錄和它的設置爲777

在cygwin外殼chmod 777 /var/run

+1

+1。更改Cygwin中的權限,然後重試。 – Arkaaito 2010-01-29 03:41:04

+0

我也試過這個選項。 巴拉@巴拉-PC〜 巴拉@巴拉-PC〜 $ CHMOD 777的/ var /運行 巴拉@巴拉-PC〜 $ LS -l/VAR 總0 drwxr-XR-X 1巴拉沒有0 2010-01-17 22:34緩存 drwxr-xr-x 1 bala無0 2010-01-17 22:35 cron drwxr-xr-x 1 bala無0 2010-01-23 11:46空 drwxr-xr-x 1 bala None 0 2010-01-17 22:34 lib drwxr-xr-x 1 bala None 0 2010-01-17 22:32 log drwxr-xr-x 1 bala None 0 2010-01 -17 22:34運行 drwxr-xr-x 1 bala無0 2010-01-17 22:34 tmp -rw-r - r-- 1 bala無0 2010-01-23 11:44 utmp – Boolean 2010-01-29 03:42:21

+0

對不起,輸出似乎沒有正確格式化。我也嘗試-R 777選項。 – Boolean 2010-01-29 03:43:12

2

試試這個在cygwin外殼,確保你是管理員,則:

takeown /F "C:\cygwin" /R 
icacls "C:\cygwin" /grant Everyone:\(F\) /T 
icacls "C:\cygwin" 
chmod 777 -R "c:\cygwin" 
+2

這對我來說也是沒有用的。我想爲什麼這對我們中的某些人不起作用的答案必須在於/ var/run的Windows權限。 *沒有任何*但是,我已經完成了任何作用。我已經在/ var/run上刪除了* all *權限,並且創建了一個廣泛開放的權限。納達。 – e40 2012-03-22 21:12:26

+2

對不起,這在我的情況下不起作用 – 2013-02-07 10:23:48

+0

這對win7,cygwin64工作: setfacl -b〜/ .ssh/config; chmod 0600〜/ .ssh/config;從http://superuser.com/questions/348694/bad-owner-or-permissions-error-using-cygwins-ssh-exe – mosh 2016-10-06 14:14:41

8

對不起,挖掘出這樣一個古老的線程,但這個問題始終上來時,我用Google搜索這個特定的問題。

幾個月後,我終於找到了解決方案。當我設置cygwin時,我沒有在cygwin中正確創建我的用戶和組帳戶。這樣做的主要方法是運行:

mkpasswd -l > /etc/passwd 
mkgroup -l > /etc/group 

如果您在使用域用戶和passwd記錄,你可以這樣做:

mkpasswd -l -d > /etc/passwd 
mkgroup -l -d > /etc/group 

或者,如果你有一個非常大的網絡狀我的,你可能不是真的想要那樣。另一種方法是隻是用戶的本地用戶和組加上任何一個您當前登錄爲:

mkpasswd -l > /etc/passwd 
mkpasswd -c >> /etc/passwd 
mkgroup -l > /etc/group 
mkgroup -c >> /etc/group 

我這樣做之後,我終於能夠正常運行ssh主機-config來創建服務。

+0

您好馬修,我試過這些選項,但它仍然不允許我提供一個「空白密碼「 – 2013-02-07 10:23:14

+1

自從Cygwin 1.7.35開始,此建議已過時,其中獲取用戶名/組信息的默認方式來自本地Windows數據庫(SAM或AD),具體取決於系統是否位於Windows域中。除非你有非常特殊的需要能夠通過'/ etc'文件覆蓋SAM/AD,否則你現在不應該擁有這些文件。參見[Cygwin用戶指南第3章](https://cygwin.com/cygwin-ug-net/ntsec.html)。 – 2015-08-31 03:15:14

4

我自己有很多麻煩。我發現默認安裝步驟工作得很好,只要我:

  1. 使用「以管理員身份運行」選項啓動Cygwin shell作爲管理用戶。
  2. 禁用UAC。
  3. 禁用實時病毒防護。

在採取這些步驟,默認的安裝步驟是:

  1. 從Cygwin的安裝程序進行安裝 「的OpenSSH」。
  2. 使用「以管理員身份運行」選項啓動Cygwin shell作爲管理用戶。
  3. 從Cygwin shell運行「ssh-host-config」。
  4. 權限分離:是
  5. 新的本地帳戶 「的sshd」:是
  6. 安裝的sshd的服務:是
  7. CYGWIN值:ntsec tty的
  8. 不同的名稱爲 「cyg_server」:沒有
  9. 創建新的特權用戶帳戶「cyg_server」:是
  10. 集「cyg_server」密碼,並保存在安全的地方
  11. 淨啓動sshd

之後,在Windows 7 Professional和Home上一切正常。

如果你已經有一個失敗的Cygwin sshd安裝,最好做一個完整的卸載並重新開始。

這裏是Cygwin的卸載說明如果你需要他們:http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

0

我才能夠成功運行的ssh主機-config腳本,當我型NTFS的硬盤上安裝了Cygwin。當我將Cygwin安裝在exFAT類型的閃存驅動器上時,ssh-host-config腳本不起作用。

0

我遇到了同樣的問題。我相信,我的問題是因爲我有一個自定義的/ etc/fstab文件,其中我使用「noacl」選項安裝根文件夾。這裏是我解決了這個問題:

  1. 移動定製/ etc/fstab文件的方式進行:

    mv /etc/fstab /etc/fstab.bak 
    

    或者,您也可以編輯你的/ etc/fstab文件,並刪除noacl選項。

  2. 關閉所有Cygwin bash窗口和其他Cygwin進程或服務。如果您有任何Cygwin進程正在運行,它將使用舊的/ etc/fstab設置來掛載它們。

  3. 開始一個新的Cygwin bash窗口。

  4. 您可能需要運行以下命令。

    chmod +r /etc/passwd 
    chmod o+x /var 
    chmod +w /var/run 
    
  5. 手指交叉,運行ssh-主機配置,現在應該完成,沒有錯誤。

  6. 如果您在步驟1中移動你的/ etc/fstab中,現在可以將其移回:

    mv /etc/fstab.bak /etc/fstab 
    
  7. 如果創建新用戶第一次安裝了Cygwin,更新/ etc/passwd文件後,否則這些用戶可能無法登錄通過SSH:

    mkpasswd -l > /etc/passwd 
    
  8. 此外,轉到Windows防火牆,並允許C:/cygwin/usr/sbin/sshd.exe和C:/ Cygwin的/ usr/sbin目錄/ SFTP -服務器。exe文件

3

我首先必須除去破碎的安裝:

mkpasswd -l > /etc/passwd 
mkgroup -l > /etc/group 

然後我跑:

cygrunsrv --remove sshd 
rm -rf /var/log/sshd* /etc/ssh_host* /etc/sshd_config /var/empty 

然後生成的passwd &組如上所述

ssh-host-config -y 
cygrunsrv --start sshd 

並最終「setuid失敗」的消息消失和登錄工作。

1

在Windows資源管理器,文件夾/var

屬性。
安全。
爲文件夾和子文件夾添加完全控制 的組管理員。

它適合我。

+0

謝謝你,爲我工作。 – WildDev 2015-06-29 19:32:29

0

對於Windows用戶對快捷方式運行 「Cygwin的終端」 通過右鍵點擊並運行它作爲管理員 .... enter image description here

立即運行 「SSH-主機配置」 從Cygwin終端...它一定會工作。