305

sshを介してAWSインスタンスに接続するにはどうすればよいですか?

私は持っています:

  1. AWSにサインアップしました。
  2. AWS Webサイトで公開鍵と証明書を作成し、それらをディスクに保存しました。
  3. 私のコンソールに行き、環境変数を作成しました:

    $ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
    $ export EC2_CERT=/home/default/aws/cert-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
    $ export EC2_PRIVATE_KEY=/home/default/aws/pk-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
    
  4. このキーペアを使用するようにAWSAPIに指示し、キーペアをファイルに保存しました。

    $ ec2-add-keypair ec2-keypair > ec2-keypair.pem
    
  5. このキーペアを使用してAWSUbuntu9インスタンスを開始しました。

    $ ec2-run-instances ami-ed46a784 -k ec2-keypair
    
  6. インスタンスへのssh接続を確立しようとしました:

    $ ssh -v -i ec2-keypair.pem ubuntu@ec2-174-129-185-190.compute-1.amazonaws.com
    OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: Applying options for *
    debug1: Connecting to ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190] port 22.
    debug1: Connection established.
    debug1: identity file ec2-keypair.pem type -1
    debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1
    debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH*
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-cbc hmac-md5 none
    debug1: kex: client->server aes128-cbc hmac-md5 none
    debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
    debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
    debug1: Host 'ec2-174-129-185-190.compute-1.amazonaws.com' is known and matches the RSA host key.
    debug1: Found key in /home/default/.ssh/known_hosts:11
    debug1: ssh_rsa_verify: signature correct
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey
    debug1: Next authentication method: publickey
    debug1: Trying private key: ec2-keypair.pem
    debug1: read PEM private key done: type RSA
    debug1: Authentications that can continue: publickey
    debug1: No more authentication methods to try.
    Permission denied (publickey).
    

    何が問題であり、それをどのように機能させるのですか?

4

20 に答える 20

538

Ubuntuインスタンスの場合:

chmod 600 ec2-keypair.pem
ssh -v -i ec2-keypair.pem ubuntu@ec2-174-129-185-190.compute-1.amazonaws.com

他の例では、ec2-userの代わりにを使用する必要がある場合がありますubuntu

私が使用したほとんどのEC2Linuxイメージには、デフォルトでrootユーザーのみが作成されています。

参照:http ://www.youtube.com/watch?v = WBro0TEAd7g

于 2009-09-21T13:58:03.457 に答える
93

今では:

ssh -v -i ec2-keypair.pem ec2-user@[yourdnsaddress]
于 2010-12-03T03:03:04.667 に答える
47

Canonicalのリリースでは、同じ問題が発生しているubuntuイメージを持ってここに着陸する人には、デフォルトでユーザー「ubuntu」が使用されます。

于 2010-11-04T02:59:18.047 に答える
20

Bitnamiイメージを使用している場合は、「bitnami」としてログインします。

当たり前のようですが、見落としていました。

于 2011-12-26T04:13:25.830 に答える
8

私のubuntuイメージの場合、実際にはubuntuユーザーであり、ec2-userではありません;)

于 2011-10-07T23:11:52.350 に答える
5

openSSHを使用したUbuntu10.04

これは正確な使用法です:

ssh -v -i [yourkeypairfile] ec2-user@[yourdnsaddress]

例えば:

ssh -v -i GSG_Keypair.pem ec2-user@ec2-184-72-204-112.compute-1.amazonaws.com

上記の例は、次のLinux / UNIXマシンに接続するためのAWSチュートリアルから直接引用したものです:http: //docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/

于 2011-05-28T22:02:00.483 に答える
5

また、pemファイルのパーミッションがオープンすぎる場合にも文句を言います。これを修正するには、ファイルを600にchmodします。

于 2012-05-16T02:28:24.953 に答える
5

私もこれに遭遇していました-コミュニティで作成されたAMIを使用していたことがわかりました-デフォルトのユーザー名はniehterrootであり、ect-userやubuntuでもありませんでした。実際、私はそれが何であるかを知りませんでした-私が「root」を試してみるまで、サーバーは親切にxxxとしてログインするように私に頼みまし

-乾杯!

于 2013-07-12T00:04:56.147 に答える
4

使用する...

# chmod 400 ec2-keypair.pem

600権限を使用しないでください。使用すると、誤ってキーが上書きされる可能性があります。

于 2014-02-07T10:29:46.127 に答える
4

ローカルマシンに秘密鍵が必要です

リモートマシンまたはサーバーのIPアドレスまたはDNS名を知っている必要があります。これはAWSコンソールから取得できます

Linuxユーザーの場合

  • 秘密鍵のアクセス許可が600(chmod 600 <path to private key file>)であることを確認してください
  • sshssh -i <path to private key file> <user>@<IP address or DNS name of remote server>)を使用してマシンに接続します

