செல்லாத OPENSSH private key file
நீங்கள் SSH மூலம் WordPress பராமரிப்பைத் தானியக்கமாக்க முயற்சிக்கிறீர்கள். உங்களுக்கு இந்த பிழை கிடைக்கிறது:
SSHException: not a valid OPENSSH private key file.
நீங்கள் உங்கள் key கோப்பைச் சரிபார்த்தீர்கள். அது சரியாகத் தெரிகிறது. பிரச்சனை உங்கள் key-இல் இல்லை. பிரச்சனை அந்த library-இல் உள்ளது.
OpenSSH format-க்கு வெளியே உள்ள keys-களை Paramiko சந்திக்கும் போது தோல்வியடைகிறது. Hosting providers மற்றும் கருவிகள் பலவிதமான formats-களை உருவாக்குகின்றன. Paramiko பெரும்பாலும் அவற்றை நிராகரிக்கிறது.
ஏழு வெவ்வேறு formats-களைக் கையாள நாங்கள் ஒரு compatibility layer-ஐ உருவாக்கினோம்:
- OpenSSH புதிய format
- PKCS#1 RSA
- SEC 1 EC
- PKCS#8 plain
- PKCS#8 encrypted
- Legacy PEM encrypted
- PuTTY .ppk (v2 மற்றும் v3)
Paramiko, OpenSSH மற்றும் PKCS#1-ஐக் கையாள்கிறது. ஆனால் PKCS#8 மற்றும் .ppk கோப்புகளில் இது தோல்வியடைகிறது. உதாரணமாக, Sakura Internet, PKCS#8 உடன் ECDSA-வை உருவாக்குகிறது. Paramiko இதை உடனடியாக நிராகரிக்கிறது.
எங்களது தீர்வு detect, normalize மற்றும் hand-off ஆகிய அணுகுமுறைகளைப் பயன்படுத்துகிறது.
- Detect: format-ஐக் கண்டறிய சிஸ்டம் முதல் bytes மற்றும் PEM headers-களைப் பார்க்கிறது.
- Normalize: key-ஐப் படிக்க நாங்கள் cryptography library-ஐப் பயன்படுத்துகிறோம். பின்னர் அதை OpenSSH-க்கு இணக்கமான PEM ஆக மாற்றுகிறோம்.
- Hand-off: Paramiko அந்த key-ஐப் பெறுகிறது. Paramiko-விற்கு, அது எப்போதும் நிலையான OpenSSH format போலவே இருக்கும்.
நாங்கள் PuTTY .ppk கோப்புகளுக்காக ஒரு custom parser-ஐ எழுதினோம். இது குறியீட்டை (code) இலகுவாக வைக்கிறது. இது binary அளவை அதிகரிக்கும் கூடுதல் dependencies-களைத் தவிர்க்கிறது.
நாங்கள் பிழைச் செய்திகளையும் (error messages) சரிசெய்துள்ளோம். தெளிவற்ற பிழைகள் support tickets-களுக்கு வழிவகுக்கின்றன. இப்போது ஒரு தோல்வி ஏற்படும் போது நாங்கள் மூன்று தரவுகளை வழங்குகிறோம்:
- என்ன format வந்தது.
- நாங்கள் எந்த formats-களை ஏற்கிறோம்.
- அடுத்து நீங்கள் என்ன செய்ய வேண்டும்.
ஒரு library-க்கு முன்னால் நீங்கள் ஒரு absorbing layer-ஐ உருவாக்கும்போது, அதன் வரம்புகள் மறைந்துவிடும். இந்த layer வெவ்வேறு formats-களை உங்கள் application-க்கு ஒரே மாதிரியாகக் காட்டும்.