web-dev-qa-db-ja.com

管理者以外のユーザーアカウントでCygwin sshdサーバーにログインできない

Cygwin sshdを実行しているWindows 2008サーバー(DC)へのログインに問題があります。 Domain Adminsグループのメンバーであるアカウントで正常にログインできますが、通常のユーザーアカウントで試行すると、sshは「Permission denied」と表示します。

私は走ったmkpasswd -l > /etc/passwd。実際、Adminsグループにアカウントを追加すると、ログインできます。ただし、それを管理者グループから削除すると、再びログインできなくなります。

4
josh3736

あまりにも多くの時間を偶然見つけた後、私はようやく問題の原因を発見しました。つまり、管理者以外のユーザーに対して "アクセスが拒否されました"と表示されていました。理由はDCでは、ユーザーグループに "ローカルログオンを許可する"ユーザー権利がないためです。 sshdがsshdサービスのアカウントから非特権ユーザーにコンテキストを切り替えようとしたときに、ユーザーにローカルログオン権限がないため、操作が失敗しました。

修正するには、Default Domain Controller Policyを編集して、Usersグループにローカルでのログオンを許可する権利を与える必要がありました。これは、[グループポリシーの管理]>(ドメイン)> [グループポリシーオブジェクト]にあります。右クリックして編集します。 [コンピューターの構成]> [ポリシー]> [Windowsの設定]> [セキュリティの設定]> [ローカルポリシー]> [ユーザー権利の割り当て]に移動します。ローカルでログオンを許可を開き、ユーザーグループを追加します(または、「SSHユーザー」グループを作成して、代わりに追加することもできます)。

ポリシーを編集した後、コマンドプロンプトでgpupdateを実行して変更を更新し、問題ありません。

9
josh3736

大変でしたが、ようやくわかりました。

  1. 「mkpasswd -l>/etc/passwd」を実行します。
  2. ファイルに移動し、notepad ++(c:\ cygwin\etc ...)で開きます。
  3. そこで、アカウントのリストが(ローカルアカウントの場合)machine-name + usernameに似ていることに気づくでしょう。 (例-xyz + joe:*:...)
  4. 確認するには、PuTTYを開いて、このユーザー名全体で接続してみてください。つまり、+。あなたは入ることができるはずです。
  5. 次に、passwdファイルから削除し、machine-name +までテキストを送信して、ユーザー名のみにします。 (例-joe:*:...)。
  6. 保存して、もう一度接続してみます。

これは私にとってはうまくいきましたが、他の人にはうまくいかないかもしれません。成功に追加された可能性のある、私が行った追加の事柄をリストアップします。
1。 passwdおよびgroupファイルをrwにchmodします。
2。ユーザーは管理グループに属している必要があります。
3。 Cygwinインストールディレクトリは、ユーザーへのrwアクセスを許可しました。

3
user2683109

私も(今日)同じ問題を抱えていて、それを理解したと思います。他のユーザーとしてsshでログインする前に、それらの他のユーザーはcygwinで完全にセットアップされている必要があります。したがって、私は実際に管理者以外の各ユーザーとしてWindowsにログインし、(同じWindowsセッションで)cygwinターミナルを開いて(まだ管理者以外のユーザーとして)、少しの間いじり回す必要がありました。 (たとえば、「ls」を実行し、ローカルホスト(「ssh localhost」)にsshできないかどうかを確認します。cygwinターミナルを開くとすぐに、初期構成の詳細などが生成され、その瞬間から管理者以外のユーザーとしてsshでログインしてください。

2
baconmcporkchop