ソースがMACの場合、リモートrootユーザーの一般的なSSH設定操作は失敗します。

ソースがMACの場合、リモートrootユーザーの一般的なSSH設定操作は失敗します。

これは、Centos7、SSHリモートログイン設定、およびMacにrootユーザーがいないという事実に関するものです。

私はこの質問を何度も尋ね、sshがどのように機能するかについての説明を得ました。そのうちのいくつかは面白いです。

目標は、centos7システムでrootユーザーとしてパスワードなしのSSHログインを実行することです。

root以外のユーザーに対して、次のように一般設定を実行できます。

  1. 私の〜/ .sshフォルダを削除します。
  2. ssh-keygen(~/.ssh/id_rsa プライベート/公開鍵を生成するにはデフォルト値を受け入れます)。
  3. ssh-copy-id myuser@server(公開鍵をリモートシステムのauthorized_keysファイルに入れます)。
  4. rootログイン(yes)、PublicKeyAuthentication(yes)、およびPasswordAuthorization(no)を許可するようにsshd_configを変更します。
  5. sshd を再起動し、sshd の状態を確認します。
  6. パスワードなしでssh myuser@server(キーを使用)成功

その後、rootユーザーにも同じことをしようとします。

  1. ssh-keygen -f root-key (新しい秘密鍵と公開鍵を ~/.ssh/root-key および root-key.pub に配置します. -- myuser ssh フォルダにあります)
  2. ssh-copy-id -i ~/.ssh/root-key root@server (この操作は成功し、リモートサーバーのルート ~/.ssh/authorized_keys ファイルで公開鍵を見つけることができます)
  3. PasswordAuthenticationをnoに、PublicKeyAuthenticationをyesに変更したため、パスワードなしで機能します。 ssh -i ~/.ssh/root-key root@server
  4. しかし、これはうまくいきますが、うまくいきません。 ssh root@server 「権限エラー(公開鍵)」が生成されます。

mulberryについて数週間研究した結果、sshd_configを変更しても効果がないことがわかりました(すべての置換を試みました)。

root@server の ~/.ssh フォルダにある authorized_keys ファイルにキーをコピーするだけでは、一般的なパスワードのない認証を有効にするのに十分ではないようです。

SSHプロセスは次のとおりです。プロセスの説明と図「サーバーにユーザーを認証する手順」中に問題が発生したことを示します。この時点で、クライアントはサーバールートのAuthorized_keysファイルの内容と比較するために「ルート」公開鍵をサーバーに送信する必要があります。

実際に有効なCLI構文には、「-i〜/.ssh/root-key」のフレーズが含まれているようです。この構文は、特定の公開鍵をサーバーのルートの Authorized_keys ファイルにコピーするために ssh-copy-id ステップを明示的に渡します。

ただし、「一般」sshは、「ssh root@server」がキー転送と比較プロセスを開始するのに十分であることを意味します。

これで、以前の質問では、多くの回答者は、リモートユーザー名がローカルユーザー名と異なる場合でも、SSHは「関係なく」、ユーザー名、アカウントなどに関係なく、すべてが「正常に」機能することを強調したいと思いました。

ただし、この質問で指摘しようとしたように、ルートの公開キーは「root」という名前ではなくフォルダにあるため、キーのユーザー名フィールドは一致しません。 「dumb」のようなものが邪魔になります。

私の推測では、少なくともMACのSSHコード(Centos7 VMでも同じ問題がありましたが)は、デフォルトでは、好みのid_rsa.pubキーをリモートサーバーに送信されたキーとして使用してリモートサーバーで使用するものと一致することです。サーバーのauthorized_keysファイルに存在するssh-copy-id'd root-key.pub。

したがって、SSHが「me」というローカルユーザーが「you」というリモートユーザーに接続できるようにするという事実は、実際には問題や考えられる解決策とは関係ありません。

これで問題は、OpenStackのUnderCloudに展開するためにTripleOコントローラを設定しようとしていることです。 Ansibleスクリプトは、Ansibleロールで実行されている間にリモートの「root」および「stack」ユーザーが持つ権限に関して非常に具体的です。彼らは、「-i ~/.ssh/root-key」などのスクリプトコマンドラインで追加のパラメータを処理したくありません。

だからそれは私の進歩を本当に邪魔しました。したがって、経験豊富な助けを歓迎します!

ベストアンサー1

おすすめ記事