Windowsユーザーの場合

  • PuTTyを使用してsshセッションを作成します(http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.66-installer.exe
  • 秘密鍵ファイルが.pem形式の場合は、puttygenを使用して.ppkに変換します
  • PuTTyを起動し、リモートサーバーのppkファイル、IPアドレス、またはDNS名を設定して、sshセッションを開始します
于 2016-01-03T12:36:41.097 に答える
3

Debian EC2インスタンスの場合、ユーザーはadminです。

于 2014-02-12T08:22:49.250 に答える
3

BitnamiからAWSイメージを実行している場合。ユーザー名はbitnamiになります。乾杯!

私のデバッグを見て、最後のものを見てください:

*

ssh -v -i awsliferaysrta.pem.txt root@54.254.250.***
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to 54.254.250.*** [54.254.250.***] port 22.
debug1: Connection established.
debug1: identity file awsliferaysrta.pem.txt type -1
debug1: identity file awsliferaysrta.pem.txt-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 05:5c:78:45:c9:39:3a:84:fe:f8:19:5d:31:48:aa:5f
debug1: Host '54.254.250.***' is known and matches the RSA host key.
debug1: Found key in /Users/macbookpro/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: awsliferaysrta.pem.txt
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to 54.254.250.*** ([54.254.250.***]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Remote: Port forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Forced command.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Please login as the user "bitnami" rather than the user "root".

*

于 2014-02-25T03:28:19.010 に答える
3

接続する手順は2つあります。

あなたの秘密鍵のChmod400、このように他の人はあなたの鍵にアクセスできません:

chmod 400 toto.pem

SSHでインスタンスに接続するには、インスタンスのパブリックIPアドレスを知っている必要があります。

ssh -i toto.pem ec2-user@XX.XX.XX.XXX

それが役に立てば幸い !

于 2015-02-22T23:46:19.933 に答える
2

これは私のために働いた:

ssh-keygen -R <server_IP>

ワークステーションに保存されている古いキーを削除するには、

次に、同じsshを再度実行すると機能しました。

ssh -v -i <your_pem_file> ubuntu@<server_IP>

ubuntuインスタンスの場合、ユーザー名は次のとおりです。Amazon Linux AMIの場合、ユーザー名は次のとおりです。ec2-user

イメージからインスタンスを再作成する必要はありませんでした。

于 2013-02-04T15:51:31.280 に答える
2

の許可ec2-keypair.pem400

chmod 400 ec2-keypair.pem

于 2014-01-03T06:24:34.767 に答える
1

EBSを使用している場合は、実行中のインスタンスにEBSボリュームをマウントすることもできます。次に、実行中のインスタンスにマウントして、/homeで何が起こっているかを確認します。ユーザーubuntuまたはec2-userのようなものを見ることができますか?または、〜/ .ssh/authorized_keysの下に正しい公開鍵がありますか

于 2013-12-04T23:29:31.390 に答える
1

私の場合(Mac OS X)、問題はファイルのブレークタイプでした。これを試して:

1.-TextWranglerで.pemファイルを開きます

2.-アプリの下部で、ブレークタイプが「Windows(CRLF)」であるかどうかを確認します。

于 2015-08-13T15:36:21.280 に答える
1

Amazon Linux AMIの場合はec2-user、Ubuntuイメージの場合はubuntu。また、RHEL6.4以降のec2-userRHEL6.3以前のルートFedoraec2-user Centos root

于 2015-08-23T13:09:37.247 に答える
0

このリストに追加するだけです。今朝、AWSEC2インスタンスに追加されたばかりの新しいユーザーで問題が発生しました。追いかけるために、問題はselinux強制モードでした)と、ユーザーのホームディレクトリが新しいEBS接続ボリュームにあるという事実でした。どういうわけか、selinuxは他のボリュームが好きではないと思います。他のすべての通常のsshの問題を調べたので、理解するのに少し時間がかかりました(/ etc / ssh / sshd_configは問題ありませんでした。もちろん、パスワードは許可されていません。権限は正しいなどです)。

修正?

今のところ(ユーザーが別のボリュームにSSHで接続できるようにする方法、または何らかの方法でそのボリュームを真のホームディレクトリポイントにする方法を理解するまで):

sudo perl -pi -e 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
sudo setenforce 0

それでおしまい。これで、新しいユーザーは自分のid_rsaキーを使用してログインできます。

于 2013-06-13T18:35:07.367 に答える
0

同じ問題がありました。'ec2-user'または'root'でログインしようとしたときに、アクセスが拒否されました(publickey)。

マシンイメージのAMI番号をグーグルで検索すると、DebianwikiページにSSHログイン情報が表示されていました。

お役に立てれば。

于 2013-09-27T03:36:55.340 に答える