Buat kunci SSH untuk Windows dan masuk ke server melalui SSH – cara praktisnya
Di banyak lingkungan Windows Otentikasi OpenSSH di Windows alternatif yang aman untuk kata sandi tradisional. Otentikasi berbasis kunci dengan OpenSSH menawarkan alternatif yang terbukti: Anda menggunakan pasangan kunci pribadi/publik alih-alih kata sandi, yang secara signifikan mengurangi permukaan serangan. Dalam artikel ini Anda akan mempelajari cara membuat pasangan kunci di Windows, memanfaatkan agen SSH dengan bijaksana, dan mentransfer kunci publik dengan aman ke server dengan otor_keys. Langkah-langkahnya didasarkan pada dokumentasi Microsoft/OpenSSH dan praktik terbaik.
Catatan tentang AuthorizedKeysCommand dan AuthorizedKeysCommandUser
OpenSSH di Windows tidak mendukung semua arahan khusus Linux. Sangat penting: Perintah Kunci Resmi Dan AuthorizedKeysCommandUser menjadi bukan mendukung. Ini berarti Anda memiliki kunci SSH tidak dapat diambil secara dinamis dari Direktori Aktif Bisa. Gunakan sebagai gantinya file otor_keys statis. Batasan ini sangat penting jika Anda berencana melakukan manajemen kunci terpusat atau seluruh domain.
Setelah Anda memahami topik kunci, ada baiknya melihat pendekatan terkait seperti penyedia identitas dan login berbasis frasa sandi. Anda dapat menemukan perspektif lebih lanjut dalam artikel kami tentang keaslian vs. Keycloak dan strategi manajemen identitas.
Otentikasi OpenSSH di Windows langkah demi langkah
Pasangan kunci terdiri dari dua file: kunci pribadi (harus tetap dilindungi) dan kunci publik (disimpan di server SSH). Otentikasi membandingkan kunci publik dengan kunci pribadi yang disediakan pengguna. Jika kunci privat yang sesuai hilang atau tidak ada, pendaftaran akan gagal. Frasa sandi kunci privat semakin meningkatkan keamanan karena juga mengamankan penggunaan kunci.
- Kunci pribadi: tetap ada di klien, dilindungi oleh frasa sandi.
- Kunci publik: disimpan di server (authorized_keys atau kunci resmi administrator).
- Penting: Jika seseorang mendapatkan kunci pribadinya, orang tersebut dapat mengautentikasi dirinya sendiri – oleh karena itu: jaga agar pasangan kunci tersebut benar-benar aman.
Pada artikel ini kami fokus pada langkah-langkah praktis di Windows sehingga Anda dapat langsung memulai.
Persyaratan dan arsitektur
Sebelum memulai, Anda harus memastikan bahwa OpenSSH diinstal pada server Windows. Layanan sshd harus berjalan dan jalur kunci host biasanya C:\ProgramData\ssh. Layanan ini dapat dikonfigurasi untuk memulai secara otomatis saat startup sistem. Proses tipikal terlihat seperti ini:
- Instal server OpenSSH (server Windows OpenSSH).
- Izinkan sshd untuk memulai sebagai layanan secara otomatis saat startup.
- Secara default, kunci host disimpan di C:\ProgramData\ssh.
Untuk klien, buat pasangan kunci menggunakan ssh-keygen. Ed25519 sering digunakan sebagai algoritma default, tetapi ada juga opsi seperti RSA atau ECDSA – tergantung pada persyaratan keamanan. Dalam contoh ini, kami secara eksplisit menggunakan ECDSA agar langkah-langkahnya dapat dipahami.
Catatan: OpenSSH di Windows berbeda dalam cara menangani beberapa arahan Linux. Langkah-langkah konfigurasi yang dijelaskan di sini praktis dan stabil jika Anda tetap menggunakan jalur dan file yang disebutkan.
Hasilkan kunci host
Kunci host melindungi sertifikat server SSH. Windows OpenSSH membuat file kunci ini secara otomatis ketika layanan sshd dimulai untuk pertama kalinya, asalkan layanan tersebut berjalan. Secara default, Anda perlu memulai layanan sshd secara manual untuk mengonfigurasinya agar dimulai secara otomatis saat reboot.
- Pastikan layanan sshd sudah terinstall.
- Buka sesi PowerShell dengan hak administratif dan jalankan:
# Set the sshd service to be started automatically.
Get-Service -Name sshd | Set-Service -StartupType Automatic
# Start the sshd service.
Start-Service sshd
- Setelah permulaan pertama, kunci host dibuat di C:\ProgramData\ssh. Lokasi ini adalah jalur default untuk kunci host di lingkungan Windows OpenSSH.
Pembuatan kunci pengguna
Di klien Anda memerlukan pasangan kunci. Untuk melakukan ini, gunakan ssh-keygen.exe. Anda dapat menentukan algoritma yang berbeda: DSA, RSA, ECDSA atau Ed25519. Jika tidak ada algoritma yang dipilih, ssh-keygen menggunakan Ed25519 secara default. Sebagai contoh, kami membuat pasangan kunci ECDSA:
ssh-keygen -t ecdsa
Kueri akan memandu Anda melalui lokasi file kunci. Jalur defaultnya adalah
- Kunci pribadi: C:\Users\nama pengguna.ssh\id_ecdsa
- Kunci publik: C:\Users\nama pengguna.ssh\id_ecdsa.pub
Anda juga akan dimintai kata sandi. Frasa sandi juga melindungi kunci pribadi. Di banyak lingkungan, frasa sandi berguna – dalam proses yang sepenuhnya otomatis, Anda juga dapat membiarkannya kosong, namun hal ini mengurangi tingkat keamanan.
Setelah selesai, Anda akan memiliki pasangan kunci publik/pribadi. Kunci publik nantinya akan disimpan di server.
Untuk menyimpan kunci pribadi dengan aman dan memudahkan agen SSH untuk mengakses, konfigurasikan ssh-agent dan muat kunci pribadi di sana…
# By default, the ssh-agent service is disabled. Configure it to start automatically.
Get-Service ssh-agent | Set-Service -StartupType Automatic
# Start the service.
Start-Service ssh-agent
# The following command should return a status of Running.
Get-Service ssh-agent
# Load your key files into ssh-agent.
ssh-add $env:USERPROFILE\.ssh\id_ecdsa
Prosedur ini menyimpan kunci pribadi dengan aman dalam konteks akun Windows Anda. Penting: Jaga keamanan kunci pribadi dan jangan menghapusnya dari sistem lokal jika tidak diperlukan saat kunci tersebut dimuat di ssh-agent. Hilangnya kunci pribadi memerlukan regenerasi pasangan kunci dan pembaruan kunci publik selanjutnya di semua server yang berinteraksi dengan Anda.
Catatan: Penyimpanan otomatis kunci pribadi di agen SSH memungkinkan penggunaan berbasis frasa sandi yang nyaman tanpa harus memasukkan kata sandi setiap saat. Perlindungan tetap berlaku selama frasa sandi digunakan bersama dengan kuncinya.
Menyebarkan kunci publik ke server
Untuk melakukan otentikasi dengan kunci di masa mendatang, Anda harus menempelkan konten kunci publik (.ssh\id_ecdsa.pub) ke dalam file teks di server. Nama file dan lokasinya bergantung pada apakah akun penggunanya standar atau administrator.
Pengguna standar
Salin kunci publik ke file bernama otor_keys di direktori C:\Users\username.ssh\ di server. Anda dapat melakukan ini menggunakan SCP atau PowerShell untuk menulis kunci dari jarak jauh. Contohnya (transfer jarak jauh melalui PowerShell) terlihat seperti ini, dengan nama pengguna diganti dengan nama pengguna asli Anda:
# Öffentlichen Schlüssel auf dem Client lesen
$authorizedKey = Get-Content -Path $env:USERPROFILE\.ssh\id_ecdsa.pub
# Remote-Befehl zum Erstellen des .ssh-Verzeichnisses und Hinzufügen des Schlüssels
$remotePowershell = "powershell New-Item -Force -ItemType Directory -Path $env:USERPROFILE\.ssh; Add-Content -Force -Path $env:USERPROFILE\.ssh\authorized_keys -Value '$authorizedKey'"
# Remote ausführen (SSH-Verbindung zum Server)
ssh [email protected] $remotePowershell
Akses melalui kunci pribadi yang diberikan kepada pengguna server.
Pengguna administratif
Akun administrator sering kali memerlukan file Administrators_Authorized_Keys pusat. Ini kemudian terletak di C:\ProgramData\ssh\administrators_authorized_keys dan memiliki ACL khusus. Kunci publik dimasukkan di sana dan ACL diatur sedemikian rupa sehingga hanya administrator dan SISTEM yang memiliki akses. Contoh kode:
# Öffentlichen Schlüssel wie oben vorbereiten
$authorizedKey = Get-Content -Path $env:USERPROFILE\.ssh\id_ecdsa.pub
# Remote-Befehl zum Kopieren in administrators_authorized_keys und ACL-Anpassung
$remotePowershell = "powershell Add-Content -Force -Path $env:ProgramData\ssh\administrators_authorized_keys -Value '''$authorizedKey''';icacls.exe \"$env:ProgramData\ssh\administrators_authorized_keys\" /inheritance:r /grant \"Administrators:F\" /grant \"SYSTEM:F\""
# Remote ausführen
ssh [email protected] $remotePowershell
Catatan tentang izin berbasis SID
Jika Anda termasuk salah satunya lingkungan Windows non-Inggris untuk bekerja, Anda harus memiliki izin SID alih-alih menetapkan nama grup. Hal ini untuk menghindari masalah dengan nama grup yang dilokalkan.
Contoh:
C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant *S-1-5-32-544:F /grant "SYSTEM:F
SIDnya S-1-5-32-544 di sini adalah singkatan dari grup administrator dan tidak bergantung pada bahasa.
Kiat praktis dan praktik terbaik
- Untuk akun moderasi atau admin, gunakan file kunci resmi administrator pusat untuk mengontrol izin dengan andal.
- Mati Otentikasi OpenSSH di Windows secara signifikan mengurangi permukaan serangan karena kata sandi yang lemah tidak lagi digunakan.
- Tetapkan frasa sandi untuk kunci pribadi Anda guna memberikan lapisan perlindungan tambahan meskipun penyimpanan disusupi.
- Hindari menyimpan kunci pribadi di direktori bersama atau mesin bersama.
- Jika Anda ingin menanamkan manajemen kunci SSH Anda ke dalam strategi manajemen identitas sentral dalam jangka panjang, ada baiknya melihat solusi modern seperti Asli atau jubah kunci. Keduanya mendukung sistem masuk tunggal (SSO), kontrol akses berbasis peran, dan manajemen identitas berbasis API. Anda dapat menemukan perbandingan mendetail di artikel kami Perbandingan Penyedia Identitas: Otentikasi vs. Keycloak.
Pemecahan Masalah-Daftar Periksa
- Apakah sshd berjalan dan dimulai secara otomatis saat startup sistem? Periksa melalui PowerShell: Dapatkan-Layanan -Nama sshd.
- Apakah kunci host ada di direktori C:\ProgramData\ssh? Jika tidak, buatlah saat pertama kali Anda memulai sshd.
- Sudahkah Anda menyimpan kunci publik dengan benar di Authorized_keys? Nama file harus benar-benar diotorisasi_keys (untuk akun pengguna standar di direktori pengguna).
- Apakah izin file diatur dengan benar? Windows menggunakan ACL; Untuk kunci administrator, file administrators_authorized_keys harus diperhitungkan.
Sumber daya lebih lanjut (konten terkait ditautkan langsung)
- Untuk sebisa mungkin menghindari login SSH berbasis kata sandi, baca artikel kami Menonaktifkan login SSH menggunakan kata sandi – hanya diperbolehkan dengan kunci SSH. Di sana Anda akan menemukan langkah-langkah konkret untuk menonaktifkan kata sandi di lingkungan SSH dan cara memastikan bahwa kunci berfungsi dengan andal.
Nonaktifkan login SSH menggunakan kata sandi – hanya diperbolehkan dengan kunci SSH - Untuk keputusan strategis mengenai manajemen identitas dan solusi autentikasi, kami merekomendasikan artikel kami Manajemen Identitas Otentik dan Sistem Otentikasi. Dia menjelaskan cara kerja pendekatan penyedia identitas dan kapan pendekatan tersebut masuk akal.
Manajemen identitas otentikasi dan sistem otentikasi - Siapa pun yang pada dasarnya peduli dengan penyedia identitas dapat menggunakan perbandingan Authentik vs Keycloak. Di sana Anda akan menemukan kriteria untuk memilih penyedia identitas di lingkungan TI modern.
Perbandingan penyedia identitas Otentik vs Keycloak
Kami juga menawarkan dukungan komprehensif untuk server dan infrastruktur keamanan Anda. Jika Anda memerlukan saran profesional atau implementasi nyata, silakan lihat layanan kami atau hubungi kami langsung. Informasi lebih lanjut dapat ditemukan di bawah jangkauan layanan kami atau melalui formulir kontak.
Untuk konten lebih lanjut, kami juga merekomendasikan untuk membaca postingan blog kami secara rutin tentang topik keamanan TI dan infrastruktur yang relevan agar selalu mendapatkan informasi terbaru. Di sana Anda akan menemukan kedalaman praktis tentang topik yang terkait dengan OpenSSH, manajemen kunci, dan manajemen akses server yang aman.
Jika Anda membutuhkan dukungan dalam penerapannya, kami akan dengan senang hati membantu Anda. Pakar kami siap menyiapkan, menguji, dan memberikan dukungan jangka panjang untuk infrastruktur SSH Anda dengan aman. Untuk melakukan ini, kunjungi beranda kami atau hubungi kami secara langsung.
News
Berita
News Flash
Blog
Technology
Sports
Sport
Football
Tips
Finance
Berita Terkini
Berita Terbaru
Berita Kekinian
News
Berita Terkini
Olahraga
Pasang Internet Myrepublic
Jasa Import China
Jasa Import Door to Door
Situs berita olahraga khusus sepak bola adalah platform digital yang fokus menyajikan informasi, berita, dan analisis terkait dunia sepak bola. Sering menyajikan liputan mendalam tentang liga-liga utama dunia seperti Liga Inggris, La Liga, Serie A, Bundesliga, dan kompetisi internasional seperti Liga Champions serta Piala Dunia. Anda juga bisa menemukan opini ahli, highlight video, hingga berita terkini mengenai perkembangan dalam sepak bola.