Si faili halali ya OPENSSH private key
Unajaribu kuwezesha matengenezo ya WordPress kiotomatiki kupitia SSH. Unapata kosa hili:
SSHException: not a valid OPENSSH private key file.
Umeikagua faili yako ya private key. Inaonekana iko sawa. Tatizo si funguo yako. Tatizo ni maktaba (library).
Paramiko hushindwa inapokutana na funguo zilizo nje ya muundo wa OpenSSH. Watoa huduma za hosting na zana mbalimbali huzalisha mifumo (formats) tofauti. Paramiko mara nyingi huzikataa.
Tulijenga tabaka la utangamano (compatibility layer) ili kushughulikia mifumo saba tofauti:
- OpenSSH new format
- PKCS#1 RSA
- SEC 1 EC
- PKCS#8 plain
- PKCS#8 encrypted
- Legacy PEM encrypted
- PuTTY .ppk (v2 na v3)
Paramiko inashughulikia OpenSSH na PKCS#1. Inashindwa kwenye faili za PKCS#8 na .ppk. Kwa mfano, Sakura Internet huzalisha ECDSA kwa kutumia PKCS#8. Paramiko hukataa hii mara moja.
Suluhisho letu linatumia mbinu ya kutambua (detect), kusawazisha (normalize), na kukabidhi (hand-off).
- Kutambua (Detect): Mfumo huangalia baiti za kwanza na vichwa vya PEM ili kupata muundo.
- Kusawazisha (Normalize): Tunatumia maktaba ya cryptography kusoma funguo. Kisha tunaziandika upya kama PEM inayokubalika na OpenSSH.
- Kukabidhi (Hand-off): Paramiko inapokea funguo. Kwa Paramiko, kila wakati inaonekana kama muundo wa kawaida wa OpenSSH.
Tuliandika mchanganuzi (parser) maalum kwa ajili ya faili za PuTTY .ppk. Hii huifanya kodi kuwa nyepesi. Inazuia utegemezi (dependencies) za ziada zinazoongeza ukubwa wa binary.
Pia tumerekebisha ujumbe wa makosa. Makosa yasiyoeleweka husababisha tiketi za msaada (support tickets). Sasa tunatoa vipengele vitatu vya data wakati hitilafu inapotokea:
- Muundo uliowasili.
- Mifumo tunayokubali.
- Unapaswa kufanya nini baadaye.
Vikwazo vya maktaba hutoweka unapojenga tabaka linalofyonza (absorbing layer) mbele yake. Tabaka hili hufanya mifumo tofauti ionekane sawa kwa programu yako.