EC2:インスタンスの複数のsshキー?


12

SSHでEC2インスタンスに複数の秘密鍵を作成することは可能ですか?これの一般的なベストプラクティスは何ですか?複数のユーザーがサーバーにSSH接続する必要があり、1つのキーを配布するだけではうまくいきません。これにより、キーを変更して再配布しない限り、ユーザーをサーバーにSSHで接続することができなくなります。



チームのSSHキー管理を行う場合、UserifyやSSH UKM(免責事項:私はUserifyで働いています)などの専用ツールを検討するのがおそらく最善です。
ジェイミーソンベッカー

回答:


5

絶対に; 関連するすべての公開キーを画像に配置するだけで、すぐに使用できます。構成管理システムを使用してSSHキーを管理することを好みます。そうすれば、実行中のシステム上でもユーザーのアクセスを取り消すのはかなり簡単です。さらに多くの...「想像力」と言いましょう...これを処理する方法、たとえば、すべてのSSHキーをLDAPに保存するなど、他の資格情報と同様にSSHキーを集中化します。


2
SSHキーをLDAPに保存したい場合は、Kerberosについて学習します。
84104

1
Kerberosを展開しました。個人的には、それは問題を探すための解決策だと思います。
ワンブル

2
@Ash:質問はコメントではなく質問に入れられます。
ワンブル

1
私は上記のコメントを無視するつもりでした-しかし、このサイトを初めて使う人には、与えられた答え、説明、誤解の実装に関連するコメントがある場合、これを明確にすべきだと明確にすべきだと感じましたコメントで、OPが発生する可能性のある混乱を明確にするために回答を編集できるようにします。
マザテック

2
いいえ、答えが元々尋ねられた質問に対応していない場合は、コメントで明確な質問をする必要があります。回答の内容に基づいて新しい質問をする場合は、ページの右上隅にある大きな「質問をする」ボタンを使用して新しい質問をする必要があります。これはQ&Aサイトであり、ディスカッションフォーラムではありません。
ワンブル

6

標準の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で実行することもできます。


1

より簡単な方法は次のとおりです。

Linux / Macユーザーの場合:

  1. 公開鍵と秘密鍵を作成するには、次のコマンドを使用します。 $ ssh-keygen -t rsa -b 4096

  2. 公開キーをS3バケットのフォルダーにアップロードします。例:S3> MyBucket>キーペア

  3. 秘密鍵を保存して保護します。

Windowsユーザーの場合:

  1. puttygenを使用してキーを生成します。
  2. DigitalOceanに従ってSSHキーを作成します。
  3. 公開鍵をS3> MyBucket> Keypairにアップロードします
  4. 秘密鍵を保存して保護します。

次の手順は、Linux AMIの起動中に重要です。

  1. IAMロールにAmazonS3FullAccessポリシーで作成されたロールがあることを確認します。これにより、インスタンスは、S3バケットにアクセスする役割を引き受けることができます。これは、S3から公開キーを読み取り、ユーザープロファイルにコピーするために必要です。

  2. [インスタンスの詳細の構成]> [詳細](テキストとして)のユーザーデータセクションに次のコードを追加します。

    #!/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
    

このセットアップは、User1User2を作成し、それらをsudoユーザーに追加します。AWS S3のcpコマンドのコピーS3フォルダからユーザーの公開鍵に自分の.ssh/authorized_keys path。最後のセクションでは、パスワードを必要とせずに管理者としてコマンドを実行します。

ここで推奨できる多くのセキュリティの改善があります。この例では明示的には使用していませんが、S3バケットへのアクセスを特定のバケットに制限し、sudoでパスワードの使用を無効にすることのセキュリティへの影響を知ることは、強調できることです。特定のニーズに基づいて賢く使用してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.