web-dev-qa-db-ja.com

Cygwin SSHのディレクトリ権限(Windows 7)

私はLinuxのファンですが、LinuxのIntelワイヤレスドライバーが悪いため、Windows 7に切り替える必要がありました。WindowsにCygwinをインストールし、ラップトップにリモート接続するようにSSHを構成したいと考えています。

Googleで検索したところ、 Win 7にopensshサーバーをインストールするための情報 が見つかりましたが、ssh-Host-configを実行すると次のエラーが発生します。

 bala @ bala-PC〜 
 $ ssh-Host-config 
 yes 
 ***情報:デフォルトの/ etc/ssh_configファイルを作成しています
 ***クエリ:既存の/ etc/sshd_configファイルを上書きしますか? (yes/no)yes 
 ***情報:デフォルトの/ etc/sshd_configファイルを作成しています
 ***情報:OpenSSH 3.3以降、特権の分離はデフォルトでyesに設定されています。
 ***情報:ただし、これには「sshd」という非特権アカウントが必要です。
 ***情報:特権分離の詳細については、/ usr/share/doc/openssh/READ [.____を参照してください。 ] ME.privsep。
 ***クエリ:特権の分離を使用する必要がありますか? (はい/いいえ)いいえ
 ***情報:/ etc/sshd_configファイルを更新しています
 
 ***警告:次の関数には管理者権限が必要です!
 
 ***クエリ:sshdをサービスとしてインストールしますか?
 ***クエリ:(すでにサービスとしてインストールされている場合は「いいえ」と言ってください)(はい/いいえ)はい
 ***クエリ:デーモンのCYGWINの値を入力します:[] 
 ***情報:Windows Server 2003、Windows Vista以降では、
 ***情報:SYSTEMアカウントは他のユーザーに設定できません-機能
 ***情報:sshdには必要です。特権
 ***情報:アカウントを持っているか、作成する必要があります。このスクリプトは、そのために役立ちます。
 
 ***警告:所有者と管理者は
 ***警告:.wが必要です。/var/runへのアクセス許可。
 ***警告:現在のアクセス許可とACLは次のとおりです:
 ***警告:drwxr-xr-x 1balaなし02010-01-17 22 :34 /var/run
***警告:#ファイル:/ var/run 
 ***警告:#所有者:bala 
 ***警告:#グループ:なし
 ***警告:user :: rwx 
 ***警告:group :: rx 
 ***警告:other:rx 
 ***警告:mask:rwx 
 ***警告:
 ***警告:ユーザーまたはグループの所有権、あるいはその両方を変更してください
 ***警告:権限またはACL /var/run.

***エラー:/ var/runディレクトリに問題があります。終了します。

このフォルダーのアクセス許可は、灰色でチェックされた読み取り専用(このフォルダーにのみ適用)として表示されます。チェックを外そうとしましたが、プロパティを再度開いた後、チェックボックスが再びオンになります。このフォルダのアクセス許可を変更する方法はありますか?

15
Boolean

私はWindows7x64とsshdでcygwin1.7を実行しています。 sshd_configを実行したときにこのエラーが発生したことを覚えていませんが、/ var/runディレクトリを確認したところ、777に設定されています。

Cygwinシェルでこれを試してくださいchmod 777 /var/run

5
karoberts

そのような古いスレッドを埋めて申し訳ありませんが、私がこの特定の問題をグーグルで検索したとき、この質問は常に出てきました。

数ヶ月後、私はついに解決策を見つけました。 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-Host-configを正しく実行してサービスを作成することができました。

8
Matthew Flower

私自身、これに多くの問題を抱えていました。次の条件を満たせば、デフォルトのインストール手順で問題なく動作することがわかりました。

  1. 「管理者として実行」オプションを使用して、管理ユーザーとしてCygwinシェルを起動します。
  2. UACを無効にします。
  3. リアルタイムのウイルス対策を無効にします。

これらの手順を実行すると、デフォルトのインストール手順は次のようになります。

  1. Cygwinインストーラーから「openssh」をインストールします。
  2. 「管理者として実行」オプションを使用して、管理ユーザーとしてCygwinシェルを起動します。
  3. Cygwinシェルから「ssh-Host-config」を実行します。
  4. 特権の分離:はい
  5. 新しいローカルアカウント「sshd」:はい
  6. Sshdをサービスとしてインストールします:はい
  7. CYGWIN値:ntsec tty
  8. 「cyg_server」の別の名前:いいえ
  9. 新しい特権ユーザーアカウント「cyg_server」を作成します:はい
  10. 「cyg_server」パスワードを設定し、安全な場所に保管してください
  11. ネットスタートsshd

その後、Windows 7ProfessionalとHomeの両方ですべてが正常に機能するようです。

Cygwin sshdのインストールにすでに失敗している場合は、完全にアンインストールして最初からやり直すのが最善の場合があります。

必要な場合のCygwinのアンインストール手順は次のとおりです。 http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

4
Jason Stewart

私は最初に壊れたインストールを削除する必要がありました:

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

次に、上記のようにパスワードとグループを生成します。

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

それから私は走った:

ssh-Host-config -y
cygrunsrv --start sshd

そして最後に、「setuid failed」メッセージが消え、ログインが機能しました。

3
dothebart

Cygwin Shellで、管理者であることを確認してください。

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

Windowsエクスプローラーでは、フォルダー/var

プロパティ。
セキュリティ。
フォルダとサブフォルダを完全に制御できるグループ管理者を追加します。

わたしにはできる。

1
AltAir

タイプNTFSのハードドライブにCygwinをインストールした場合にのみ、ssh-Host-configスクリプトを正常に実行できました。タイプexFATのフラッシュドライブにCygwinをインストールした場合、ssh-Host-configスクリプトが機能しませんでした。

0
Joe Hunt

windowsの場合ユーザーはショートカットを右クリックして「CygwinTerminal」を実行し、管理者として実行します.... enter image description here

ここで、Cygwinターミナルから「ssh-Host-config」を実行します...これは間違いなく機能します。

0
Kunal

私も同じ問題を抱えていました。私の問題は、「noacl」オプションを使用してルートフォルダをマウントしていたカスタム/ etc/fstabファイルがあったためだと思います。これが私が問題を解決した方法です:

  1. カスタム/ etc/fstabを邪魔にならない場所に移動します。

     mv /etc/fstab /etc/fstab.bak
    

    または、/ etc/fstabファイルを編集して、noaclオプションを削除することもできます。

  2. すべてのCygwinbashウィンドウおよびその他のCygwinプロセスまたはサービスを閉じます。 Cygwinプロセスを実行している場合は、古い/ etc/fstab設定でマウントされたままになります。

  3. 新しいCygwinbashウィンドウを開始します。

  4. 以下を実行する必要がある場合があります。

    chmod +r /etc/passwd
    chmod o+x /var
    chmod +w /var/run
    
  5. 指を交差させてssh-Host-configを実行すると、エラーなしで完了するはずです。

  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-server.exeを許可します。

0
ahmetsacan