SSHでEC2インスタンスに複数の秘密鍵を作成することは可能ですか?これの一般的なベストプラクティスは何ですか?複数のユーザーがサーバーにSSH接続する必要があり、1つのキーを配布するだけではうまくいきません。これにより、キーを変更して再配布しない限り、ユーザーをサーバーにSSHで接続することができなくなります。
SSHでEC2インスタンスに複数の秘密鍵を作成することは可能ですか?これの一般的なベストプラクティスは何ですか?複数のユーザーがサーバーにSSH接続する必要があり、1つのキーを配布するだけではうまくいきません。これにより、キーを変更して再配布しない限り、ユーザーをサーバーにSSHで接続することができなくなります。
回答:
絶対に; 関連するすべての公開キーを画像に配置するだけで、すぐに使用できます。構成管理システムを使用してSSHキーを管理することを好みます。そうすれば、実行中のシステム上でもユーザーのアクセスを取り消すのはかなり簡単です。さらに多くの...「想像力」と言いましょう...これを処理する方法、たとえば、すべてのSSHキーをLDAPに保存するなど、他の資格情報と同様にSSHキーを集中化します。
標準のsshメカニズムを使用することもできます。最良のアプローチは、ユーザーがマシンで実行してssh-keygen
キーペアを生成する場合です。次に、彼らはあなた~/.ssh/id_rsa.pub
(または選択したアルゴリズムに応じてid_dsa.pub)を.ssh/authorized_keys
送信し、そのコンテンツを、アクセスできるユーザーアカウントのホームディレクトリ内の宛先ホストに追加します。ファイルには複数のキーを含めることができます。1行に1つ。そして、それがすべてです!同じ公開鍵(id_rsa.pub)を任意の数のホストで使用できます-常にユーザーを識別します。
他の方法でそれを行うこともできます-ssh-keygenを実行して〜/ .ssh / id_rsa(またはid_dsa)をユーザーにポストします。そして、ユーザーはファイルを〜/ .ssh / id_rsaに保存します。そのファイルのアクセス権を600(-rw -------)に変更することを忘れないでください。そうしないと、sshはそれを受け入れません。おそらく秘密鍵は電子メールで配布されるため、これは明らかに安全性が低くなります。
PuTTYgenを使用してPuTTYで実行することもできます。
より簡単な方法は次のとおりです。
Linux / Macユーザーの場合:
公開鍵と秘密鍵を作成するには、次のコマンドを使用します。
$ ssh-keygen -t rsa -b 4096
公開キーをS3バケットのフォルダーにアップロードします。例:S3> MyBucket>キーペア
秘密鍵を保存して保護します。
Windowsユーザーの場合:
次の手順は、Linux AMIの起動中に重要です。
IAMロールにAmazonS3FullAccessポリシーで作成されたロールがあることを確認します。これにより、インスタンスは、S3バケットにアクセスする役割を引き受けることができます。これは、S3から公開キーを読み取り、ユーザープロファイルにコピーするために必要です。
[インスタンスの詳細の構成]> [詳細](テキストとして)のユーザーデータセクションに次のコードを追加します。
#!/bin/bash
usermod user 1
usermod -aG wheel user1
mkdir /home/user1/.ssh/
aws s3 cp s3://MyBucket /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
useradd user2
usermod -aG wheel user2
mkdir /home/user2/.ssh/
aws s3 cp s3://MyBucket /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
sudo -i
echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
yum update -y
このセットアップは、User1とUser2を作成し、それらをsudoユーザーに追加します。AWS S3のcpコマンドのコピーS3フォルダからユーザーの公開鍵に自分の.ssh/authorized_keys path
。最後のセクションでは、パスワードを必要とせずに管理者としてコマンドを実行します。
ここで推奨できる多くのセキュリティの改善があります。この例では明示的には使用していませんが、S3バケットへのアクセスを特定のバケットに制限し、sudoでパスワードの使用を無効にすることのセキュリティへの影響を知ることは、強調できることです。特定のニーズに基づいて賢く使用してください。