Cara Menjana dan Mengurus Kekunci SSH di Linux

Cara Menjana dan Mengurus Kekunci SSH di Linux

Protokol SSH (Secure Shell) menyediakan keupayaan untuk melaksanakan komunikasi yang disulitkan melalui rangkaian komputer. Operasi tipikal yang boleh kita lakukan menggunakan protokol adalah Log Masuk Jauh dan Perintah Jauh. Semasa kami log masuk ke komputer terpencil (dengan SSH Utiliti, sebagai contoh), kami diminta memberikan kata laluan untuk akaun yang kami gunakan untuk log masuk. Untuk keselamatan yang dipertingkatkan, kita boleh memutuskan untuk menggunakan kekunci SSH sebagai kelayakan: Setelah pelayan SSH dikonfigurasi dengan sewajarnya, dapat log masuk kita mesti tahu sesuatu (kata laluan) tetapi juga memiliki sesuatu (kunci). Dalam tutorial ini kita melihat cara menjana, mengurus dan menggunakan kekunci SSH.

Dalam tutorial ini anda akan belajar:

  • Apa itu Keypair SSH
  • Apakah perbezaan antara kunci SSH peribadi dan awam dan apakah peranan mereka
  • Cara menjana keypairs SSH
  • Cara mengubah suai kata laluan kunci ssh peribadi
  • Cara memindahkan kunci awam ke pelayan SSH
Cara Menjana dan Mengurus Kekunci SSH di Linux

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran bebas
Perisian Utiliti Open
Yang lain Tiada keperluan lain yang diperlukan
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Bagaimana SSH Keypairs Berfungsi

Kekunci SSH digunakan sebagai kelayakan log masuk, selalunya di tempat kata laluan teks yang jelas. Mereka bekerja secara berpasangan: kami selalu mempunyai awam dan a persendirian kunci. Kunci peribadi mesti kekal di komputer tempatan yang bertindak sebagai pelanggan: ia digunakan untuk decrypt maklumat dan ia tidak boleh dikongsi. Kunci awam, sebaliknya, digunakan untuk menyulitkan data dan mesti disalin pada pelayan jauh (kandungannya disalin di ~/.SSH/Authorized_keys fail dalam direktori rumah $ pengguna yang kami log masuk seperti pada pelayan - kami akan melihat bagaimana untuk melaksanakan operasi sedemikian semasa tutorial ini).

Keupayaan untuk menggunakan SSH-Keys sebagai kelayakan log masuk mesti dibenarkan oleh pelayan oleh pentadbir sistem, dengan menetapkan PubkeyAuthentication pilihan untuk Ya di dalam /etc/ssh/sshd.konfigurasi fail. Kedua -dua kata laluan teks yang jelas dan kunci awam boleh dibenarkan sebagai kaedah pengesahan pada masa yang sama, atau, sebagai contoh, seseorang boleh memutuskan untuk membenarkan akses hanya melalui kunci awam.

Alat dan utiliti yang akan kami gunakan dalam tutorial ini dipasang secara lalai dalam semua pengagihan Linux utama, sebagai sebahagian daripada Suite Perisian OpenSsh.



Menjana keypair SSH

Menjana keypair SSH adalah operasi yang sangat mudah: yang perlu kita lakukan ialah menggunakan SSH-Keygen utiliti. Cara paling mudah untuk melaksanakan operasi adalah hanya untuk memohon arahan tanpa sebarang hujah atau pilihan:

$ ssh-keygen Menjana pasangan kunci RSA awam/swasta. Masukkan fail di mana untuk menyimpan kunci (/rumah/egdoc/.SSH/ID_RSA): Masukkan frasa laluan (kosong tanpa frasa laluan): Masukkan frasa laluan yang sama sekali lagi: pengenalan anda telah disimpan di/rumah/egdoc/.ssh/id_rsa kunci awam anda telah disimpan di/rumah/egdoc/.SSH/ID_RSA.PUB Cap jari utama ialah: SHA256: JRCJ3A3EQ4WO/LX4VACCPCKYEAYU0AI80EMCDA7M5DK egdoc@fingolfin Imej rawak kunci adalah: + --- [RSA 3072] --- + | =.+.o . | | * = O ... | | E ... o + . | | . o+. o + .| | OS. + o o.| | o + o.+ O | | . o o.ob.O ... | | o o .B.B . | | +... oo = . | +---- [SHA256]-----+ 

Mari kita analisis apa yang berlaku apabila memohon arahan dengan cara ini. Perkara pertama yang kami minta adalah di mana kekunci yang dihasilkan harus disimpan: Secara lalai kunci peribadi yang dihasilkan dipanggil id_rsa, dan nama orang awam diperoleh dengan menambahkan .pub sambungan kepadanya. Kedua -duanya, secara lalai, dibuat di dalam ~/.SSH direktori; Kami bebas, bagaimanapun, untuk menyediakan nama dan lokasi alternatif.

