Geçersiz anahtar ifadesi bir parola kuralı değil, kapsayıcı sorunudur
Reddedilen bir kimlik bilgisi ağ geçidine hiç ulaşmamış olabilir. Önce giriş kapsayıcısını, kimlik doğrulama aşamasını ve hesabın kendisini karşılaştırın.
Geçersiz anahtar ifadesi mesajını görmek genellikle tek bir sonuca götürür: VPN noktalama işaretlerini sevmiyor. Bu sonuç genellikle yanlıştır, çünkü mesaj çoğu zaman herhangi bir ağ geçidi hesaba bakmadan önce yerel işlemeden gelir. İki tasarım aynı parolayı taşır, bir grafik alanı ve bir kimlik bilgisi dosyası, ve farklı yerlerde başarısız olurlar. Baştan beri doğru olan bir parolayı basitleştirmeden önce kapsayıcıları karşılaştırın.
Hata ağ geçidinden önce gelir
Yerel doğrulama, kilitli bir gizli depo, eksik bir aracı ve bozuk bir kimlik bilgisi dosyası, kullanıcının tek bir ret olarak yaşadığı hataları üretir. Hiçbiri kimlik doğrulama sunucusuyla ilgili değildir. Ağ geçidinin kendi reddi ayrı bir olaydır ve genellikle farklı bir mesajla ve farklı bir zamanlamayla gelir. Tünel oluştuktan ve kimlik bilgileri iletildikten sonra gerçekleşir.
Yani ilk soru hangi karakterlerin yasal olduğu değil, denemenin nerede durduğudur. Hiç bağlantı açmamış bir istemciyi kimse reddetmemiştir. Gözlemlediğiniz aşamayı yazın, çünkü sonraki her adım bu sınıflandırmaya bağlıdır.
Bu ayrım kimin düzelteceğini de değiştirir. Bir kapsayıcı sorunu cihaza ve sahibine aittir, hesabın reddedilmesi ise kimlik doğrulama arka ucunu işleten kişiye aittir.
Karakterleri değil, kapsayıcıları karşılaştırın
Bir GUI parola alanı, bir anahtarlık girdisi, iki satırlı bir kimlik bilgisi dosyası ve bir otomasyon sırrı aynı değeri farklı zarflarda taşır. Zarfın kendi kuralları vardır ve genellikle kırılan bu kurallardır. Değer nadiren sorundur; değerin taşınması daha sık sorundur. Bu iki fikri ayrı tutun, teşhis kısalır.
| Where the value stops | What you see | What you check | Who owns the fix |
|---|---|---|---|
| GUI field or managed profile | A validation message before any connection opens | The selected authentication mode and whether the field holds the secret or the username | The device owner or the profile author |
| Keychain or secret agent | A prompt that keeps reappearing, or an agent error | Whether the agent is unlocked and holds an entry for this profile | The user who owns the keychain |
| Two-line credential file | A prompt for a password that was already supplied | Line count, line order and whether a trailing newline is present | Whoever generated the file |
| Shell argument or environment | Works interactively but fails in automation | Whether the shell expanded, trimmed or logged the value | Whoever wrote the automation |
Community OpenVPN 2.6 istemci seçenekleri auth-user-pass için o iki satırlı dosyayı açıklar, parola satırı yokken davranış dahil: istemci bunun yerine sorar. Bu tek ayrıntı, zaten verdiğim bir parolayı soruyor şeklindeki raporların bir sınıfını açıklar. Ayrıca boş ikinci satırın zararsız bir biçimlendirme seçimi değil, anlamlı bir durum olduğunu söyler.
Tırnaklar yine ayrı bir katmandır: düz bir kimlik bilgisi dosyasındaki tırnaklar veri olarak saklanır, kabuk ise program herhangi bir şey görmeden önce onları kaldırır. Aynı karakter bir yerde zararsız, diğerinde yapısaldır. Bir tablo istemcinizin hangi kapsayıcıyı kullandığını söyleyemez, bu yüzden bir satır seçmeden önce istemcinin kendi yapılandırmasını okuyun.
Satır sonları da yapısaldır. Satırla ayrılmış alanlara sahip bir dosya, satır sonu içeren bir değeri taşıyamaz ve bu parola gücüne dair bir yargı değil, biçimin sınırıdır. Sırrı uydurma bir dosyaya sığdırmak için kırpmak yerine dağıtımın desteklediği teslim mekanizmasını kullanın.
Kimlik bilgisi dosyasını kabuk hasarı olmadan oluşturun
En güvenli yerel yol, sırrı kabuk geçmişinin ve süreç bağımsız değişken listesinin dışında tutar. İki alanı etkileşimli olarak okuyun, sonra istemcinin beklediği iki satırı yazın. Geri kalan her şey gözden geçirmesi kolay bir yapılandırma dosyasında kalabilir.
read -r VPN_USER
read -rs VPN_PASS
printf '%s\n%s\n' "$VPN_USER" "$VPN_PASS" > /etc/openvpn/client/creds
chmod 600 /etc/openvpn/client/creds
openvpn --config /etc/openvpn/client/office.conf --auth-user-pass /etc/openvpn/client/creds
İlk iki komut kullanıcı adını ve ardından parolayı ekrana yazmadan okur, üçüncüsü iki satırı yazar, dördüncüsü dosyayı kısıtlar ve sonuncusu istemciyi bu dosyayla başlatır. read -r öğesinin ters eğik çizgileri koruduğunu unutmayın; atlandığında çalışan bir parolayı başarısız bir parolaya çeviren tam da bu tür bir ayrıntıdır.
Dosyayı tırnaksız bir değişkenle veya kabuk genişletmeleriyle dolu bir here-document ile oluşturmaktan kaçının. İkisi de karakterleri dosyaya ulaşmadan önce dönüştürebilir ve ortaya çıkan hata VPN reddi gibi görünür, çünkü diskteki parola gerçekten bildiğiniz paroladan farklıdır. Bundan şüpheleniyorsanız, sırrın kendisini yazdırmadan dosyanın bayt uzunluğunu beklenen değerle karşılaştırın. Bir veya iki baytlık fark, bir tırnak kazasının imzasıdır.
Aşamayı ilk hatadan okuyun
Tek bir denemenin ilk belirli mesajını saklayın, sonra onu sınıflandırın. Yerel doğrulama hatası, eksik özel anahtar, kullanılamayan gizli aracı ve ağ geçidi kimlik doğrulama hatası dört farklı sonuç ve dört farklı sahiptir. Bunlardan yalnızca biri hesapla ilgilidir.
Ağ geçidi gerçekten doğru iletilmiş bir kimlik bilgisini reddediyorsa, hesabı, kimlik doğrulama arka ucunu ve gereken herhangi bir meydan okumayı yöneticiyle birlikte kontrol edin. Genel bir kimlik doğrulama hatası yasak bir karakteri adlandırmaz.
Onaylanmış değeri harflere ve rakamlara indirgemek yerine doğru mekanizma aracılığıyla geri yükleyin. Parola politikası işletmeciye aittir ve onu sessizce etkisiz bırakan bir geçici çözüm düzeltme değildir. Ayrıca gerçek kusuru bir sonraki kişiden saklar; o kişi aynı hatayla daha zayıf bir parola ve daha iyi bir fikir olmadan karşılaşır.