Saya punya dua server. Kedua server berada di CentOS 5.6. Saya ingin SSH dari Server 1 ke Server 2 menggunakan kunci pribadi yang saya miliki (OpenSSH SSH-2 Private Key).
Saya tidak tahu bagaimana melakukannya di unix. Tapi yang saya lakukan di windows menggunakan Putty adalah memberi makan kunci privat OpenSSH saya ke putty-gen dan menghasilkan kunci pribadi dalam format PPK.
Namun, saya akan membuat skrip bash dari server 1 yang akan menjalankan beberapa perintah di server 2 melalui SSH.
Bagaimana cara SSH ke Server 2 menggunakan file kunci pribadi saya dari Server 1?
ssh-copy-id user@machine
Jawaban:
Anda memerlukan kunci publik SSH Anda dan Anda akan memerlukan kunci pribadi ssh Anda. Kunci dapat dibuat dengan
ssh_keygen
. Kunci pribadi harus disimpan di Server 1 dan kunci publik harus disimpan di Server 2.Ini sepenuhnya dijelaskan dalam halaman openssh, jadi saya akan mengutip banyak dari itu. Anda harus membaca bagian 'Otentikasi'. Manual openSSH juga harus sangat membantu: http://www.openssh.org/manual.html
Harap berhati-hati dengan ssh karena ini memengaruhi keamanan server Anda.
Dari
man ssh
:Ini berarti Anda dapat menyimpan kunci pribadi Anda di direktori home di .ssh. Kemungkinan lain adalah memberi tahu ssh melalui
-i
sakelar parameter untuk menggunakan file identitas khusus. Juga dariman ssh
:Ini untuk kunci pribadi. Sekarang Anda perlu memperkenalkan kunci publik Anda di Server 2. Sekali lagi kutipan dari
man ssh
:Cara termudah untuk mencapainya adalah dengan menyalin file ke Server 2 dan menambahkannya ke file Authorized_key:
Otorisasi melalui kunci publik harus diizinkan untuk daemon ssh, lihat
man ssh_config
. Biasanya ini dapat dilakukan dengan menambahkan pernyataan berikut ke file konfigurasi:sumber
ssh -i keyfile
Terima kasih!ssh-copy-id
:ssh-copy-id -i ~/.ssh/foo.id_rsa remote.example.com
.ssh-add
setelah membuat kunci pada komputer yang Anda hubungkan. itulah yang menyebabkan sakit kepala bagi kebanyakan orang.$ ssh -i ~/.ssh/id_rsa [email protected]
Saya mendapatkan kesalahan[email protected]: Permission denied (publickey).
saya memiliki kunci dibuat, ditambahkan secara lokal menggunakanssh-add
, dan ditambahkan sebagai kunci resmi pada server jauh.Saya menggunakan ssh dengan opsi -i untuk menambahkan kunci Anda di sini.
Jika Anda ingin melewatkan arg1, arg2 dengan file .sh, cukup berikan setelah file .sh dan gunakan ruang penggunaan untuk memisahkannya.
ssh -i home/avr/new.pem [email protected] "/var/www/beta/betatolive.sh mmin 30"
sumber
chmod 600 home/avr/new.pem
Hal pertama yang perlu Anda lakukan adalah memastikan Anda telah menjalankan perintah keygen untuk menghasilkan kunci:
Kemudian gunakan perintah ini untuk menekan tombol ke server jauh, memodifikasinya agar sesuai dengan nama server Anda.
sumber
ssh-copy-id user@hostname
sajaTambahkan kunci publik (
id_[rd]sa.pub
) untuk mesin sumber Anda (tempat asal Anda) ke~/.ssh/authorized_keys
file server tujuan untuk nama pengguna yang ingin Anda ssh masuk. Jika Anda kehilangan kunci publik, Anda ingin membuatnya dengan yang barussh-keygen
. Menggunakan argumen default untuk itu harus ok untuk sebagian besar tujuan. Jika Anda memerlukan instruksi yang lebih terperinci, ada ribuan tutorial yang bisa Anda lakukan di google.sumber
Gunakan
ssh-copy-id
di Server 1, dengan asumsi Anda memiliki pasangan kunci (dibuat denganssh-keygen
):Sekarang Anda harus dapat ssh ke Server 2 dengan ssh menggunakan kunci pribadi
Memang, jika Anda memeriksa
cat ~/.ssh/authorized_keys
Server 2, Anda akan melihat kunci publik ditambahkan untuk Anda.sumber