私は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ディレクトリに問題があります。終了します。
このフォルダーのアクセス許可は、灰色でチェックされた読み取り専用(このフォルダーにのみ適用)として表示されます。チェックを外そうとしましたが、プロパティを再度開いた後、チェックボックスが再びオンになります。このフォルダのアクセス許可を変更する方法はありますか?
私はWindows7x64とsshdでcygwin1.7を実行しています。 sshd_configを実行したときにこのエラーが発生したことを覚えていませんが、/ var/runディレクトリを確認したところ、777に設定されています。
Cygwinシェルでこれを試してくださいchmod 777 /var/run
そのような古いスレッドを埋めて申し訳ありませんが、私がこの特定の問題をグーグルで検索したとき、この質問は常に出てきました。
数ヶ月後、私はついに解決策を見つけました。 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を正しく実行してサービスを作成することができました。
私自身、これに多くの問題を抱えていました。次の条件を満たせば、デフォルトのインストール手順で問題なく動作することがわかりました。
これらの手順を実行すると、デフォルトのインストール手順は次のようになります。
その後、Windows 7ProfessionalとHomeの両方ですべてが正常に機能するようです。
Cygwin sshdのインストールにすでに失敗している場合は、完全にアンインストールして最初からやり直すのが最善の場合があります。
必要な場合のCygwinのアンインストール手順は次のとおりです。 http://cygwin.com/faq/faq.html#faq.setup.uninstall-all
私は最初に壊れたインストールを削除する必要がありました:
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」メッセージが消え、ログインが機能しました。
Cygwin Shellで、管理者であることを確認してください。
takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"
Windowsエクスプローラーでは、フォルダー/var
:
プロパティ。
セキュリティ。
フォルダとサブフォルダを完全に制御できるグループ管理者を追加します。
わたしにはできる。
タイプNTFSのハードドライブにCygwinをインストールした場合にのみ、ssh-Host-configスクリプトを正常に実行できました。タイプexFATのフラッシュドライブにCygwinをインストールした場合、ssh-Host-configスクリプトが機能しませんでした。
私も同じ問題を抱えていました。私の問題は、「noacl」オプションを使用してルートフォルダをマウントしていたカスタム/ etc/fstabファイルがあったためだと思います。これが私が問題を解決した方法です:
カスタム/ etc/fstabを邪魔にならない場所に移動します。
mv /etc/fstab /etc/fstab.bak
または、/ etc/fstabファイルを編集して、noaclオプションを削除することもできます。
すべてのCygwinbashウィンドウおよびその他のCygwinプロセスまたはサービスを閉じます。 Cygwinプロセスを実行している場合は、古い/ etc/fstab設定でマウントされたままになります。
新しいCygwinbashウィンドウを開始します。
以下を実行する必要がある場合があります。
chmod +r /etc/passwd
chmod o+x /var
chmod +w /var/run
指を交差させてssh-Host-configを実行すると、エラーなしで完了するはずです。
手順1で/ etc/fstabを移動した場合は、今すぐ元に戻すことができます。
mv /etc/fstab.bak /etc/fstab
Cygwinを最初にインストールした後に新しいユーザーを作成した場合は、/ etc/passwdを更新してください。そうしないと、それらのユーザーはssh経由でログインできない可能性があります。
mkpasswd -l > /etc/passwd
また、Windowsファイアウォールに移動し、C:/cygwin/usr/sbin/sshd.exeおよびC:/cygwin/usr/sbin/sftp-server.exeを許可します。