ฉันจะเก็บรหัสผ่านไม่ให้ปรากฏเมื่อเรียกใช้คำสั่งเป็นอาร์กิวเมนต์ 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)