Menggunakan SSH sebagai transport layer untuk PowerShell 7 Remoting (PWSH over SSH) menyederhanakan konektivitas lintas platform tanpa bergantung pada WinRM. Namun, implementasi OpenSSH di Windows Server sering menghasilkan galat Permission denied (publickey,keyboard-interactive) saat inisiasi sesi remote via Enter-PSSession -HostName <target> -SSHTransport.
Masalah ini umumnya dipicu oleh dua faktor utama: model izin NTFS yang tidak valid pada file kunci publik administrator, dan konfigurasi path subsystem PowerShell di sshd_config yang keliru.
Gejala dan Logging OpenSSH Service
Saat koneksi remote gagal, klien hanya menerima pesan kegagalan generik. Untuk mendapatkan konteks teknis, verifikasi status log pada target server di C:\ProgramData\ssh\logs\sshd.log. Jika file log belum aktif, aktifkan opsi log detail pada file C:\ProgramData\ssh\sshd_config:
SyslogFacility LOCAL0
LogLevel DEBUG3Jalankan perintah restart service SSH di Windows Server:
Restart-Service sshdSaat percobaan autentikasi dijalankan ulang dari klien, log sshd.log akan menampilkan entri diagnostik kritis seperti berikut:
debug3: mm_answer_keyallowed: reading file C:\ProgramData\ssh/administrators_authorized_keys
debug3: checking Access Control List (ACL) for C:\ProgramData\ssh/administrators_authorized_keys
Authentication refused: bad ownership or modes for file C:\ProgramData\ssh/administrators_authorized_keysRoot Cause 1: ACL NTFS administrators_authorized_keys
OpenSSH di Windows memberlakukan aturan khusus untuk akun yang tergabung dalam grup lokal Administrators. Kunci publik akun administratif tidak dibaca dari $HOME\.ssh\authorized_keys, melainkan dari C:\ProgramData\ssh\administrators_authorized_keys.
OpenSSH menolak file tersebut jika Access Control List (ACL) mengizinkan hak tulis (write/modify) kepada entitas non-privilege atau mewarisi (inherit) hak akses dari folder induk ProgramData. File tersebut hanya boleh diakses oleh grup SYSTEM dan BUILTIN\Administrators.
Langkah Perbaikan ACL via icacls
Jalankan perintah berikut di PowerShell dengan hak elevated (Run as Administrator) pada server target untuk memutus inheritance dan merestriksi hak akses:
# Tentukan path file
$AuthKeyPath = "$env:ProgramData\ssh\administrators_authorized_keys"
# Nonaktifkan inheritance dan hapus seluruh izin turunan
icacls.exe $AuthKeyPath /inheritance:r
# Berikan hak akses penuh hanya ke SYSTEM dan grup Administrator lokal
icacls.exe $AuthKeyPath /grant "SYSTEM:(F)"
icacls.exe $AuthKeyPath /grant "BUILTIN\Administrators:(F)"Alternatif lazier menggunakan modul bawaan OpenSSHUtils jika terpasang: Repair-AuthorizedKeyPermissions -FilePath $AuthKeyPath.
Root Cause 2: Mismatch Subsystem pada sshd_config
Setelah autentikasi kunci publik berhasil, kegagalan inisiasi PowerShell 7 Remoting dapat berlanjut dengan pesan error koneksi terputus tiba-tiba atau The subsystem powershell is not defined. Klien PowerShell membutuhkan endpoint subsystem spesifik untuk broker protokol PSRP (PowerShell Remoting Protocol).
Periksa direktif Subsystem di bagian bawah C:\ProgramData\ssh\sshd_config. Kegagalan konfigurasi umumnya melibatkan spasi tanpa tanda kutip ganda atau path eksekusi pwsh.exe yang tidak valid:
# SALAH (Path tanpa quoting yang aman jika terdapat spasi atau versi salah)
Subsystem powershell C:\Program Files\PowerShell\7\pwsh.exe -sshs -NoLogo
# BENAR (Memanfaatkan format 8.3 atau escape quotes ganda)
Subsystem powershell "C:\Program Files\PowerShell\7\pwsh.exe" -sshs -NoLogoCatatan: Jika OpenSSH dijalankan sebagai service 32-bit di atas Windows 64-bit, pastikan path tidak teralihkan ke
SysWOW64atau direktori yang salah.
Verifikasi Akhir Koneksi
Setelah ACL dan konfigurasi subsystem diperbaiki, restart kembali service SSH:
Restart-Service sshdUji koneksi dari mesin klien menggunakan commandlet PowerShell 7:
Enter-PSSession -HostName 192.168.1.50 -UserName adminuser -KeyFilePath ~/.ssh/id_ed25519 -SSHTransportKoneksi akan langsung terhubung ke sesi shell PowerShell 7 remote tanpa prompt password atau peringatan integritas ACL.
Komentar
0 komentar
Masuk ke akun kamu untuk ikut berkomentar.
Belum ada komentar
Jadilah yang pertama ikut berdiskusi!