salin kunci pribadi ssh ke komputer lain

52

Saya perlu menggunakan komputer lain untuk mengakses server ssh saya. Ini karena vpn yang baru-baru ini diterapkan di universitas saya tidak berfungsi di komputer saya saat ini dan saya telah kehilangan akses ke server.

Saya ssh melalui kunci ssh terenkripsi. Bisakah saya menyalin kunci ini ke komputer baru (di mana vpn bekerja). Saya mencoba menyalin id_rsadan id_rsa.pubfile dalam ~/.sshfolder tetapi tidak mengenali kunci dan tidak ada prompt untuk memasukkan kata sandi untuk mendekripsi kunci.

EDIT: Saya tidak dapat mengakses server untuk menghasilkan pasangan kunci baru untuk komputer baru dan saya berada di luar negeri sehingga secara fisik tidak dapat mengaksesnya.

Terima kasih.

benj
sumber
Apakah " id_rsh" salah ketik?
ændrük
1
Anda mungkin belajar lebih banyak tentang masalah dengan mencoba ssh -v -i ~/.ssh/id_rsa ssh-server.
ændrük
mencobanya. Tampaknya mengirim kunci tetapi tidak pernah meminta kata sandi untuk tidak mengenkripsi mereka. Saya juga mendapatkan pesan umum yang aneh "Roaming tidak diizinkan oleh server". Tebak kunci pribadi tidak dimaksudkan untuk disalin;). Sepertinya saya hanya akan harus mempercayai seseorang dengan akses fisik untuk masuk secara manual ke server saya dan mengubah pengaturan ssh. Terima kasih atas bantuan Anda.
benj
Kunci pribadi tidak boleh disalin! INI ADALAH RISIKO KEAMANAN. Hasilkan kunci baru untuk setiap perangkat baru !!!!
Eter
@ Lainnya Apakah itu benar? Bagaimana jika Anda perlu memformat ulang mesin? Hanya meniup kunci dan mulai yang baru?
nipponese

Jawaban:

66

Periksa izin dan kepemilikan file kunci pribadi Anda. Dari manual ,

File-file ini mengandung data sensitif dan harus dapat dibaca oleh pengguna tetapi tidak dapat diakses oleh orang lain (baca / tulis / jalankan). ssh hanya akan mengabaikan file kunci pribadi jika dapat diakses oleh orang lain.

Biasanya file kunci akan terlihat seperti ini,

$ ls -l ~/.ssh/id_rsa*
-rw------- 1 benj benj 1766 Jun 22  2011 .ssh/id_rsa
-rw-r--r-- 1 benj benj  388 Jun 22  2011 .ssh/id_rsa.pub

yang dapat Anda terapkan melalui:

$ chown benj:benj ~/.ssh/id_rsa*
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub
ændrük
sumber
2
Terima kasih. Itu berguna untuk diketahui. Saat Anda menyalin file ke komputer lain, izin tampaknya berubah ke pengguna itu. Aku menjalankan skrip chmod dan chown untuk berjaga-jaga. Sayangnya itu tidak membantu masalah saya.
benj
@ John ツ ini mungkin menjadi bagian dari masalah bagi saya tetapi tampaknya ada masalah lain. Saya akhirnya membuat seseorang secara fisik login ke server dan mengatur kunci baru. Tetapi akan menerima ini karena mungkin mencakup masalah utama.
benj
Itu bekerja untuk saya, @benj.
Sinthia V
14

Coba jalankan ssh-addsebelum Anda SSH ke server - Anda kemudian akan diminta untuk kata sandi dan kemudian sshmenghubungkan selanjutnya dapat menggunakan kunci pribadi Anda.

The ssh-addperintah menambahkan kunci agen kunci.

gertvdijk
sumber
1
Saya tidak berpikir ini masalahnya, karena 1) klien SSH dapat mengatasi tanpa agen kunci fungsional, 2) server tidak akan menanggapi dengan pesan "roaming tidak diizinkan" dan 3) klien ssh akan memilikinya sendiri pesan kesalahan ketika berbicara dengan agen kunci gagal dalam beberapa cara. Saya sudah memikirkannya sebagai jawaban .
gertvdijk
Ini memperbaiki masalah bagi saya. Lihat juga dokumentasi Github untuk ini .
Ionică Bizău
8

Kunci privat terenkripsi menahan kunci publik terkait tidak terenkripsi . Ini adalah cara klien SSH dapat terhubung ke server jarak jauh tanpa meminta kata sandi Anda (itu hanya menawarkan bagian publik pada saat itu). Setiap kali server menerima kunci publik, klien di PC Anda ingin mendekripsi kunci pribadi dan akan meminta Anda untuk frasa sandi.

Sekarang, setiap kali server hanya menerima koneksi dari alamat IP tertentu, ini ditolak sudah pada langkah pertama dan menjelaskan pesan yang Anda dapatkan dari server "Roaming tidak diizinkan oleh server".

Jadi, tebakan terbaik saya adalah server Anda dibatasi dalam beberapa cara untuk memungkinkan hanya alamat IP tertentu untuk kunci ini. Anda dapat melakukan ini dalam beberapa cara, tetapi ini adalah yang umum di ~/.ssh/authorized_keys:

from="192.168.1.2" ssh-rsa AAAAB3NzaC[...]

Untuk membuktikan bahwa Anda dapat membaca kunci publik dari kunci privat terenkripsi tanpa kata sandi, jalankan:

ssh-keygen -y -f /path/to/private/key
gertvdijk
sumber
1
Ini adalah proses yang sangat membantu untuk mendapatkan jawaban ketika Anda memiliki masalah dengan koneksi SSH. Terima kasih.
Sinthia V