<p>如何通过 ssh 连接到 Amazon 实例?<br />
我有:</p>
<ol>
<li>在 Amazon 注册;</li>
<li>在 Amazon 网站上创建公钥和证书并保存到磁盘;</li>
<li>进入我的控制台并创建环境变量;</li>
<li>$ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/</li>
<li>$ export EC2_CERT=/home/default/aws/cert-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem</li>
<li>$ export EC2_PRIVATE_KEY=/home/default/aws/pk-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem</li>
<li>告诉 Amazon API使用该密钥对,并将密钥对保存到文件:</li>
<li>$ ec2-add-keypair ec2-keypair > ec2-keypair.pem</li>
<li>使用以下密钥对启动 Amazon Ubuntu 9 实例:</li>
<li>$ ec2-run-instances ami-ed46a784 -k ec2-keypair</li>
<li>尝试建立到实例的 ssh 连接:</li>
<li>$ ssh -v -i ec2-keypair.pem ubuntu@ec2-174-129-185-190.compute-1.amazonaws.com</li>
<li>OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007</li>
<li>debug1: Reading configuration data /etc/ssh/ssh_config</li>
<li>debug1: Applying options for *</li>
<li>debug1: Connecting to ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190] port 22.</li>
<li>debug1: Connection established.</li>
<li>debug1: identity file ec2-keypair.pem type -1</li>
<li>debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1</li>
<li>debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH*</li>
<li>debug1: Enabling compatibility mode for protocol 2.0</li>
<li>debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1</li>
<li>debug1: SSH2_MSG_KEXINIT sent</li>
<li>debug1: SSH2_MSG_KEXINIT received</li>
<li>debug1: kex: server->client aes128-cbc hmac-md5 none</li>
<li>debug1: kex: client->server aes128-cbc hmac-md5 none</li>
<li>debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent</li>
<li>debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP</li>
<li>debug1: SSH2_MSG_KEX_DH_GEX_INIT sent</li>
<li>debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY</li>
<li>debug1: Host ‘ec2-174-129-185-190.compute-1.amazonaws.com’ is known and matches the RSA host key.</li>
<li>debug1: Found key in /home/default/.ssh/known_hosts:11</li>
<li>debug1: ssh_rsa_verify: signature correct</li>
<li>debug1: SSH2_MSG_NEWKEYS sent</li>
<li>debug1: expecting SSH2_MSG_NEWKEYS</li>
<li>debug1: SSH2_MSG_NEWKEYS received</li>
<li>debug1: SSH2_MSG_SERVICE_REQUEST sent</li>
<li>debug1: SSH2_MSG_SERVICE_ACCEPT received</li>
<li>debug1: Authentications that can continue: publickey</li>
<li>debug1: Next authentication method: publickey</li>
<li>debug1: Trying private key: ec2-keypair.pem</li>
<li>debug1: read PEM private key done: type RSA</li>
<li>debug1: Authentications that can continue: publickey</li>
<li>debug1: No more authentication methods to try.</li>
<li>权限被拒绝(公钥)。</li>
</ol>
<p>可能存在什么问题以及如何使其工作?</p>
<p>对于 Ubuntu 实例:<br />
chmod 600 ec2-keypair.pem<br />
ssh -v -i ec2-keypair.pem ubuntu@ec2-174-129-185-190.compute-1.amazonaws.com<br />
对于其他情况,您可能需要使用 ec2-user 而不是 ubuntu。<br />
我使用的大多数 EC2 Linux 映像默认只创建了 root 用户。<br />
另见:<br />
<a href="http://www.youtube.com/watch?v=WBro0TEAd7g" target="_blank">http://www.youtube.com/watch?v=WBro0TEAd7g</a></p>