Bagaimana menghubungkan ke instance AWS melalui ssh?
Saya sudah:
- Mendaftar di AWS;
- Membuat kunci publik dan sertifikat di situs web AWS dan menyimpannya ke disk;
Pergi ke konsol saya dan membuat variabel lingkungan:
$ 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
Beri tahu AWS API untuk menggunakan keypair ini dan menyimpan keypair ke file:
$ ec2-add-keypair ec2-keypair > ec2-keypair.pem
Memulai instance AWS Ubuntu 9 menggunakan keypair ini:
$ ec2-run-instances ami-ed46a784 -k ec2-keypair
Mencoba membuat koneksi ssh ke instance:
$ ssh -v -i ec2-keypair.pem [email protected] 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).
Apa yang bisa menjadi masalah dan bagaimana membuatnya bekerja?
Jawaban:
Untuk instance Ubuntu:
Untuk contoh lain, Anda mungkin harus menggunakan
ec2-user
bukanubuntu
.Sebagian besar gambar Linux EC2 yang saya gunakan hanya memiliki pengguna root dibuat secara default.
Lihat juga: http://www.youtube.com/watch?v=WBro0TEAd7g
sumber
Sekarang ini:
sumber
Rilis Canonical menggunakan 'ubuntu' pengguna secara default untuk siapa saja yang mendarat di sini dengan gambar ubuntu yang muncul dengan masalah yang sama.
sumber
Jika Anda menggunakan gambar Bitnami, masuk sebagai 'bitnami'.
Tampak jelas, tetapi sesuatu yang saya abaikan.
sumber
Seems <sarcasm>obvious</sarcasm>
Untuk gambar ubuntu saya, sebenarnya itu adalah pengguna ubuntu dan BUKAN pengguna ec2;)
sumber
Ubuntu 10,04 dengan openSSH
ini adalah penggunaan yang tepat:
sebagai contoh:
contoh di atas diambil langsung dari tutorial AWS untuk menghubungkan ke mesin Linux / UNIX di: http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/
sumber
Ini juga akan mengeluh jika izin file pem terlalu terbuka. chmod file ke 600 untuk memperbaikinya.
sumber
chmod 600 your_file.pem
Saya juga mengalami ini - ternyata saya menggunakan AMI yang dibuat komunitas - dan nama pengguna default adalah niehter root, juga bukan ect-user atau ubuntu. Bahkan, saya tidak tahu apa itu - sampai saya mencoba ' root ' dan server dengan ramah meminta saya untuk masuk sebagai xxx di mana xxx adalah apa pun yang dikatakannya kepada Anda.
-Bersulang!
sumber
Anda perlu memiliki kunci pribadi di mesin lokal Anda
Anda perlu mengetahui alamat IP atau nama DNS mesin atau server jarak jauh Anda, Anda bisa mendapatkannya dari konsol AWS
Jika Anda pengguna linux
chmod 600 <path to private key file>
)ssh -i <path to private key file> <user>@<IP address or DNS name of remote server>
)Jika Anda pengguna windows
sumber
menggunakan...
jangan gunakan izin 600 jika tidak, Anda mungkin menimpa kunci Anda secara tidak sengaja.
sumber
ini bekerja untuk saya:
untuk menghapus kunci lama yang tersimpan di workstation juga berfungsi dengan bukan
kemudian melakukan ssh yang sama lagi itu berhasil:
pada contoh-contoh ubuntu, nama penggunanya adalah: ubuntu di Amazon Linux
Saya tidak perlu membuat ulang instance dari gambar.
sumber
Untuk instance Debian EC2, pengguna adalah
admin
.sumber
Ada 2 langkah yang harus dihubungkan:
Chmod 400 pada kunci pribadi Anda, seperti ini yang lain tidak dapat mengakses ke kunci Anda:
Untuk terhubung ke instance Anda di SSH, Anda perlu mengetahui alamat IP publik dari instance Anda:
Semoga ini bisa membantu!
sumber
Jika Anda menggunakan EBS, Anda juga dapat mencoba memasang Volume EBS pada instance yang sedang berjalan. Kemudian pasang pada instance yang berjalan dan lihat apa yang terjadi di / home. Anda dapat melihat hal-hal seperti apakah pengguna ubuntu atau pengguna ec2? atau apakah itu memiliki kunci publik yang tepat di bawah ~ / .ssh / otor_keys
sumber
Izin untuk
ec2-keypair.pem
seharusnya400
chmod 400 ec2-keypair.pem
sumber
Jika Anda menjalankan gambar AWS dari Bitnami. Nama pengguna akan bitnami. Bersulang!
lihat debug saya dan lihat yang terakhir:
*
*
sumber
Dalam kasus saya (Mac OS X), masalahnya adalah jenis istirahat file. Coba ini:
1.- Buka file .pem dengan TextWrangler
2.- Di bagian bawah aplikasi, verifikasi apakah Tipe Pemutus adalah "Windows (CRLF)".
sumber
Pengguna ec2 untuk Amazon Linux AMI dan ubuntu untuk gambar Ubuntu. Juga, RHEL 6.4 dan yang lebih baru ec2-user RHEL 6.3 dan root sebelumnya Fedora ec2-user Centos root
sumber
Tambahkan saja ke daftar ini. Saya mengalami masalah pagi ini dengan pengguna baru saja ditambahkan ke contoh AWS EC2. Untuk memotong ke pengejaran, masalahnya adalah selinux (yang dalam mode menegakkan ), bersama dengan fakta bahwa dir home user saya berada pada volume terlampir EBS baru. Entah bagaimana saya kira selinux tidak suka volume lainnya. Butuh beberapa saat untuk mencari tahu, karena saya melihat semua masalah ssh biasa lainnya (/ etc / ssh / sshd_config baik-baik saja, tentu saja tidak ada kata sandi yang diizinkan, izin benar, dll.)
Memperbaiki?
Untuk saat ini (sampai saya mengerti bagaimana mengizinkan pengguna untuk ssh ke volume yang berbeda, atau entah bagaimana menjadikan volume itu sebagai titik dir home yang bonafid):
Itu dia. Sekarang pengguna baru saya dapat login, menggunakan kunci id_rsa sendiri.
sumber
Punya masalah yang sama. Izin ditolak (publickey) ketika mencoba masuk dengan 'ec2-user' atau dengan 'root'.
Menelusuri nomor AMI dari gambar mesin dan memiliki informasi masuk SSH langsung di halaman wiki Debian.
Semoga ini membantu.
sumber