Saya memiliki server Ubuntu di Amazon EC2, yang saya gunakan untuk pengembangan, dan hari ini saya dengan bodohnya membersihkan semuanya dari ~/.ssh/authorized_keys
file saya . Untungnya saya memiliki SSH terbuka, jadi saya masih terhubung, dan dapat memperbaiki file, tetapi ketika saya mencoba untuk mengembalikan file kunci saya, itu tidak berfungsi. Saya masih mendapat izin dari server di mesin lokal saya.
authorized_keys
memiliki izin 600. Saya telah mencoba menambahkan kunci SSH saya dengan ssh-rsa dan meninggalkan ssh-rsa. Saya juga mencoba membuat kunci SSH menjadi satu baris, tetapi itu tidak berhasil.
Apakah ada hal lain yang harus saya lakukan seperti memuat ulang file?
data-recovery
ssh
amazon-ec2
Dave Long
sumber
sumber
Jawaban:
Anda tidak boleh menyimpan file dengan isinya dimulai dengan
-----BEGIN RSA PRIVATE KEY-----
di server, itu adalah kunci pribadi Anda . Sebagai gantinya, Anda harus memasukkan kunci publik ke dalam~/.ssh/authorized_keys
file.Kunci publik ini memiliki
.pub
ekstensi ketika dibuat menggunakanssh-keygen
dan isinya dimulai denganssh-rsa AAAAB3
. (Format biner dijelaskan dalam jawaban untuk pertanyaan ini ).Izin
~/.ssh
pada server harus 700. File~/.ssh/authorized_keys
(di server) seharusnya memiliki mode 600. Izin kunci (pribadi) di sisi klien harus 600.Jika kunci pribadi tidak dilindungi dengan kata sandi, dan Anda menaruhnya di server, saya sarankan Anda untuk membuat yang baru:
Anda dapat melewati ini jika Anda sepenuhnya yakin bahwa tidak ada yang dapat memulihkan kunci pribadi yang dihapus dari server.
Jika ini tidak membantu, jalankan
ssh
dengan opsi untuk lebih banyak kata:Di sisi server, Anda dapat meninjau
/var/log/auth.log
detailnya.sumber
ssh-keygen -t rsa
dan memasukkan file yang baru dibuatid_rsa.pub
di~/.ssh/authorized_keys
server Anda. Lihat juga docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…ssh-keygen -y -f key.pem > key.pub
Cara alternatif untuk menginstal kunci publik Anda di mesin jarak jauh
authorized_keys
:Beberapa keuntungan:
tidak perlu
ssh-copy-id
diinstal.jaminan bahwa
mkdir
bekerja sebelum mencoba untuk menambahkanid_rsa.pub
keauthorized_keys
.sumber
mkdir -p ~/.ssh
bagian dari jawaban yang diberikan oleh @MariusButucumask 077 && mkdir -p ~/.ssh
adalah semua yang perlu Anda lakukan untuk memastikan bahwa itu akan berfungsi dengan baik.Jika Anda memiliki otentikasi berbasis login maka gunakan
ssh-copy-id
untuk menambahkan kunci publik Anda ke server jauh.sumber
brew install ssh-copy-id
sudo port install openssh +ssh_copy_id
. The+ssh_copy_id
menginstal openssh dengan varian ssh_copy_id.sumber
Cara termudah adalah menyalin dan menempel ...
Pertama lihat / salin konten kunci publik lokal Anda
id_rsa.pub
termasuk awal "ssh-rsa" sampai berakhir dengan alamat email Anda:Kemudian edit
authorized_keys
di server dan rekatkan isi clipboard Anda di bawah tombol lain apa pun di file itu:Dan simpan
Ctl+O
, keluar dari fileCtl+X
, keluar dari sesi SSHexit
dan coba masuk kembali untuk mengonfirmasi itu berhasil. Jika tidak meminta kata sandi, itu berhasil.sumber
Saya pikir saya dapat berkontribusi untuk ini karena ini adalah contoh AWS khusus dan semua jawaban hanya memperlakukan masalah sebagai masalah Linux, seolah-olah itu adalah perangkat keras. Hal pertama yang perlu Anda pahami adalah bahwa Anda seharusnya tidak pernah memperlakukan EC2 sebagai perangkat keras. Itu hanya akan membuat lebih banyak pekerjaan untuk Anda Perlakukan mereka sebagai volatile. Itulah rintangan terbesar yang saya lihat di antara orang-orang dengan AWS. Buat AMI dari instance Anda dan masukkan kunci yang Anda butuhkan ke instance baru. cloud-init akan membereskannya untuk Anda. Secara lebih rinci yang harus Anda lakukan adalah menggunakan kunci publik yang benar ketika membuat instance baru dari AMI yang asli. Jika, seperti dalam komentar dari jawaban yang disetujui, Anda ingin membuat pasangan kunci Anda sendiri dari file pub dan pemulung AWS memberi Anda opsi untuk mengunggah kunci publik Anda untuk digunakan dalam EC2.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws
sumber
Setelah menyimpan kunci publik, Anda harus menyimpan kunci pribadi ke dalam direktori dan file di pc Anda. Dan di bagian auth dari ssh pada dempul Anda harus menunjuk ke file kunci pribadi yang Anda simpan di desktop Anda. Itu akan berhasil. Ini bekerja untuk saya.
sumber
Dapatkan shell pada mesin jarak jauh di mana Anda ingin meletakkan kunci dan kemudian Anda dapat menjalankan satu-liner ini untuk membuat file dan direktori yang diperlukan, mengatur izin mereka dan menambahkan kunci ke file. Tentu saja Anda harus mengubah
KEYGOESHERE
bagian di bawah ini dan komentar setelahnya.sumber
Berikut adalah variasi di mana Anda mungkin memiliki daftar nama file kunci publik dalam file teks dan kumpulan besar file kunci publik juga di direktori yang sama.
Variasi ini dapat membantu jika Anda memberikan daftar besar file kunci publik untuk diimpor :-)
sumber