พื้นที่เก็บข้อมูลนี้มีส่วนขยาย Chrome ที่ผสานรวมตัวจัดการรหัสผ่านรหัสผ่านกับ Chrome
มีสองโฟลเดอร์ในที่เก็บนี้ที่ประกอบด้วย:
หากต้องการใช้ส่วนขยาย คุณต้องติดตั้งส่วนขยายในเบราว์เซอร์ Chrome หรือ Chromium และแอปพลิเคชันเนทีฟของ Python (chrome_pass)
คำแนะนำเหล่านี้ได้รับการทดสอบใน Ubuntu 24.04 และ Debian 12 (หนอนหนังสือ):
sudo apt-get install pass python3 python3-pip
pip install --user chrome-pass==1.0.1
chrome_pass install
รับส่วนขยายจาก Chrome เว็บสโตร์
เพื่อลดความซับซ้อนของโค้ดของส่วนขยายนี้ จึงมีสมมติฐานบางประการเกี่ยวกับวิธีการจัดโครงสร้างการจัดเก็บรหัสผ่าน เพื่อให้ส่วนขยายนี้สามารถแสดงรายการและถอดรหัสรหัสผ่านของคุณได้ ต้องปฏิบัติตามสมมติฐานเหล่านี้:
ส่วนขยายนี้ถือว่าที่เก็บรหัสผ่านอยู่ภายในโฟลเดอร์ .password-store ภายในโฮมไดเร็กตอรี่ของคุณ:
$HOME/.password-store
ในกรณีที่คุณมีที่เก็บรหัสผ่านอยู่ที่อื่น คุณอาจลองใช้ลิงก์สัญลักษณ์เพื่อแก้ไขข้อจำกัดนี้ หรือตั้งค่าตัวแปร env PASSWORD_STORE_DIR
ให้ชี้ไปยังตำแหน่งที่เก็บรหัสผ่าน
ปลั๊กอินนี้จะถือว่าสองส่วนสุดท้ายของเส้นทางรหัสผ่านแต่ละเส้นทางเป็นไปตามโครงสร้างนี้:
[Service URL]/[Username]
ตัวอย่างเช่น หากต้องการเก็บบัญชี Gmail และ Amazon บางบัญชี:
~/.password-store/
├── mail.google.com
│ ├── me@gmailcom
│ ├── [email protected]
│ └── [email protected]
└── Amazon
├── www.amazon.com
│ ├── [email protected]
│ └── [email protected]
└── www.amazon.co.jp
├── [email protected]
└── [email protected]
เส้นทางของคุณสามารถมีได้มากเท่าที่คุณต้องการ ตราบใดที่สองส่วนสุดท้ายเป็นไปตามโครงสร้างด้านบน และส่วน [URL บริการ] จะต้องตรงกับ URL ของหน้าที่คุณกำลังดูอยู่เนื่องจากใช้เพื่อเลือกรหัสผ่านที่เกี่ยวข้องจากร้านค้า
หากไฟล์ pass ได้กำหนดค่า pass-otp แล้ว chrome-pass จะสร้างโค้ด TOTP และกรอกข้อความที่เป็นตัวเลขในแบบฟอร์มด้วย
สำหรับบัญชี IAM เราไม่เพียงต้องการชื่อผู้ใช้และรหัสผ่านสำหรับเข้าสู่ระบบเท่านั้น แต่ยังต้องมี ID หรือนามแฝง 12 หลักด้วย สำหรับบัญชีเหล่านี้ Chrome-pass มีเหตุผลพิเศษบางอย่างเพื่อให้สามารถกรอกข้อมูลทั้งหมดในหน้าเข้าสู่ระบบได้
Password Store
├── signin.aws.amazon.com
│ ├── [email protected]
│ ├── [email protected]
│ ├── 183413992345
│ ├── 550312930456-username1
│ ├── 550312930456-username2
│ └── accountalias
signin.aws.amazon.com
ซึ่งเป็น URL สำหรับการเข้าสู่ระบบคอนโซลpass edit ...
และเพิ่มคู่คีย์/ค่าสองคู่ที่ใดก็ได้หลังบรรทัดรหัสผ่าน:username=[IAM username]
account=[12 digit AWS account id or alias]
username
เพื่อกรอกช่องชื่อผู้ account
ที่จะกรอกในช่องรหัสบัญชี และ password
ที่ถอดรหัสแล้วเพื่อกรอกช่องรหัสผ่าน ส่วนขยาย chrome-pass ค้นหาคู่คีย์/ค่าใดๆ ในไฟล์ pass gpg และเติมฟิลด์อินพุต HTML ด้วย ID เท่ากับ key
ด้วย value
ที่สอดคล้องกัน
นอกจากนี้ หากตั้ง value
เป็นค่าตัวแทนพิเศษต่อไปนี้ ค่าเหล่านี้จะถูกแทนที่ด้วย:
pass__user
: แทนที่ด้วย [Username]
ที่แยกมาจากส่วนสุดท้ายของเส้นทางการส่งผ่านpass__password
: แทนที่ด้วยรหัสผ่านที่ถอดรหัสแล้วpass__otpauth
: แทนที่ด้วยรหัส pass-otp หากมี บันทึก
ปุ่มตัวยึดตำแหน่งพิเศษมีอักขระขีดล่าง __
สองตัว
ซึ่งช่วยให้ Chrome-Pass ทำงานกับแบบฟอร์มเข้าสู่ระบบที่ไม่เป็นมาตรฐานบางรูปแบบ เช่น แบบฟอร์มเข้าสู่ระบบ Apple Id หน้าเข้าสู่ระบบนี้ไม่มีองค์ประกอบของแบบฟอร์มและต้องใช้จาวาสคริปต์ในการทำงาน โชคดีที่ช่องป้อนข้อมูล HTML สำหรับชื่อผู้ใช้และรหัสผ่านมี ID ที่กำหนดไว้อย่างชัดเจนซึ่งเราสามารถตั้งค่าในไฟล์ chrome-pass เพื่อให้ใช้งานได้:
# chrome-pass for Apple ID login from.
account_name_text_field=pass__user
password_text_field=pass__password
การเพิ่มคู่คีย์/ค่าข้างต้นลงในไฟล์ Pass ของบัญชี Apple จะสั่งให้ส่วนขยาย chrome-pass กรอกช่องป้อนข้อมูล HTML ด้วย id account_name_text_field
ด้วยชื่อผู้ใช้ และช่องป้อนข้อมูล HTML ใดๆ ด้วย password_text_field
ด้วยรหัสผ่านที่ถอดรหัส
นี่เป็นสำหรับนักพัฒนาเท่านั้นหรือผู้ที่ต้องการดูซอร์สโค้ดก่อนที่จะเชื่อถือรหัสผ่านกับส่วนขยายบางส่วนที่เขียนโดยบุคคลที่ไม่รู้จัก
ภายใน Chrome ให้เปิด URL chrome://extensions ตรวจสอบ โหมดนักพัฒนาซอฟต์แวร์ จากนั้นโหลดเส้นทางไปยังโฟลเดอร์ ส่วนขยาย โดยใช้ปุ่ม โหลดส่วนขยายที่คลายการแพ็ก หลังจากโหลดส่วนขยายลงใน Chrome แล้ว ให้จด ID ส่วนขยาย ไว้
ต่อไปเราต้องติดตั้งสคริปต์ wrapper ของ chrome_pass และติดตั้งรายการ Native Host Application:
cd application
pip install --upgrade setuptools build --user
python -m build
pip install . --user
chrome_pass install [extension ID]
แทนที่ฟิลด์ที่กำหนดเอง otpoauth
ด้วย pass__otpauth
ในไฟล์ you pass ช่องที่กำหนดเองของ otpoauth
จะถูกนำออกและจะไม่ทำงานในรุ่นต่อๆ ไป
แอปพลิเคชันเนทิฟและส่วนขยาย 0.5.1 เข้ากันไม่ได้กับเวอร์ชันก่อนหน้า ตรวจสอบให้แน่ใจว่าทั้งคู่เป็น 0.5.1 เพื่อให้ทำงานได้อย่างถูกต้อง
สคริปต์ nativePass
ได้รับการเปลี่ยนชื่อเป็น chrome_pass
Chrome-pass เวอร์ชัน 0.5.0 ใช้เครื่องมือตั้งค่าแทน distutils ในการจัดแพ็กเกจและติดตั้งแอปพลิเคชันเนทีฟ เมื่อติดตั้งคุณอาจได้รับข้อผิดพลาดเช่น:
ERROR: Cannot uninstall 'chrome-pass'. It is a distutils installed project and
thus we cannot accurately determine which files belong to it which would lead
to only a partial uninstall.
ในสถานการณ์นี้จำเป็นต้องถอนการติดตั้งแพ็คเกจเวอร์ชันเก่าด้วยตนเอง:
nativePass
ค้นหาโดยใช้ which nativePass
chrome_pass-0.X.0...
ทั้งหมด หากส่วนขยายไม่สามารถรับรายการชื่อผู้ใช้จากร้านค้ารหัสผ่านของคุณได้ด้วยเหตุผลบางประการ สาเหตุที่เป็นไปได้มากที่สุดคือ:
พบว่าแอปพลิเคชัน chrome_pass ไม่สามารถถอดรหัสรหัสผ่าน gpg ด้วย python-gnupg เวอร์ชันใหม่บางเวอร์ชันได้ ฉันสามารถตรวจสอบได้ว่าปลั๊กอินทำงานโดยไม่มีปัญหาเมื่อใช้โมดูล gnupg เวอร์ชัน 0.3.9 ซึ่งพบโดยค่าเริ่มต้นใน Ubuntu 16.04LTS
ดูรายละเอียดปัญหาที่เกี่ยวข้องได้ที่: Github
หากปลั๊กอินทำงานเมื่อคุณเปิดใช้งาน Chrome จากภายในเทอร์มินัล แต่ไม่ทำงานเมื่อเปิดใช้งานจาก Spotlight หรือตัวเรียกใช้งานอื่น ๆ ให้ตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อม PATH ได้รับการตั้งค่าอย่างถูกต้องโดยตัวเรียกใช้งาน
ดูปัญหาที่เกี่ยวข้องเพื่อดูรายละเอียดได้ที่: Github