Amazon EC2インスタンスにSSHアクセスを設定するにはどうすればよいですか?


87

Ubuntu 10.4を実行しているAmazon EC2インスタンスへのSSHアクセスが必要です。私が持っているのは、Amazonのユーザー名とパスワードだけです。何か案は?


2
ダウンロードした後にchmod 400 my_private_key.pem.txtを実行することを忘れないでください。
Peter Kaminski、

回答:


159

基本的に、SSH経由でEC2にログインするには、秘密鍵ファイルが必要です。次の手順に従って作成してください。

  • 行くhttps://console.aws.amazon.com/ec2/homeを&既存のAmazonアカウントにサインインします。
  • LHSまたはhttps://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairsの [キーペア]をクリックします
    • 自分で(またはEC2の作成プロセス中に)生成したKEYのリストが表示されます。
    • 秘密鍵が表示されない、または紛失した場合は、「鍵ペアの作成」をクリックします。
    • 一意の名前を入力し、Enterキーを押します。
    • 秘密鍵を保存するためのダウンロードパネルが表示されます。保存してください。
    • ファイルのアクセス許可 "0600"でどこかに保管してください
  • LHSまたはhttps://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instancesの「インスタンス」をクリックします
    • ec2-instancesのリストが表示されます。何も表示されない場合は、作成してください。
    • EC2マシンをクリックして、パブリックDNSアドレスを書き留めます。
  • ターミナルを開き(Linuxの場合)、次のコマンドを入力します
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>-ルートユーザー名は、ディストリビューションの選択に基づいて、ec2-userまたはubuntuユーザー名として、最新のリリースでは回避されています。
    • Enterキーを押す
    • それでおしまい。

6
sshを介してrootとして直接ログインできない可能性があります。ec2-userなどの非rootアカウントを使用する必要があるため、 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
接続しようとすると、のubuntu代わりにログインを使用するように言われましたroot。どうやら私はubuntuサーバー12.04インスタンスを持っています。
Vasiliy Stavenko 2012年

3
SSHアカウントを作成しました。次に、作成したアカウントでSCPを使用してファイルをアップロードする方法を教えてください。SCPを使用してアップロードしようとすると、「Permission denied(publickey)」と表示されます。
Ashok KS 2013年

5
それでもこのメッセージは「許可が拒否されました(公開鍵)」です。何故ですか?
Kasun Kariyawasam 2015

2
Y'allは "Permission denied(publickey)"を取得しています。Elastic Beanstalkを使用している可能性があります。その場合は、EB env Config、Securityに移動し、新しいキーペアを選択する必要があります。キーを受け入れる新しいEC2インスタンスが作成されます。そして、ユーザー名は、ec2-userまたはそうかもしれませんubuntuが、そうではありませんroot
ホルヘオルピネル2018

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

ubuntu代わりに使用してくださいroot。あなたの問題は解決されます。乾杯!


12

ステップ1)ec2マシンに割り当てられた秘密鍵をダウンロードします (作成時にダウンロードは1回のみです。どこかにコミットすることをお勧めします)

ステップ2)次のコマンドを実行します。

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

公式ドキュメントSSHを使用してLinux / Unixインスタンスに接続する


7

13.04の現在のユーザーは "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.comです。


4

最初にキーペアを作成する必要があります-EC2コンソールを使用してそれを行います。次に、秘密鍵を使用してec2-user、選択したSSHクライアントを使用してサーバー(ユーザー名は)にSSH接続します。

いったん入ると、必要にsudo su -応じてrootを取得するためにa を発行できます(注:rootとして直接ログインすることはできません)。


4

MacOSを使用している場合は、SSH構成ファイル(〜/ .ssh / config)を作成/編集して、次のように記述します。

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

次に、EC2インスタンスのいずれかに接続します。

ssh MYNAME.amazonaws.com

これ以上何もない!


私はのようなさまざまな地域のためのマルチPALキーを持っている場合は、私たち-東1.pemと私たちは、西2.pem
ハシーブ

1