Perkara kedua yang kami minta, adalah untuk menyediakan laluan belakang: ia digunakan untuk menjamin kunci peribadi. Kita boleh memasukkan frasa laluan atau hanya tekan Enter dan biarkan medan kosong. Dalam kes pertama, kami akan diminta untuk memberikan kata laluan yang kami gunakan setiap kali kami cuba menggunakan kunci. Jika kita meninggalkan medan kosong, sebaliknya, kita boleh mencapai log masuk tanpa kata laluan pada pelayan: ini boleh mewakili risiko keselamatan, kerana semua orang yang mempunyai akses kepada kunci dapat dengan mudah meniru kita; Sebaliknya persediaan ini biasanya digunakan untuk melaksanakan operasi tanpa pengawasan melalui SSH, seperti, contohnya sandaran yang dijadualkan.

Setelah kami memberikan kata laluan, kunci dihasilkan dan cap jari utama dan Imej rawak dipaparkan di skrin. Sudah disiapkan! Pada ketika ini kami mempunyai keypair SSH kami.

Tukar jenis kunci dan saiz bit

Secara lalai, apabila tiada pilihan tertentu dihantar ke SSH-Keygen perintah, an RSA pasangan kunci dihasilkan dengan saiz 3072 bit. Untuk menggunakan jenis kunci alternatif, kita mesti menggunakan -t pilihan SSH-Keygen dan berikan jenis kunci yang ingin kami gunakan sebagai hujahnya. Jenis utama yang ada ialah:

  • DSA
  • Ecdsa
  • ECDSA-SK
  • ED25519
  • ED25519-SK
  • RSA

Setiap jenis utama mempunyai lalai dari segi saiz bit. Kekunci DSA, contohnya mestilah tepat 1024 bit, sementara untuk kunci ECDSA, seperti yang dinyatakan dalam manual:

-B bendera menentukan panjang kunci dengan memilih dari salah satu saiz lengkung elips: 256, 384 atau 521 bit.

Jenis utama lain seperti ECDSA-SK, ED25519 dan ED25519-SK mempunyai panjang tetap yang tidak dapat diubah.

Di mana mungkin, untuk menukar saiz bit yang harus digunakan untuk penjanaan utama, kita boleh menggunakan -b Pilihan SSH-Keygen utiliti, dan lulus bilangan saiz bit sebagai hujahnya. Katakan kita mahu menjana kunci RSA 4096 bit (bukannya lalai 3072); Kami akan berlari:

$ ssh -keygen -B 4096 


Tentukan jalan kunci yang tidak interaktif

Seperti yang kita lihat dalam contoh, apabila tidak dinyatakan sebaliknya nama lalai yang digunakan untuk kekunci yang dihasilkan akan id_rsa. Sudah tentu kita boleh mengubahnya secara interaktif, apabila diminta, tetapi bagaimana jika kita mahu memberikannya terlebih dahulu? Baiklah, dalam hal ini kita boleh memohon SSH-Keygen Bersama -sama dengan -f pilihan, dan lulus nama fail untuk digunakan untuk kunci sebagai hujahnya. Katakan kami mahu kunci kami disimpan sebagai ~/.ssh/linuxconfig_rsa (swasta) dan ~/.ssh/linuxconfig_rsa.pub (awam);
Kami akan berlari:

$ ssh -keygen -f ~/.ssh/linuxconfig_rsa 

Menukar kata laluan kunci peribadi

Seperti yang telah kita lihat, ketika kita membuat keypair SSH kita berpeluang melindungi kunci persendirian dengan kata laluan yang dapat kami berikan apabila diminta. Bagaimana jika kita mahu mengubah suai kata laluan ini pada masa akan datang? Bagaimana kita boleh menukar kata laluan kunci peribadi?

Ia mudah! Yang harus kita lakukan hanyalah memohon SSH-Keygen utiliti dengan -p pilihan. Apabila kita memanggil arahan dengan pilihan ini, pertama kita akan diminta untuk memberikan laluan kunci persendirian yang kita mahu ubah, maka kita akan diminta untuk menyediakan frasa laluan lama yang digunakan untuknya (jika ada), dan akhirnya kita akan menjadi diminta memasuki frasa laluan baru dua kali:

$ ssh -keygen -p masukkan fail di mana kunci adalah (/home/egdoc/.SSH/ID_RSA): Masukkan Frasa Laluan Lama: Kunci Mempunyai Komen "Masukkan frasa laluan baru (kosong tanpa frasa laluan): Masukkan frasa laluan yang sama sekali lagi: pengenalan anda telah disimpan dengan frasa laluan baru. 

