nmcli terus meminta kata sandi VPN: simpan rahasianya secara lokal
Sesi desktop menjawab permintaan itu dengan agen rahasia. Lewat SSH tidak ada yang melakukannya, jadi taruh kredensial di file kunci dan muat ulang profilnya.
Profil yang sama, dua sesi: ia terhubung dari desktop dan menggantung lewat SSH pada permintaan yang tidak bisa dijawab apa pun. Tidak ada yang rusak dan tidak ada pengaturan yang hilang. NetworkManager meminta kredensial kepada agen rahasia, dan agen rahasia adalah komponen desktop yang tidak ada di sesi yang Anda pakai.
Jalankan urutan di bawah ini dan terowongannya akan naik tanpa antarmuka grafis, dengan catatan bahwa menyimpan rahasia mengubah siapa yang bisa memakai profil itu.
Pastikan diagnosisnya sebelum mengubah apa pun
Perbedaan antara aktivasi interaktif dan non-interaktif adalah seluruh diagnosisnya. Jika nmcli --ask connection up berhasil sementara aktivasi biasa macet, profilnya benar dan sumber rahasianya hilang. Perbandingan tunggal itu menyelamatkan Anda dari menulis ulang konfigurasi yang berfungsi.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show "Office IPsec" | grep -i flags
Baca flag-nya daripada menebaknya. Nilai yang berarti "tanya agen" adalah yang Anda cari, dan nama kunci yang tepat berbeda antar plugin VPN karena mereka tinggal di kamus data milik plugin itu sendiri. Profil FortiSSL dan profil IPsec belum tentu memakai nama yang sama, jadi bekerjalah dari keluaran profil Anda sendiri.
Pastikan juga paket plugin untuk protokol itu sudah terpasang. Plugin yang hilang muncul sebagai tipe koneksi tak dikenal atau sebagai kesalahan aktivasi yang tidak menyebut kata sandi sama sekali, dan mengejar rahasianya dalam keadaan itu membuang jam yang sama dua kali. Satu kueri paket lebih murah daripada seharian menyunting file kunci.
Pindahkan rahasianya ke file kunci
File koneksi berada di bawah /etc/NetworkManager/system-connections/. Rahasia tidak disimpan di sana secara default, dan itulah inti dari flag yang baru Anda baca. Mengubah flag menjadi nol memberi tahu NetworkManager bahwa nilainya disimpan bersama profil, bukan diminta saat aktivasi.
[vpn]
password-flags=0
[vpn-secrets]
password=YOUR-VPN-PASSWORD
Untuk profil dengan dua rahasia, polanya berulang: satu flag per rahasia di bagian [vpn], dan nilainya di [vpn-secrets]. Profil IPsec biasanya membawa kunci yang dibagi sebelumnya bersama kredensial pengguna, dan plugin menamainya berbeda dari kolom kata sandi biasa, jadi salin nama kuncinya dari keluaran vpn.data, bukan dari pos blog yang memakai plugin lain. Satu nama kunci yang salah menghasilkan profil yang termuat lalu gagal saat autentikasi, yang terbaca persis seperti kata sandi salah. Bandingkan berkas Anda dengan profil yang berfungsi dari plugin yang sama sebelum menyambung lagi.
Beri tanda kutip pada nilai yang berisi spasi, tanda kutip, atau tanda dolar. Nilai tanpa tanda kutip yang berisi $ akan dibaca apa adanya atau diperluas tergantung di mana ia diurai, dan kegagalan autentikasi yang dihasilkannya terlihat seperti kata sandi salah.
Lalu perbaiki kepemilikan dan mode file. File kunci ini dibaca oleh layanan berhak istimewa, dan file yang bisa dibaca pengguna lain dianggap tidak tepercaya, yang merupakan alasan biasa sebuah profil yang disunting tampak diabaikan. Pemilik root, mode 600, tanpa pengecualian.
Muat ulang, lalu aktifkan
File dibaca saat koneksi dimuat, jadi menyuntingnya tidak cukup. Muat ulang profilnya lalu naikkan koneksinya secara eksplisit.
sudo nmcli connection reload
sudo nmcli connection up "Office IPsec"
Jika pemuatan ulang tidak menangkap perubahannya, restart layanan secara penuh melakukannya, dan ada laporan persis tentang itu. Utamakan pemuatan ulang saat tautan lain penting, karena me-restart layanan memutus setiap koneksi yang dikelola, dan di host jarak jauh itu bisa mengakhiri sesi Anda sebelum terowongan yang diinginkan naik.
Pakai UUID saat namanya ambigu. Mesin dengan beberapa profil pelanggan menumpuk hampir-duplikat, dan mengaktifkan yang salah menghasilkan kegagalan yang tampak seperti masalah kredensial.
Saat rahasia yang disimpan bukan masalahnya
Profil FortiSSL bisa gagal bahkan dengan kredensial tersimpan yang benar karena klien tidak pernah memercayai sertifikat gateway. Pengaturan itu tidak ada di dialog utama; ia ada di balik opsi lanjutan untuk VPN, tempat intisari sertifikat tepercaya dimasukkan. Jika log menyebut sertifikat, bukan kata sandi, Anda ada di cabang ini dan berapa pun penyuntingan [vpn-secrets] tidak akan membantu.
Ada dua pemeriksaan lagi di sini. Pastikan profilnya tidak diimpor dari file yang masih menunjuk ke jalur yang tidak bisa dibaca plugin, dan pastikan bahwa profilnya yang aktif, bukan duplikat lama. Keduanya menghasilkan kegagalan aktivasi yang terbaca seperti kesalahan autentikasi.
Putuskan apakah menyimpan dapat diterima
PSK dan kata sandi yang disimpan bisa dibaca oleh apa pun yang berjalan sebagai root di mesin itu. Di mesin yang Anda kendalikan, itu pertukaran yang wajar untuk layanan tanpa antarmuka. Di host bersama, itu layak dibicarakan, karena profilnya kini berisi kredensial yang sebelumnya dilindungi keyring desktop. Tanyakan siapa lagi yang bisa mencapai root di host itu sebelum memutuskan, bukan setelah perubahannya diterapkan.
Jika kebijakan melarang penyimpanan rahasia VPN, jangan melemahkan profilnya agar tugas cron berjalan. Jalankan koneksinya dari sesi yang punya agen, atau pakai mekanisme lain untuk otomatisasinya.
Terakhir, catat profil mana yang membawa rahasia agar tidak ada yang menyalinnya ke laptop tanpa sadar. Komentar di atas bagian rahasia dengan tanggal dan alasannya sudah cukup, dan itu akan menyelamatkan seseorang dari tinjauan yang canggung nanti.