AWSでUbuntuをセットアップするには、次の手順に従ってください。

  1. Amazon Web Servicesにログインし、EC2を選択します。
  2. [ Launch Instance]を選択し、適切なイメージ(Ubuntu)、インスタンスタイプを選択し、VPCネットワークとサブネット、ストレージを構成し、セキュリティグループで SSHアクセスを許可して、ウィザードに従います。次にを起動します。
  3. 初めて、おそらくキーペアをセットアップしてインスタンスに割り当てる必要があります。また、中に鍵ペアを作成することができる鍵のペア。作成したら、PEMファイルをダウンロードして安全な場所に保管します。
  4. インスタンスが起動したら、インスタンスが初期化され実行されるまで待ちます。

SSH経由でインスタンスにアクセスするには、次のコマンドを実行します。

  1. PEMファイルを指定してLinuxボックスに接続します。例:

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    PEMファイルに600の権限があることを確認してください(chmod 600 file.pem)。

トラブルシューティング

あなたはVPCのインスタンスを実行している、とあなたのセキュリティグループは、(右ルールで)正しく、それはまだで仕事、しない場合はVPCのセクションでは、サブネットチェックあなたに添付しなければならないVPC(両方が使用され、あなたのインスタンスで)とセットアップで新しいルールルートテーブルがある0.0.0.0/0として、送信先とあなたのインターネットゲートウェイとしてターゲット

詳細については、インスタンスへの接続のトラブルシューティングをご覧ください。

参照:EC2インスタンスにアクセスしようとしたときにタイムアウトになる可能性のある理由


1

1)最初にchmod.pem file以下のようにファイルの権限を制限します

chmod 400 my-key-pair.pem

2)次に ssh.sshフォルダから直接次のコマンドを使用します

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

注: - .sshフォルダに移動します。最初にを押しCtrl + Hてすべての隠しファイルを表示し、最後にcd .ssh


0

OS Distroの正しいユーザーとしてログインしていないことが問題である可能性があります。特定の新しいAMIでは、ユーザー名が「ubuntu」ではなく、「ec2-user」の場合があります。たとえば、Amazon Linuxの場合、ユーザーは「ec2-user」だと思います。エリックハモンドはここに例を示します:http : //alestic.com/2014/01/ec2-ssh-username

私の提案、試してみてください:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

AMIが間違っている場合は、マシンを完全に再起動して、クラスター間で統一性を保つことができます。これがあなたの問題であるなら、おそらくあなたのLinuxボックスには同じOS Distroが欲しいでしょう。


0

これらすべての回答で提案されていることを行うだけでは十分ではありません。各インスタンスに対して、セキュリティグループが表示されます。新しいインスタンスを起動すると、これがデフォルトに設定されます。セキュリティグループを編集し、sshポートを追加する必要があります。後で、Webサイトをホストするときにも、8080、8443、80、443ポートを追加する必要があります。


0

「すべてのトラフィック」ポートを含むデフォルトのセキュリティグループを使用するAWSの提案を受け入れました。

そして、何度も何度も新しいec2インスタンスに接続しようとした後、使用しているセキュリティグループを編集し、手動で22ポート(ssh)を受信と送信に追加する必要があることに気付きました。

それが役に立てば幸い !


0

まず、pemファイルの権限を変更します

chmod 400 path/to/key_pair.pem

〜/ .ssh / configファイル内で、ファイルの上部に次の行を追加します

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

ホスト名はIPまたはサーバーのリンクを取得し、ユーザーはサーバーのユーザー名を取得し、IDファイルはインスタンスの作成時にAWSからダウンロードされたファイルです。ターミナルで次のコマンドを実行するだけです

ssh AWS

そしてそれをお楽しみください!

.sshフォルダに移動します。最初Ctrl + Hにホームフォルダを押して、すべての隠しファイルを表示し、最後にcd .ssh


0

これらのことを確認してください

  1. 秘密鍵には400の権限が必要です

  2. アクセスしようとしているAWSインスタンスに対してポート22が開いていることを確認してください。

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX =インスタンスのパブリックIP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.