Kekunci lalai yang akan dipilih untuk perubahan kata laluan adalah ~/.SSH/ID_RSA, Sama seperti berlaku pada masa penciptaan. Sekiranya kita ingin memberikan laluan kunci peribadi secara langsung dan tidak interaktif, kita boleh, sekali lagi, gunakan -f pilihan, dan lulus
Laluan utama sebagai hujah, sebagai contoh:

$ ssh -keygen -p -f ~/.SSH/ID_RSA 


Memuatkan kunci awam di pelayan

Untuk dapat menggunakan kekunci SSH yang kami hasilkan sebagai kaedah pengesahan pada pelayan jauh, kami perlu memuat naik kunci awam kami di atasnya. Set alat OpenSSH menyediakan utiliti yang direka khusus untuk melaksanakan tugas ini:
SSH-COPY-ID. Berikut adalah contoh penggunaannya. Untuk menyalin kekunci SSH lalai id_rsa.pub Pada pelayan jauh, kami akan menjalankan:

$ ssh-copy-id -i ~/.SSH/ID_RSA.pub [email protected] 

Apa yang kita buat dalam contoh di atas cukup mudah. Kami memohon SSH-COPY-ID utiliti dengan -i Pilihan: Pilihan ini marilah kita nyatakan kunci awam yang harus digunakan. Kami melewati kunci jalannya sebagai hujah pilihan (yang .pub akhiran ditambah secara automatik jika tidak hadir). Hujah utama yang kami berikan adalah, sebaliknya, pengguna yang kami mahu log masuk sebagai (pilihan) bersama dengan alamat IP pelayan.

Output arahan di atas akan menjadi sesuatu yang serupa dengan yang berikut:

/usr/bin/ssh-copy-id: Maklumat: Sumber kunci (s) yang akan dipasang: "/rumah/egdoc/.SSH/ID_RSA.pub "/usr/bin/ssh-copy-id: info: cuba log masuk dengan kunci baru, untuk menyaring apa-apa yang sudah dipasang/usr/bin/ssh-copy-id: info: 1 kunci (s) tetap dipasang - jika anda digesa sekarang adalah untuk memasang kunci baru [email protected] Laluan 39: 

Untuk kunci yang akan dipasang di pelayan SSH, kami harus terlebih dahulu memberikan kata laluan semasa yang kami gunakan untuk log masuk. Selepas kita melakukannya, jika semuanya berjalan seperti yang diharapkan, kita akan melihat tindak balas berikut:

Bilangan kunci ditambah: 1 Sekarang cuba masuk ke dalam mesin, dengan: "ssh '[email protected] '"dan periksa untuk memastikan bahawa hanya kunci yang anda mahukan ditambah. 

Sekiranya kita tidak pasti mengenai kunci apa yang akan disalin di pelayan jauh, kita boleh melancarkan SSH-COPY-ID dengan -n pilihan untuk melaksanakan a Kering-run: Kekunci tidak akan dipasang pada pelayan; sebaliknya yang akan disalin akan dilaporkan di skrin.

Port lalai yang digunakan oleh pelayan SSH adalah 22; Kadang -kadang pentadbir sistem, bagaimanapun, boleh memutuskan untuk mengubahnya, hanya untuk mengelakkan serangan kekerasan yang paling generik. Dalam kes sedemikian, empat sambungan SSH kami berfungsi, kami mesti menggunakan -p (ringkasan untuk --pelabuhan) pilihan semasa menggunakan SSH-COPY-ID perintah dan lulus pelabuhan yang harus digunakan untuk sambungan sebagai hujahnya. Menganggap pelabuhan yang digunakan adalah 15342, Sebagai contoh, kami akan menjalankan:

ssh-copy-id -i ~/.SSH/ID_RSA.pub -p 15342 [email protected] 

Kesimpulan

Dalam tutorial ini, kami mempelajari asas -asas kunci SSH: kita melihat bahawa pasangan kunci juga disusun oleh kunci awam dan swasta, apa yang mereka gunakan, dan bagaimana mereka harus dirawat. Kami melihat bagaimana untuk menghasilkan papan kekunci, apakah jenis kunci yang berbeza yang boleh kita gunakan, dan bagaimana kita dapat menentukan saiznya dalam bit pada masa penciptaan. Kami juga melihat bagaimana kunci peribadi SSH dapat dilindungi oleh kata laluan, dan bagaimana kita dapat mengubahnya. Akhirnya kita belajar bagaimana kita boleh menggunakan SSH-COPY-ID utiliti untuk menyalin kunci awam yang ditentukan pada pelayan destinasi.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
  • Menguasai Gelung Skrip Bash
  • Cara Mengurus Sambungan Tanpa Wayar Menggunakan IWD di Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Bolehkah linux mendapat virus? Meneroka kelemahan Linux ..
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
  • Senarai dan Pemasangan Pelanggan FTP di Ubuntu 22.04 Linux ..