93

公開鍵認証を使用して、Windows 用の OpenSSH をセットアップする際に問題が発生しています。

これはローカル デスクトップで動作しており、Unix マシンまたは Windows マシン用の他の OpenSSH からキーを使用して ssh を実行できます。

ビルドをサーバーに複製しました。パスワード認証は正常に機能しますが、キーを使用すると次の問題が発生します。

debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /cygdrive/c/sshusers/jsadmint2232/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
Connection closed by 127.0.0.1

したがって、テストの目的で、ローカルホストに SSH で接続しようとしているだけですが、リモートで試しても同じ問題が発生します。

さらに奇妙なのは、パスワードと公開鍵の両方を で有効にするとsshd_config、鍵を使用しようとするだけで、上記のメッセージが表示され、パスワードを使用しようとさえしないことです。

これが私が取ったステップです:

  1. Windows 用の OpenSSH をインストールする
  2. mkgroup -l >>..\etc\group(ローカルグループを追加)
  3. mkgroup -d >>..\etc\group(ドメイングループを追加)
  4. mkpasswd -L -u openssh >>..\passwd(ローカルユーザーを追加)
  5. mkpasswd -D -u jsadmint2232 >>..\passwd(私のドメインユーザーを追加しました)
  6. c:\sshusers%USER% を指すようにファイルpasswdのホームディレクトリを編集しました - %USER% はユーザー名です
  7. パスワード認証有効、キー認証無効
  8. jsadmint2232 / OpenSSH の両方の SSH キーを作成し、ファイルがホーム ディレクトリに作成されるようにしました。
  9. 各ユーザーの .ssh ディレクトリに authorized_keys ファイルを追加し、着信接続ユーザー用のキーを追加しました
  10. net stop opensshd/net start opensshd
  11. パスワード認証がローカルとリモートの両方で機能するかどうかをテストする
  12. sshd_config を更新してキー認証を有効にしました - opensshd を再起動します
  13. 接続をテストし、上記のエラーを取得します。また、パスワード認証も試みません。
  14. sshd_config を更新し、パスワード認証を完全に無効にしました - opensshd を再起動します
  15. 接続をテストしても上記のエラーが発生する

サーバーが何らかの理由で接続を切断しているようです。

4

11 に答える 11

7

私は問題を解決しました...

これは、サービスを開始したアカウントに関連しています-ローカルシステムアカウントを使用していました-これにより、公開鍵とauthorized_keysファイルへのアクセスが停止していました.

サービスを停止し、接続しようとしていたユーザーとして開始すると、機能しました!

したがって、基本的には、サービス アカウントから始めて、外部ユーザーがそのユーザーとして接続する必要があります。

于 2013-04-25T11:30:21.693 に答える
3

mls-software.com のバージョンの OpenSSH を使用している場合は、別の注意事項があります。

SSHD_SERVER アカウントと権限の分離を使用してインストールすると、公開鍵認証を使用できるようになります ( http://www.mls-software.com/opensshd-pki.htmlによる)。ただし、UAC が有効になっている場合、インストールは成功しません。ユーザーが正しく作成されず、サービスが作成されません。事後に手動でこれらのアイテムを取得しようとするのは非常に困難です。インストール前に UAC を無効にするだけで、インストール プロセスでユーザーとサービスを適切に作成できます。インストール後、UAC を再度有効にすることができます。

SSHD_SERVER アカウントを手動で作成した場合、パスワード認証を使用すると認証は成功しますが、クライアントは「/bin/bash: 操作が許可されていません」と接続を終了します。公開鍵による認証がサーバーによって閉じられました (Cambolie によって投稿された元のエラー)。

于 2014-11-04T17:25:26.017 に答える
1

私はそれを解決しました:

  1. SSHD_SERVER + 権限分離モードでインストールします。また、構成で特権の分離を手動で「はい」に設定しました。これは長い間うまくいきませんでした。ユーザーは作成されませんでした。その後、うまくいきました。理由はわかりません。コントロール パネルのユーザー アカウントにアクセスして、UAC がオフになっていることを確認しました。/var/empty もあり、全員がフル アクセスできました。
  2. C:\openssh\var\empty の場合、「attributes get/set」権限を Everyone と自分自身に設定し、「full」権限を .\sshd_server に設定しました。私もオーナーにしました。
于 2015-06-12T13:34:46.570 に答える