โฮมเพจ » ทำอย่างไร » ฉันจะเก็บรหัสผ่านไม่ให้ปรากฏเมื่อเรียกใช้คำสั่งเป็นอาร์กิวเมนต์ SSH ได้อย่างไร

    ฉันจะเก็บรหัสผ่านไม่ให้ปรากฏเมื่อเรียกใช้คำสั่งเป็นอาร์กิวเมนต์ SSH ได้อย่างไร

    การรักษารหัสผ่านของเราให้ปลอดภัยนั้นเป็นสิ่งที่เราทุกคนจำเป็นต้องดำเนินการอย่างจริงจัง แต่คุณจะทำอย่างไรถ้าโปรแกรมหรือแอพใดแอพหนึ่งแสดงรหัสผ่านของคุณแบบธรรมดาเมื่อคุณพิมพ์? ประกาศถามตอบ SuperUser ในวันนี้มีวิธีแก้ไขปัญหารหัสผ่านของผู้อ่านที่ผิดหวัง.

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    คำถาม

    ผู้อ่าน SuperUser ผู้ใช้ 110971 ต้องการทราบวิธีการซ่อนรหัสผ่านเมื่อใช้คำสั่งเป็นอาร์กิวเมนต์ SSH:

    ถ้าฉันรันคำสั่งนี้และเริ่มพิมพ์รหัสผ่าน MySQL รหัสผ่านจะปรากฏบนหน้าจอ:

    • ผู้ใช้ ssh @ เซิร์ฟเวอร์ 'mysql -u user -p'

    ฉันจะป้องกันสิ่งนี้ได้อย่างไร ถ้าฉันเข้าสู่ระบบผ่าน SSH และดำเนินการคำสั่ง MySQL แล้วทุกอย่างทำงานได้ดี.

    คุณจะซ่อนรหัสผ่านอย่างไรเมื่อเรียกใช้คำสั่งเป็นอาร์กิวเมนต์ SSH?

    คำตอบ

    ผู้สนับสนุน SuperUser Toby Speight มีคำตอบสำหรับเรา:

    หากคุณให้คำสั่งรีโมตเพื่อรัน SSH จะไม่จัดสรร a TTY, ดังนั้นคำสั่งระยะไกลไม่สามารถปิดการใช้งาน echo คุณสามารถบังคับ SSH เพื่อให้ TTY ใช้ -เสื้อ ตัวเลือก:

    • ssh -t user @ server 'mysql -u user -p'

    ตัวเลือกที่เทียบเท่า (สำหรับ -โอ หรือสำหรับไฟล์ปรับแต่ง) คือ RequestTTY. ฉันจะระมัดระวังไม่ให้ใช้มันในไฟล์กำหนดค่าเพราะอาจมีผลกระทบที่ไม่พึงประสงค์สำหรับคำสั่งที่ไม่โต้ตอบ.


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.

    เครดิตรูปภาพ: ภาพหน้าจอ Linux (Flickr)