OpenVPN ರುಜುವಾತು ಫೈಲ್ ಅಥವಾ ನಿರ್ವಹಣಾ ಸಾಕೆಟ್: ಯಾವುದನ್ನು ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡಬೇಕು
auth-user-pass ಖಾತೆಯ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ; ನಿರ್ವಹಣಾ ಸಾಕೆಟ್ ನಾಲ್ಕನ್ನೂ ಒಳಗೊಳ್ಳುತ್ತದೆ. ಒಡ್ಡುವಿಕೆ, ಸ್ಕ್ರಿಪ್ಟ್ ವೆಚ್ಚ ಮತ್ತು ಸೇವೆಯಲ್ಲಿ ಪ್ರತಿಯೊಂದೂ ಹೇಗೆ ವಿಫಲವಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಹೋಲಿಸಿ.
OpenVPN ಪ್ರಾರಂಭಿಸಿ ಎಂದಿಗೂ ಸಂಪರ್ಕಿಸದ ಸ್ಕ್ರಿಪ್ಟ್ ಸಾಮಾನ್ಯವಾಗಿ ನೆಟ್ವರ್ಕ್ ಸಮಸ್ಯೆ ಅಲ್ಲ: ಕ್ಲೈಂಟ್ ಟರ್ಮಿನಲ್ ಇಲ್ಲದ ಪ್ರಾಂಪ್ಟ್ ಎದುರು ಕುಳಿತಿದೆ. OpenVPN ಗೆ ಮನುಷ್ಯನಿಲ್ಲದೆ ಆ ಪ್ರಾಂಪ್ಟ್ಗೆ ಉತ್ತರಿಸುವ ಎರಡೇ ಬೆಂಬಲಿತ ಮಾರ್ಗಗಳಿವೆ, auth-user-pass ಹಿಂದಿನ ರುಜುವಾತು ಫೈಲ್ ಮತ್ತು ನಿರ್ವಹಣಾ ಸಾಕೆಟ್, ಮತ್ತು ಅವು ಪರಸ್ಪರ ಬದಲಾಯಿಸಲಾಗದವು. ಫೈಲ್ ಒಂದು ನಿರ್ದೇಶನದ ವೆಚ್ಚ ಮಾಡಿ ಒಂದು ಪ್ರಾಂಪ್ಟ್ಗೆ ಉತ್ತರಿಸುತ್ತದೆ; ಸಾಕೆಟ್ ಪ್ರತಿ ಪ್ರಾಂಪ್ಟ್ಗೂ ಉತ್ತರಿಸುತ್ತದೆ ಮತ್ತು loopback ಪೋರ್ಟ್ ತೆರೆಯಬಲ್ಲ ಯಾವುದಕ್ಕೂ ದೃಢೀಕರಣವಿಲ್ಲದ ನಿಯಂತ್ರಣ ಕಾಲುವೆ ನೀಡುತ್ತದೆ. ನಿಮ್ಮ ನಿಯೋಜನೆಗೆ ಯಾವುದು ಸರಿಹೊಂದುತ್ತದೆ ಎಂಬುದು ಯಾವ ಪ್ರಾಂಪ್ಟ್ ನಿಜವಾಗಿ ತಡೆಯುತ್ತಿದೆ ಮತ್ತು ಯಾವ ರಹಸ್ಯವನ್ನು ಶಾಂತವಾಗಿ ಬಿಡಲು ನೀವು ಶಕ್ತರಾಗಿದ್ದೀರಿ ಎಂಬುದನ್ನು ಅವಲಂಬಿಸಿದೆ.
ಯಾಂತ್ರಿಕೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಮೊದಲು ಪ್ರಾಂಪ್ಟ್ಗೆ ಹೆಸರಿಡಿ
ನಾಲ್ಕು ಪ್ರಾಂಪ್ಟ್ಗಳು ಟರ್ಮಿನಲ್ನಲ್ಲಿ ಒಂದೇ ರೀತಿ ಕಾಣುತ್ತವೆ. ಖಾತೆ ಜೋಡಿ ಸರ್ವರ್ನ PAM ಅಥವಾ auth-user-pass-verify ಸಂರಚನೆಯಿಂದ ಬರುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ auth-user-pass ಉತ್ತರಿಸುತ್ತದೆ. ಖಾಸಗಿ ಕೀ ಪಾಸ್ಫ್ರೇಜ್ ಕೀ ಫೈಲ್ಗೆ ಸೇರಿದ್ದು --askpass ಮೂಲಕ ಓದಲಾಗುತ್ತದೆ ಅಥವಾ ಕೈಯಿಂದ ಟೈಪ್ ಮಾಡಲಾಗುತ್ತದೆ. PKCS#12 ಬಂಡಲ್ ತನ್ನದೇ ಪಾಸ್ವರ್ಡ್ ಕೇಳುತ್ತದೆ. ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣವು ಖಾತೆ ರುಜುವಾತುಗಳನ್ನಲ್ಲ, --http-proxy ತೆಗೆದುಕೊಳ್ಳುವ auth ಫೈಲ್ ಬಳಸುತ್ತದೆ.
OpenVPN systemd, PHP ಅಥವಾ Node ನ ಮಗುವಾಗಿ ಚಲಿಸುವಾಗ ಟರ್ಮಿನಲ್ ಇಲ್ಲ, ಆದ್ದರಿಂದ ಇವುಗಳಲ್ಲಿ ಯಾವುದಾದರೂ ಸದ್ದಿಲ್ಲದೆ ತಡೆಯುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆ ಅಲ್ಲಿಯೇ ಕುಳಿತಿರುತ್ತದೆ, ಸೈಫರ್ ಸಾಲಿನ ನಂತರ ಲಾಗ್ ನಿಲ್ಲುತ್ತದೆ ಮತ್ತು ಯುನಿಟ್ ಕೊನೆಗೆ ಸಮಯ ಮೀರುತ್ತದೆ; ಈ ಮೌನವೇ ಜನರು ಯಾವ ಪ್ರಾಂಪ್ಟ್ ಕಾಯುತ್ತಿದೆ ಎಂದು ನೋಡುವ ಬದಲು ಮರುಪ್ರಯತ್ನ ಲೂಪ್ ಅಥವಾ sleep ಸೇರಿಸುವ ಕಾರಣ. ನಾಲ್ಕಕ್ಕೂ ನಿರ್ವಹಣಾ ಸಾಕೆಟ್ ಮಾತ್ರ ಉತ್ತರಿಸಬಲ್ಲದು. ರುಜುವಾತು ಫೈಲ್ ಮೊದಲನೆಯದಕ್ಕೆ ಉತ್ತರಿಸುತ್ತದೆ, ಬೇರೆ ಯಾವುದಕ್ಕೂ ಅಲ್ಲ.
auth-user-pass: ಒಂದು ಫೈಲ್, ಒಂದು ಪ್ರಾಂಪ್ಟ್
ಫೈಲ್ ಮೊದಲ ಸಾಲಿನಲ್ಲಿ ಬಳಕೆದಾರಹೆಸರನ್ನು ಮತ್ತು ಎರಡನೇ ಸಾಲಿನಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ, ಬೇರೆ ಏನೂ ಇಲ್ಲ: ಉದ್ಧರಣ ಚಿಹ್ನೆಗಳಿಲ್ಲ, ಕೀ ಹೆಸರುಗಳಿಲ್ಲ, ಟಿಪ್ಪಣಿಯಿಲ್ಲ. ಮೋಡ್ 600 ಸೆಟ್ ಮಾಡಿ ಮತ್ತು openvpn ಚಲಿಸುವ ಖಾತೆಯನ್ನು ಮಾಲೀಕರನ್ನಾಗಿ ಮಾಡಿ, ಇದು ಸೇವೆಗೆ ಸಾಮಾನ್ಯವಾಗಿ ನಿಮ್ಮ ಲಾಗಿನ್ ಅಲ್ಲದ ಬದಲಿಗೆ ಮೀಸಲಾದ ಬಳಕೆದಾರ. /root ಅಡಿಯಲ್ಲಿ root ಒಡೆತನದ ಫೈಲ್ ನಿಮ್ಮ ಶೆಲ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಆದೇಶ ಮತ್ತು ಬೂಟ್ನಲ್ಲಿ ವಿಫಲವಾಗುವ ಯುನಿಟ್ ನಡುವಿನ ವ್ಯತ್ಯಾಸ.
ಎರಡು ವಿವರಗಳು ಸರಿಯಾದ ಫೈಲ್ ಅನ್ನು ಪ್ರಾಂಪ್ಟ್ ಆಗಿ ಬದಲಾಯಿಸುತ್ತವೆ. CRLF ಉಳಿಸುವ ಸಂಪಾದಕ ಪಾಸ್ವರ್ಡ್ಗೆ ಅಂಟಿಕೊಂಡ ಕ್ಯಾರೇಜ್ ರಿಟರ್ನ್ ಬಿಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಸರ್ವರ್ ಫೈಲ್ನಲ್ಲಿ ಸರಿ ಕಾಣುವ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಿರಾಕರಿಸುತ್ತದೆ; ಕಣ್ಣಿನಿಂದ ಅಲ್ಲ, cat -A ಅಥವಾ od -c ಯಿಂದ ಪರಿಶೀಲಿಸಿ. ಮತ್ತು ಪ್ರೊಫೈಲ್ ಒಳಗಿನ ಆರ್ಗ್ಯುಮೆಂಟ್ ಇಲ್ಲದ auth-user-pass ವಿನ್ಯಾಸದ ಪ್ರಕಾರ «ಬಳಕೆದಾರನನ್ನು ಕೇಳು» ಎಂದರ್ಥ, ಅದನ್ನು ಕಮಾಂಡ್ ಲೈನ್ನ ಎರಡನೇ ನಿರ್ದೇಶನವು ಮೀರಿಸದೇ ಇರಬಹುದು, ಏಕೆಂದರೆ ಪ್ರೊಫೈಲ್ ಅದು ಇರುವಲ್ಲಿಯೇ ವಿಶ್ಲೇಷಿಸಲ್ಪಡುತ್ತದೆ.
ಆಯ್ಕೆಗಳ ಕ್ರಮ ಮೂರನೇ ಬಲೆ, ಮತ್ತು ಅದು ಆವೃತ್ತಿ-ಅವಲಂಬಿತ. ಕೆಲವು OpenVPN 2.4 ಬಿಲ್ಡ್ಗಳು --config ಮೊದಲು ಬಂದಾಗ --auth-user-pass ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಅದೇ ಎರಡು ಆಯ್ಕೆಗಳು ಬೇರೆ ಕ್ರಮದಲ್ಲಿ ಸಂಪರ್ಕಿಸುತ್ತವೆ. ನಿರ್ದೇಶನವನ್ನು ಪ್ರೊಫೈಲ್ ಒಳಗೆ ಅಥವಾ ಕಮಾಂಡ್ ಲೈನ್ನಲ್ಲಿ --config ನಂತರ ಇರಿಸಿ, ಮತ್ತು ಬೇರೆ ಏನನ್ನೂ ಬದಲಿಸುವ ಮೊದಲು ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ಪ್ರತಿ ಸಂಭವವನ್ನೂ grep ಮಾಡಿ.
auth-nocache ಈ ಯಾಂತ್ರಿಕೆಗೆ ಸೇರಿದ್ದರೂ ಏನನ್ನೂ ಒದಗಿಸುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್ ರುಜುವಾತನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಎಷ್ಟು ಕಾಲ ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ, ಇದು ಕ್ರ್ಯಾಶ್ ನಂತರ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಮತ್ತು ಫೈಲ್ ಇಲ್ಲದಿದ್ದಾಗ ಸ್ವಲ್ಪವೂ ಸಹಾಯ ಮಾಡುವುದಿಲ್ಲ. ಸರ್ವರ್-ಸೈಡ್ ಸೆಷನ್ ಟೈಮೌಟ್ ನಂತರ ಮರುಸಂಪರ್ಕ ಫೈಲ್ ಅನ್ನು ಮತ್ತೆ ಓದುತ್ತದೆ, ಆದ್ದರಿಂದ ಬೂಟ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಿದ ರುಜುವಾತು ದಿನದ ಮಧ್ಯದಲ್ಲೂ ಮುಗಿಯಬಹುದು.
ನಿರ್ವಹಣಾ ಸಾಕೆಟ್: ಪ್ರತಿ ಪ್ರಾಂಪ್ಟ್, ಹೆಚ್ಚು ಮೇಲ್ಮೈ
ಕ್ಲೈಂಟ್ ಅನ್ನು ಶ್ರೋತೃವಿನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಪ್ರಾಂಪ್ಟ್ಗಳು ಅದರ ಮೇಲೆ ವರದಿಯಾಗುತ್ತವೆ ಎಂದು ಸ್ಪಷ್ಟವಾಗಿ ಘೋಷಿಸಿ, OpenVPN 2.6 ಕೈಪಿಡಿಯಲ್ಲಿ ದಾಖಲಿಸಲಾದ ನಿರ್ದೇಶನಗಳನ್ನು ಬಳಸಿ:
management 127.0.0.1 3030
management-query-passwords
bash ನಿಂದ ಸಂಪರ್ಕವನ್ನು ಹೆಚ್ಚುವರಿ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ನಲ್ಲಿ ಇಟ್ಟುಕೊಂಡು ಸ್ಥಾನದ ಬದಲು ಪ್ರಾಂಪ್ಟ್ ಹೆಸರಿನಿಂದ ಉತ್ತರಿಸಿ, ಏಕೆಂದರೆ ಮರುಸಂಪರ್ಕ ಬೇರೆ ಕ್ರಮದಲ್ಲಿ ಕೇಳಬಹುದು:
exec 3<>/dev/tcp/127.0.0.1/3030
while read -r -u 3 line; do
case "$line" in
*"Need 'Auth' username/password"*)
echo 'username "Auth" alice' >&3
echo 'password "Auth" secret' >&3 ;;
*"Need 'Private Key' password"*)
echo 'password "Private Key" secret' >&3 ;;
esac
done
ಗಡಿ ಸಾಗಣೆ. ನಿರ್ವಹಣಾ ಪ್ರೋಟೋಕಾಲ್ loopback ನಲ್ಲಿ TCP ಮೇಲೆ ಸರಳ ಪಠ್ಯ, ಆದ್ದರಿಂದ ದೂರದ ನಿಯಂತ್ರಕ ತಲುಪಲು ಶ್ರೋತೃವನ್ನು LAN ಅಥವಾ ಸುರಂಗ ವಿಳಾಸದಲ್ಲಿ ಪ್ರಕಟಿಸಬಾರದು; ದೂರದ ನಿಯಂತ್ರಕ ಎಂದರೆ SSH ಮುಂದೂಡಿಕೆ, ಅಗಲವಾದ ಬೈಂಡ್ ಅಲ್ಲ. ಸಮುದಾಯ ಡೀಮನ್ ಒಂದೇ ಸಮಯದಲ್ಲಿ ಒಂದು ನಿರ್ವಹಣಾ ಕ್ಲೈಂಟ್ ಮಾತ್ರ ಸ್ವೀಕರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ GUI ಅಥವಾ ಮಾನಿಟರ್ ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ನೊಂದಿಗೆ ಸಾಕೆಟ್ ಹಂಚಿಕೊಳ್ಳಲಾರವು. ಎರಡನೇ ಸಂಪರ್ಕವು ಕ್ಯೂಗೆ ಸೇರಿಸದೆ ನಿರಾಕರಿಸಲ್ಪಡುತ್ತದೆ, ಮತ್ತು ವೈಫಲ್ಯ ಕಿವುಡಾದ ಸ್ಕ್ರಿಪ್ಟ್ನಂತೆ ಕಾಣುತ್ತದೆ.
ಆ ಸಾಕೆಟ್ ನಿಯಂತ್ರಣ ಕಾಲುವೆಯೂ ಹೌದು. ನಿರ್ವಹಣಾ ಪಾಸ್ವರ್ಡ್ ಇಲ್ಲದೆ 127.0.0.1:3030 ಗೆ ಸಂಪರ್ಕಿಸಬಲ್ಲ ಯಾವುದೂ ಸ್ಥಿತಿ ಓದಬಹುದು, ಸುರಂಗವನ್ನು ಕೊಲ್ಲಬಹುದು ಅಥವಾ ತಾನೇ ಪ್ರಾಂಪ್ಟ್ಗೆ ಉತ್ತರಿಸಬಹುದು. ನಿರ್ವಹಣಾ ಪಾಸ್ವರ್ಡ್ ಮತ್ತು ರುಜುವಾತು ಫೈಲ್ ಒಂದೇ ವರ್ಗದ ರಹಸ್ಯ, ಮತ್ತು ಎರಡೂ ಒಂದೇ ರೀತಿಯ ಕಾಳಜಿಗೆ ಅರ್ಹ.
ನಿಯೋಜನೆಗೆ ಯಾವುದು ಹೊಂದುತ್ತದೆ
ಏಕೈಕ ಪ್ರಾಂಪ್ಟ್ ಖಾತೆ ಜೋಡಿಯಾದಾಗ, ಕ್ಲೈಂಟ್ ಸ್ಥಿರ ಮಾಲೀಕರೊಂದಿಗೆ ಸೇವೆಯಾಗಿ ಚಲಿಸಿದಾಗ ಮತ್ತು ನೀವು ನಿಯಂತ್ರಿಸದ ಬ್ಯಾಕಪ್ಗಳಿಂದ ಹೊರಗೆ 600 ಫೈಲ್ ಇಡಬಹುದಾದಾಗ ರುಜುವಾತು ಫೈಲ್ ಆಯ್ಕೆ ಮಾಡಿ. ಕೀ ಪಾಸ್ಫ್ರೇಜ್ ಅಥವಾ PKCS#12 ಪಾಸ್ವರ್ಡ್ ಒಳಗೊಂಡಿದ್ದಾಗ, ರ್ಯಾಪರ್ ಈಗಾಗಲೇ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತಿದ್ದಾಗ, ಅಥವಾ ಮರುಸಂಪರ್ಕವನ್ನು ಡೀಬಗ್ ಮಾಡುವಾಗ ಸ್ಥಿತಿ ಮತ್ತು ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ನೋಡಬೇಕಾದಾಗ ನಿರ್ವಹಣಾ ಸಾಕೆಟ್ ಆಯ್ಕೆ ಮಾಡಿ.
ಎರಡು ಷರತ್ತುಗಳು ನಿರ್ಣಯವನ್ನು ಸರಿಸುತ್ತವೆ. ರ್ಯಾಪರ್ /bin/sh ಆಗಿದ್ದರೆ, ಬೈನರಿಯನ್ನು ನೇರವಾಗಿ ಕರೆಯುವ systemd ಯುನಿಟ್ ಆಗಿದ್ದರೆ, ಅಥವಾ ಕನಿಷ್ಠ ಕಂಟೇನರ್ ಆಗಿದ್ದರೆ, bash-ಗೆ ಮಾತ್ರದ ಸಾಕೆಟ್ ಅಂಟು ಲಭ್ಯವಿಲ್ಲ ಮತ್ತು ಫೈಲ್ ಅಗ್ಗದ ಉತ್ತರ. ರಹಸ್ಯ ಆಗಾಗ ತಿರುಗುತ್ತಿದ್ದರೆ, ಎರಡೂ ಫೈಲ್ಗಳು ಅದಕ್ಕೆ ಒಳ್ಳೆಯ ಮನೆ ಅಲ್ಲ: ಸಣ್ಣ ರ್ಯಾಪರ್ನಿಂದ ಕೀರಿಂಗ್ ಕೇಳಿ ಮತ್ತು ಯುನಿಟ್ ರ್ಯಾಪರ್ ಕರೆಯಲು ಬಿಡಿ, ಇದು ತಿರುಗುವಿಕೆಯನ್ನು ಒಂದೇ ಸ್ಥಳದಲ್ಲಿ ಇಡುತ್ತದೆ ಮತ್ತು ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಶೆಲ್ ಇತಿಹಾಸದ ಹೊರಗೆ.
ಪ್ರಕ್ರಿಯೆ ಬದಲಾವಣೆ ಎರಡರ ನಡುವೆ ಇದೆ ಮತ್ತು ಯಾವುದಕ್ಕೂ ಸೇರಿಲ್ಲ. ಕೆಳಗಿನ ಒಂದು ಸಾಲು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಏಕೆಂದರೆ bash ಅದನ್ನು openvpn ಪ್ರಾರಂಭವಾಗುವ ಮೊದಲು ವಿಸ್ತರಿಸುತ್ತದೆ, ಕ್ಲೈಂಟ್ ವಾಕ್ಯರಚನೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದರಿಂದ ಅಲ್ಲ:
openvpn --config client.ovpn --auth-user-pass <(printf "%s
%s
" "$USER" "$PASS")
ಅದು /bin/sh ಅಡಿಯಲ್ಲಿ, ಶೆಲ್ ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡುವ ಯುನಿಟ್ನಲ್ಲಿ ಮತ್ತು bash ಅಥವಾ /dev/fd ಇಲ್ಲದ ಇಮೇಜ್ಗಳಲ್ಲಿ ಒಡೆಯುತ್ತದೆ. ಅದನ್ನು ಸಂವಾದಾತ್ಮಕ ಪರೀಕ್ಷೆಗೆ ಇಡಿ, ಸೇವೆ ಅವಲಂಬಿಸಿರುವ ಒಪ್ಪಂದವಾಗಿ ಎಂದಿಗೂ ಅಲ್ಲ.
ರಹಸ್ಯವನ್ನು ರಕ್ಷಿಸಿ, ನಂತರ ಲಾಗ್ನಿಂದ ಪರಿಶೀಲಿಸಿ
ಎರಡೂ ಯಾಂತ್ರಿಕೆಗಳು OpenVPN ಪ್ರಕ್ರಿಯೆಗೆ ಓದಬಹುದಾದ ರಹಸ್ಯ ಬಿಡುತ್ತವೆ. ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಕಮಾಂಡ್ ಲೈನ್ ಅಥವಾ ಯುನಿಟ್ ಫೈಲ್ನಲ್ಲಿ ಎಂದಿಗೂ ಇಡಬೇಡಿ, ಅಲ್ಲಿ ps ಮತ್ತು systemctl ಅದನ್ನು ಪ್ರತಿ ಸ್ಥಳೀಯ ಬಳಕೆದಾರರಿಗೆ ತೋರಿಸುತ್ತವೆ; ಫೈಲ್ನ ಮಾರ್ಗವನ್ನು ಕೊಡಿ, ಒಳಗಿನ ಮೌಲ್ಯವನ್ನಲ್ಲ. ಪ್ರಮಾಣಪತ್ರಗಳು ಖಾತೆ ಜೋಡಿಯನ್ನು ಬದಲಾಯಿಸಬಲ್ಲ ಸ್ಥಳದಲ್ಲಿ, ಅದು ಪ್ರಾಂಪ್ಟ್ ವರ್ಗವನ್ನು ಮರೆಮಾಡುವ ಬದಲು ತೆಗೆದುಹಾಕುತ್ತದೆ.
ಸರಿಯಾದ ಓಟವು ಪ್ರಾಂಪ್ಟ್ ಅನುಕ್ರಮ ಪೂರ್ಣಗೊಳ್ಳುವುದನ್ನು ಮತ್ತು ಸೆಷನ್ «Initialization Sequence Completed» ತಲುಪುವುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಅದೇ ಪ್ರಾಂಪ್ಟ್ನಲ್ಲಿ ನಿಂತರೆ ಹೊಂದಾಣಿಕೆ ವಿಫಲವಾಯಿತು: ಸಾಕೆಟ್ ಕಳುಹಿಸಿದ ನಿಖರ ಸಾಲುಗಳನ್ನು ಮುದ್ರಿಸಿ, ಉದ್ಧರಣ ಮತ್ತು ಪ್ರಾಂಪ್ಟ್ ಹೆಸರು ಪರಿಶೀಲಿಸಿ, ಮತ್ತು sleep ಸೇರಿಸುವ ಬದಲು ಮಾದರಿಯನ್ನು ಸರಿಪಡಿಸಿ. ಯಶಸ್ಸನ್ನು ವರದಿ ಮಾಡಿ ಏನನ್ನೂ ಸಾಗಿಸದ ಸುರಂಗ ರೂಟಿಂಗ್ ಅಥವಾ push ಸಮಸ್ಯೆ, ರುಜುವಾತು ಸಮಸ್ಯೆ ಅಲ್ಲ.
ನಂತರ ಮೊದಲ ಪ್ರಾರಂಭ ಮಾತ್ರವಲ್ಲ, ಮರುಸಂಪರ್ಕವನ್ನೂ ಪರೀಕ್ಷಿಸಿ. ಸರ್ವರ್-ಸೈಡ್ ಸೆಷನ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡಿ ಅಥವಾ ಅದರ ಟೈಮೌಟ್ ಮುಗಿಯುವವರೆಗೆ ಕಾಯಿರಿ; ಕ್ಲೈಂಟ್ ಮತ್ತೆ ಕೇಳುತ್ತದೆ, ಮತ್ತು ಅಲ್ಲಿಯೇ ಬೂಟ್ನಲ್ಲಿ ಸರಿ ಕಂಡ ಫೈಲ್ ಮರುಸಂಪರ್ಕಿಸುವ ಖಾತೆಗೆ ಇನ್ನೂ ಓದಬಹುದಾಗಿದೆಯೇ ಎಂದು ತೋರಿಸುತ್ತದೆ.