Apakah saya perlu memiliki frasa sandi untuk kunci SSH RSA saya?

71

Sebelum saya memulai pekerjaan saya saat ini (di bisnis kecil), kantor saya tidak memiliki firewall di jaringan dan benar-benar tidak ada yang pernah didukung. Sekarang saya telah masuk sebagai sysadmin / departemen one-man-IT-berdedikasi, saya telah melakukan apa yang saya bisa untuk mengubah ini. Setelah menjelaskan kepada bos saya betapa rapuhnya kami, ia mengizinkan saya untuk membuat beberapa server cadangan, salah satunya di rumahnya.

Saat ini, saya mencoba mengatur semuanya agar saya dapat mengotomatiskan cadangan harian. Saya berencana untuk menggunakan rsync melalui ssh untuk melakukan ini. Demi keamanan dan kemudahan otomatisasi, saya berencana untuk menonaktifkan login kata sandi ssh dan hanya menggunakan validasi kunci rsa. Nah, jika saya memiliki set kata sandi rsa, maka saya masih harus memasukkan kata sandi, dan itu masalah.

Tidak memiliki frasa sandi rsa membuat semuanya secara signifikan kurang aman? Saya satu-satunya orang di perusahaan yang memiliki petunjuk tentang hal semacam ini, jadi saya tidak terlalu khawatir tentang seseorang memanggil terminal di mesin saya (yang selalu terkunci ketika saya AFK, toh ) dan ssh-ing ke salah satu server cadangan dan melakukan kerusakan apa pun. Saya masih sangat, sangat baru di dunia administrasi sistem, dan ini adalah pertama kalinya saya melakukan hal seperti ini, dan saya tidak ingin meninggalkan lubang dalam pengaturan keamanan.

Komputer yang dimaksud di sini menjalankan Ubuntu 10.10, SME Server, dan OSX 10.6, jika itu entah bagaimana membuat perbedaan.

eckza
sumber
5
Seharusnya tidak ada kerugian dalam keamanan dengan tidak memiliki frasa sandi pada kunci Anda. Mempertahankan integritas keamanan kunci pada saat ini menjadi integral karena jika seseorang dapat menyalinnya, tidak ada kunci rahasia yang akan mencegah mereka menggunakannya.
Chris Marisic
1
Mungkin hanya saya, tetapi saya tidak tahu apa yang ingin dikatakan oleh komentar di atas.
underscore_d
3
@underscore_d Dia pada dasarnya mengatakan: Tidak berdampak pada keamanan SSH untuk memiliki atau tidak memiliki frasa sandi untuk kunci Anda TETAPI Anda harus menjaga kunci Anda secara lokal aman.
Hartator

Jawaban:

89

Seperti yang Anda ketahui, keuntungan yang diberikan frasa sandi kepada Anda adalah bahwa jika seseorang dapat membaca kunci pribadi Anda, mereka 'tidak dapat' menggunakannya.

Jika seseorang dapat mengakses kunci pribadi itu, Anda harus menerima begitu saja bahwa mereka memiliki akses (ed) / kompromi mesin apa pun yang diatur dengan kunci publik. Hal-hal seperti .bash_history atau .ssh / config hanya membuat ini lebih mudah, bahkan jika .ssh / known_hosts Anda dikaburkan.

