web-dev-qa-db-ja.com

アマゾンウェブサービスで実行されているUbuntuインスタンスへの複数のユーザーSSHアクセスを許可する

以前にも同様の質問があったようですが、他の質問への回答の一部として、私が抱えている問題は提起も回答もされていません。そう...

Ubuntuを実行しているAmazonEC2インスタンスを使用していますが、「ubuntu」ログインを使用してPuTTYでSSHアクセスを取得する方法をすでに理解しています。いくつかのuseraddを実行するだけで、他のユーザーの各ホームフォルダーに、「ubuntu」ホームフォルダーと同じように「.ssh/authorized_keys」を追加してから、他のユーザー名を使用してSSHで接続できると考えました(ただし、同じ秘密鍵)はスムーズに実行されます-これは起こりませんでした(「サーバーが鍵を拒否しました」というメッセージが表示されました)。

SSHキーペアリングがどのように機能するかについて私が知らないことがあるようです...何かアイデアはありますか?

簡単な要約:

  • ユーザー名として「ubuntu」を使用したPuTTYでのSSHアクセス-正常に動作します。
  • 他のユーザーの作成、「ubuntu」ホームフォルダーから他のユーザーホームフォルダーへの「.ssh/authorized_keys」のコピー、および同じ秘密鍵(異なるユーザー名でのログイン)でのSSHは機能しません。 「サーバーがキーを拒否しました」というメッセージを受信します。

更新:ファイル '/ etc/ssh/sshd_config'を編集して、次の行のコメントを解除しました。

AuthorizedKeysFile %h/.ssh/authorized_keys

(私が気づかなかったのはデフォルトでコメントされていた)、しかしそれでも運がない。それが提案になるのなら、私がそれについて言及したいと思っただけです...

UPDATE2-重要:ニコライの回答のおかげで、ファイルのアクセス許可を見落としていたことに気づきました。パーミッションはそれほど問題ではありませんでしたが(私は思う)、Sudoを使用して '.ssh/authorized_keys'を他のファイルにコピーしたことがわかりました追加されたユーザーフォルダ、新しく作成されたフォルダとファイルの所有者は実際にはrootでした。質問は今のようです-フォルダ/ファイルの所有者を変更するにはどうすればよいですか(root以外のユーザーはrootが所有するキーを確認できない可能性が高いため) )?それが答えを思い付くかどうかを確認するために検索を行います...

UPDATE3-重要:「。ssh」と「authorized_keys」の両方、および所有者とグループの権限をrootからotheruser、それでもSSHしようとしたときにユーザー名otheruserを使用すると、まだ「サーバーがキーを拒否しました」というメッセージ。申し訳ありませんが、回答済みのセクションを時期尚早に追加しました...提供された回答は、論理的には正解のように見えた(そして今でもそうです)ので、テストする前に回答したと言いました...

UPDATE4-重要:Nickolayの答えは確かに正しいです(私が言ったのはUPDATE3にはなかった)。私の問題(Nickolayの答えに従った後)は、実際にはSSHの警告とは関係ありませんでした。 otheruserアカウントを作成したときに、誤ってシェルを/bin/bash/ではなく/bin/bashとして指定しました(余分な/)。私が行ったすべての作業は「ubuntu」アカウントからのものだったので、これに遭遇しました。イライラした後、ubuntuでSSHでログインした後、他のユーザーにログインしようとしました-エラー「Cannot execute/bin/bash /:Not aディレクトリ"。 chsh -s /bin/bash otheruserでシェルを変更した後、ubuntuから他のユーザーにログインできましたが、もっと興味深いことにこれにより、「サーバーがキーを拒否しました"メッセージ。つまり...シェルをインスタンス化して使用できないため、拒否されたキーメッセージとして返されます。これに注意を向けるべき場所はどこにありますか...?いずれにせよ、ニコライに改めて感謝します。

回答:Nickolayの回答は、この状況で実行する必要があることをカバーしています。たとえば、chownコマンドを使用して、前述のようにフォルダー/ファイルの所有権を変更します リンク 彼の答えの下。 (グループもルートだったので、chgrpコマンドも使用しました)

これが私が使用したステップです(これらのコマンドの前にSudoを付ける必要があるかもしれません):

  • chmod go-w otheruser otheruser/.ssh
  • chmod 600 otheruser/.ssh/authorized_keys
  • chown'otheruser 'otheruser/.ssh
  • chown'otheruser 'otheruser/.ssh/authorized_keys
  • chgrp'otheruser 'otheruser/.ssh
  • chgrp'otheruser 'otheruser/.ssh/authorized_keys

注:最後の2つのコマンドは、「。ssh /」フォルダーと「authorized_keys」ファイルが関連付けられているグループを変更するためのものです。それらを別のものにしたい場合もありますが、そのユーザーのホームフォルダー内の他のファイル/フォルダーとの一貫性を保ちたいと思いました。

5
MandM

また、.sshフォルダーとauthorized_keysに正しいアクセス許可を設定する必要があります。chmod700〜/.ssh && chmod 600〜/.ssh/authorized_keysまた、これらのファイルの所有者は、ログインしようとしているユーザーと同じである必要があります。

1