Cygwin sshdを実行しているWindows 2008サーバー(DC)へのログインに問題があります。 Domain Adminsグループのメンバーであるアカウントで正常にログインできますが、通常のユーザーアカウントで試行すると、sshは「Permission denied」と表示します。
私は走ったmkpasswd -l > /etc/passwd
。実際、Adminsグループにアカウントを追加すると、ログインできます。ただし、それを管理者グループから削除すると、再びログインできなくなります。
あまりにも多くの時間を偶然見つけた後、私はようやく問題の原因を発見しました。つまり、管理者以外のユーザーに対して "アクセスが拒否されました"と表示されていました。理由はDCでは、ユーザーグループに "ローカルログオンを許可する"ユーザー権利がないためです。 sshdがsshdサービスのアカウントから非特権ユーザーにコンテキストを切り替えようとしたときに、ユーザーにローカルログオン権限がないため、操作が失敗しました。
修正するには、Default Domain Controller Policyを編集して、Usersグループにローカルでのログオンを許可する権利を与える必要がありました。これは、[グループポリシーの管理]>(ドメイン)> [グループポリシーオブジェクト]にあります。右クリックして編集します。 [コンピューターの構成]> [ポリシー]> [Windowsの設定]> [セキュリティの設定]> [ローカルポリシー]> [ユーザー権利の割り当て]に移動します。ローカルでログオンを許可を開き、ユーザーグループを追加します(または、「SSHユーザー」グループを作成して、代わりに追加することもできます)。
ポリシーを編集した後、コマンドプロンプトでgpupdate
を実行して変更を更新し、問題ありません。
大変でしたが、ようやくわかりました。
これは私にとってはうまくいきましたが、他の人にはうまくいかないかもしれません。成功に追加された可能性のある、私が行った追加の事柄をリストアップします。
1。 passwdおよびgroupファイルをrwにchmodします。
2。ユーザーは管理グループに属している必要があります。
3。 Cygwinインストールディレクトリは、ユーザーへのrwアクセスを許可しました。
私も(今日)同じ問題を抱えていて、それを理解したと思います。他のユーザーとしてsshでログインする前に、それらの他のユーザーはcygwinで完全にセットアップされている必要があります。したがって、私は実際に管理者以外の各ユーザーとしてWindowsにログインし、(同じWindowsセッションで)cygwinターミナルを開いて(まだ管理者以外のユーザーとして)、少しの間いじり回す必要がありました。 (たとえば、「ls」を実行し、ローカルホスト(「ssh localhost」)にsshできないかどうかを確認します。cygwinターミナルを開くとすぐに、初期構成の詳細などが生成され、その瞬間から管理者以外のユーザーとしてsshでログインしてください。