Tidak memiliki kata sandi pada kunci Anda bukanlah akhir dari dunia, berikut adalah 3 ide untuk mencoba dan membantu Anda mengamankan diri Anda sedikit lebih baik meskipun demikian. ( Masalah besar adalah yang kedua, baca bahwa jika tidak ada yang lain )


  1. Jangan hanya menggunakan kunci yang sama di semua mesin dan pengguna. Hasilkan setiap pengguna pada setiap mesin (yang perlu melakukan hal semacam ini) pasangan kuncinya sendiri. Ini akan membuat Anda tetap mengontrol dengan baik apa yang dapat dilakukan di mana.

  2. Saat menambahkan kunci ke file otor_keys Anda, Anda dapat menguncinya hanya untuk dapat menjalankan perintah tertentu, atau menggunakannya hanya dari host tertentu.

    Lihat man sshdan cari perintah = dan dari =

    Sintaksnya adalah seperti:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    yaitu pop 'rsync' di sana dan hanya 'rsync' yang dapat dipanggil oleh kunci Anda, dan hanya dari alamat IP 1.2.3.4. Beberapa IP dapat dipisahkan dengan ,. Nama host juga didukung.

  3. Hal lain yang muncul dalam pikiran adalah arahan 'AllowUser' di sshd_config Anda

    AllowUsers

    Kata kunci ini dapat diikuti oleh daftar pola nama pengguna, dipisahkan oleh spasi. Jika ditentukan, login hanya diperbolehkan untuk nama pengguna yang cocok dengan salah satu pola. '*' dan '?' dapat digunakan sebagai wildcard dalam polanya. Hanya nama pengguna yang valid; ID pengguna numerik tidak dikenali. Secara default, login diizinkan untuk semua pengguna. Jika pola mengambil bentuk USER @ HOST maka USER dan HOST diperiksa secara terpisah, membatasi login untuk pengguna tertentu dari host tertentu.

    Itu pada dasarnya memastikan bahwa pengguna hanya dapat masuk dari lokasi tertentu. (Meskipun ia menerima wildcard juga) Tidak akan menyelesaikan semua masalah Anda, tetapi setidaknya akan membuat lebih sulit bagi orang lain.

Anak Harga
sumber
1
Cantik - inilah yang perlu saya ketahui. Terima kasih banyak!
eckza
3
Tidak masalah, tapi jangan menganggapnya sebagai daftar lengkap! :-) Hal-hal seperti meninjau auth.log / secure etc.
PriceChild
3
Jadi mengaudit bukannya mengkhawatirkan frasa sandi Anda dicuri?
Ehtesh Choudhury
3
@shurane Lakukan keduanya!
PriceChild
4

Anda dapat menggunakan sesuatu seperti gantungan kunci untuk membuat frasa sandi tidak begitu menyakitkan. Ini sedikit lebih aman daripada menggunakan login tanpa kata sandi, dan dapat digunakan bersama dengan jawaban lain di sini. Jawaban PriceChild cukup bagus.

Faheem Mitha
sumber
-4

Secara pribadi saya menggunakan DSA bukan RSA, terutama karena itulah yang selalu saya gunakan dan saya tahu 'hanya berfungsi', tetapi teorinya saya kira sama. Anda bisa mengganti dsadengan rsadi bawah ini.

Pada sumber:

$ ssh-keygen -t dsa

Kemudian salin isi .ssh/id_dsa.pubfile ke .ssh/authorized_keysdalam akun pengguna di tujuan.

Maka Anda hanya bisa ssh antara sumber dan tujuan tanpa kata sandi.

Majenko
sumber
1
Apakah ada alasan Anda mendukung dsa daripada rsa? Saya lebih sering melihat kebalikan yang direkomendasikan.
PriceChild
@PriceChild: AFAIK, keamanan mereka kurang lebih setara (dengan asumsi ukuran kunci yang memadai). Bukan menjadi seorang cryptographer sendiri, saya percaya keputusan OpenSSH dan GnuPG untuk menggunakan RSA sebagai algoritma kunci default. Lihat juga pertanyaan ini .
grawity
Tidak ada alasan nyata - terutama pilihan pribadi - itu dan fakta bahwa RSA diretas ke dalam baru-baru ini dan kode sensitif dicuri - bagaimana itu berkaitan dengan kunci RSA Saya tidak tahu (siapa yang melakukannya?) Tapi saya selalu menggunakan DSA karena tampaknya lebih aman .
Majenko
9
Saya khawatir peretasan pada "perusahaan RSA" tidak berpengaruh pada "algoritme RSA" keamanan. Lihat juga secure.wikimedia.org/wikipedia/en/wiki/RSA_Security - "RSA dinamai berdasarkan algoritma kriptografi kunci publik RSA, yang pada gilirannya dinamai berdasarkan inisial penemunya: Ron Rivest, Adi Shamir, dan Len Adleman. "
PriceChild
6
@ Matt: Satu- satunya kesamaan yang mereka miliki adalah nama. Algoritma kripto asimetris RSA adalah matematika murni, tidak mungkin dilemahkan oleh pembobolan beberapa sistem perusahaan.
grawity