ส่งออกรหัสผ่านจากตัวจัดการรหัสผ่าน 'รหัสผ่าน'


9

ฉันใช้ตัวpass จัดการรหัสผ่านมาประมาณหนึ่งปีแล้วและมันเยี่ยมมาก แต่บางครั้งฉันก็ชอบที่จะทดสอบตัวจัดการรหัสผ่านอื่น ๆ จากนั้นฉันก็ต้องใช้รหัสผ่านของฉันอีกครั้ง

จนถึงตอนนี้ฉันเพิ่งเพิ่มพวกเขาด้วยตนเองตามที่ฉันต้องการ แต่ถ้าฉันต้องการย้ายไปยังตัวจัดการรหัสผ่านอื่นฉันต้องการสคริปต์เพราะฉันไม่มีความอดทนที่จะทำทีละตัวเพราะฉันมี ร้อย (ถ้าไม่มาก)

เป็นไปได้ไหม? มีทางออกอยู่แล้ว?

ฉันค้นหาวิธีแก้ปัญหาเปิดและปิดในช่วงสองสามเดือนที่ผ่านมาและไม่สามารถหาวิธีที่ "แค่เรียกใช้สคริปต์นี้และส่งออกบูม"

มีสคริปต์เช่นนี้หรือไม่? ถ้าไม่ฉันควรทำอะไรหรือที่ไหน


@josten ใช่ฉันคิดว่ามีบางอย่างที่มันจะผ่านทุกไฟล์และมันจะได้รับรหัสผ่านและบันทึกที่ใดที่หนึ่ง นั่นเป็นวิธีหนึ่งที่จะทำ แต่ไม่แน่ใจว่า ...
greduan

คำตอบ:


10

คุณสามารถทำได้หากคุณเรียกใช้gpg-agent (และใส่ข้อความรหัสผ่านของคุณ) โดยการวนลูปผ่านไฟล์ในที่เก็บรหัสผ่านของคุณและเขียนลงในไฟล์แยกต่างหาก

คุณจำเป็นต้องแยกไดเรกทอรีชั้นนำออกจากเส้นทาง ( $PASSWORD_STORE_DIR) และ.gpgส่วนขยายจากแต่ละไฟล์ในไดเรกทอรีย่อย แต่ไม่เช่นนั้นจะตรงไปตรงมามากพอ:

#!/usr/bin/env bash
# export passwords to external file

shopt -s nullglob globstar
prefix=${PASSWORD_STORE_DIR:-$HOME/.password-store}

for file in "$prefix"/**/*.gpg; do                           
    file="${file/$prefix//}"
    printf "%s\n" "Name: ${file%.*}" >> exported_passes
    pass "${file%.*}" >> exported_passes
    printf "\n\n" >> exported_passes
done

นั่นเป็นเรื่องง่ายมากตามแนวของสิ่งที่ฉันคิด :) เพียงแค่เรียกใช้อย่างรวดเร็วจริง ๆ คุณจะเพิ่มชื่อไฟล์อย่างไรก่อนเนื้อหาของไฟล์แต่ละไฟล์แล้วแยกสองบรรทัดระหว่างแต่ละไฟล์ (เพื่อแยก) ฉันไม่คุ้นเคยกับการเขียนสคริปต์เชลล์มากนัก
greduan

BTW เหตุผลที่ฉันต้องการเพราะรหัสผ่านบางอย่าง (คือรหัสผ่านที่ไม่ได้นำเข้าจาก LastPass) ไม่มีข้อมูลเกี่ยวกับพวกเขานอกเหนือจากรหัสผ่านตัวเองดังนั้นเมื่อมีหลายคนที่ฉันไม่รู้ว่ามันเป็นรหัสผ่านสำหรับอะไร
greduan

@Greduan อัปเดตเพื่อพิมพ์ในรูปแบบที่คุณถาม
jasonwryan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.