Bagaimana cara mentransfer kunci SSH saya ke komputer lain?

42

Saya memiliki akun di dua mesin: H1 dan H2. Saya membuat kunci ssh pada H1 dan menginstalnya pada S1. Sekarang saya bisa ssh ke S1 dari H1. Saya ingin melakukan hal yang sama dari H2. Bagaimana cara menginstal kunci ssh yang dihasilkan pada H1 pada H2?

Bruce
sumber
2
Karena ssh-copy-idini adalah bukti yang lebih bodoh (tidak menimpa kunci yang ada atau secara tidak sengaja menyalin kunci privat alih-alih kunci publik ) dan solusi yang kurang dikenal, pertimbangkan untuk menerima salah satu dari jawaban tersebut sebagai jawaban yang diterima.
agtoever

Jawaban:

28

Diedit: Jika Anda memiliki kedua mesin, Anda dapat membagikan kunci pribadi Anda. Tetapi solusi ini tidak aman untuk notebook yang dicuri atau untuk mesin yang bukan milik Anda.

Anda dapat menyalin kunci pribadi Anda dari H1 ke H2, jika Anda ingin menggunakan kunci pribadi yang sama untuk dapat login dari H2 ke S1. Ketika Anda di H1 melakukan perintah:

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

Peringatan! Ini akan menghapus dan mengganti kunci pribadi apa pun yang Anda miliki di H2.

Cara yang lebih baik adalah membuat kunci privat baru pada H2 ( ssh-keygen) dan menginstal bagian publik mereka pada S1 dengan ssh-copy-idutil. Dalam kasus yang lebih aman ini Anda akan memiliki dua set kunci; satu untuk masuk H1-S1 dan kedua untuk masuk H2-S1. Akan ada dua kunci publik resmi di S1. Dan Anda akan dapat mencabut salah satu atau keduanya (misalnya, ketika notebook Anda dicuri, atau pemilik mesin memutuskan untuk menonaktifkan akun Anda dan menggunakan kembali semua file Anda).

osgx
sumber
8
Menyalin kunci pribadi sebenarnya bukan ide yang bagus. Memiliki satu kunci di beberapa lokasi 1. membuatnya lebih rentan, 2. meningkatkan risiko Anda kehilangan kendali atas semua lokasi, 3. tidak memungkinkan Anda untuk menonaktifkan akses hanya dari satu lokasi. Dari sudut pandang keamanan Anda harus membuat pasangan kunci baru di setiap lokasi - solusi dari Mu Qiao.
pabouk
27

Menggunakan ssh-copy-id

RINGKASAN

mesin ssh-copy-id [-i [identity_file]] [user @]

DESKRIPSI

ssh-copy-id adalah skrip yang menggunakan ssh untuk masuk ke mesin jarak jauh dan menambahkan file identitas yang ditunjukkan ke file ~ / .ssh / berwenang_keys mesin itu.

Mu Qiao
sumber
1
@Aku ingin melakukan ssh dari H2 ke S1. Saya ingin mentransfer dan menginstal kunci pribadi dan publik saya dari H1 ke H2. Akankah ini melakukan itu?
Bruce
3
@Bruce no, Anda perlu membuat ulang tombol pada h2 dan menggunakan perintah itu untuk menyalin kunci Anda. Pendekatan lain adalah membiarkan direktori home h1 dan h2 membagikan.
Mu Qiao
9

Gunakan dua kunci pribadi

Mengatur H2 menggunakan proses yang sama (tetapi bukan kunci pribadi yang sama) seperti yang Anda lakukan ketika mengatur H1:

  • Tidak pernah ada alasan yang baik untuk menyalin kunci pribadi dari mesin lain. Jika Anda belum membuat kunci pribadi baru di H2, lakukan sekarang. Juga menghasilkan kunci publik yang sesuai. Di terminal di H2,

mengetik: ssh-keygen -t rsa

  • Salin kunci publik H2 Anda ke server. Di terminal di H2,

mengetik: ssh-copy-id [email protected]

(tetapi gunakan nama pengguna Anda yang sebenarnya pada nama host S1 dan S1, dan kemudian ketikkan kata sandi Anda pada S1 saat diminta).

Ini menginstal kunci publik workstation Anda ke dalam ~/.ssh/authorized_keysfile untuk pengguna di server.

  • Tidak ada langkah 3. Mulai sekarang, Anda dapat masuk ke S1 dari H2 Anda, dan juga masuk ke S1 dari H1 Anda.

detail

Saya berasumsi bahwa apa yang sebenarnya Anda tanyakan adalah

  • Saya punya server ("S1")
  • Saya masuk ke server saya dari laptop pribadi saya ("H1")
  • Saya juga ingin masuk ke server saya dari workstation saya ("H2").

Apa cara yang tepat untuk melakukan itu?

  • Saya kira saya bisa masuk dengan kata sandi yang sama dari kedua tempat. Itu tidak mungkin benar, karena semua orang mengatakan bahwa otentikasi kunci publik jauh lebih baik daripada kata sandi. (Sebuah)
  • Saya kira saya bisa menyalin kunci pribadi dari laptop saya ke workstation saya. Itu tidak mungkin menjadi cara yang benar, karena semua orang mengatakan bahwa kunci privat tidak boleh meninggalkan mesin klien.

Orang-orang memahaminya bahwa satu akun di server memiliki satu nama pengguna dan, tentu saja, satu kata sandi resmi.

Sistem kunci publik seperti ssh lebih baik daripada sistem kata sandi: Satu akun di server memiliki nama pengguna tunggal dan sejumlah kunci publik resmi , semuanya terdaftar dalam ~/.ssh/authorized_keysfile.

( lebih detail ).

David Cary
sumber
Maafkan saya karena mengulangi diri saya sendiri .
David Cary
0

Apakah ssh-copy-id melakukan pekerjaan untuk Anda: http://linux.die.net/man/1/ssh-copy-id ?

Alex Wilson
sumber
@Aku ingin melakukan ssh dari H2 ke S1. Saya ingin mentransfer dan menginstal kunci pribadi dan publik saya dari H1 ke H2. Akankah ini melakukan itu?
Bruce
2
Jika Anda masuk ke S1 atau H1 (yang sekarang memiliki kunci Anda) menggunakan ssh-copy-id akan memungkinkan Anda untuk mentransfer kunci publik Anda (bukan pribadi) ke H2. Secara umum, yang terbaik adalah membatasi jumlah mesin yang menginstal kunci pribadi Anda. Cobalah untuk menyimpannya di beberapa mesin yang aman hanya untuk mencegah kehilangannya.
Bagaimana cara menyalin kunci pribadi saya ke H2?
Bruce
0

Untuk memindahkan kunci SSH dari satu komputer ke komputer lain. Cukup salin seluruh folder dari ~ / .ssh dari H1 (mesin lama) ke folder konten ~ / .ssh dari mesin baru H2.

Sekarang coba:

ssh [email protected] (IP S1 Anda)

Kemungkinan besar Anda akan mendapatkan peringatan izin untuk memperbaikinya:

chmod 400 ~ / .ssh / id_rsa

Sekarang lagi:

ssh [email protected] (IP S1 Anda)

Ini akan berfungsi dengan baik sekarang.

shaurya uppal
sumber