รหัสผ่านของฉันถูกบุกรุกเนื่องจากฉันลืมกด Enter หลังจากชื่อผู้ใช้ ssh?


142

ฉันเพิ่งลองเข้าสู่เซิร์ฟเวอร์Fedora (รุ่น 13 Goddard) โดยใช้ SSH (PuTTY, Windows) ด้วยเหตุผลบางอย่างEnterหลังจากพิมพ์ชื่อผู้ใช้ของฉันไม่ได้ผ่านและฉันพิมพ์รหัสผ่านของฉันและกด Enter อีกครั้ง ฉันเพิ่งตระหนักถึงความผิดพลาดของฉันเมื่อเซิร์ฟเวอร์ทักทายฉันด้วยความสุข

รหัสผ่านของmyusername MYPASSWORD @ server.example.com:

ฉันเลิกการเชื่อมต่อ ณ จุดนี้และเปลี่ยนรหัสผ่านของฉันบนเครื่องนั้น (ผ่านการเชื่อมต่อ SSH แยกต่างหาก)

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

ปรับปรุง

ขอบคุณสำหรับความคิดเห็นทั้งหมดเกี่ยวกับคำถามโดยนัย "จะทำอย่างไรเพื่อป้องกันปัญหานี้ในอนาคต" เพื่อการเชื่อมต่อที่รวดเร็วเพียงครั้งเดียวฉันจะใช้คุณสมบัติ PuTTY นี้ทันที:

ป้อนคำอธิบายรูปภาพที่นี่

เพื่อแทนที่ตัวเลือก "ชื่อผู้ใช้สำหรับเข้าสู่ระบบอัตโนมัติ"

ป้อนคำอธิบายรูปภาพที่นี่

ฉันยังจะเริ่มใช้คีย์ SSH บ่อยขึ้นตามที่อธิบายไว้ในเอกสารฉาบ


4
นี่เป็นคำถามที่ดีจริงๆ ฉันคิดว่าเราทุกคนพิมพ์ชื่อผู้ใช้รหัสผ่านโดยไม่ตั้งใจลงในบริการบางประเภทในบางช่วงเวลา มันง่ายเกินไปที่จะทำ
user606723

2
อีกเหตุผลที่ดีในการเปลี่ยนรหัสผ่านที่มีความสม่ำเสมอ
Jonas

25
คุณสามารถหลีกเลี่ยงสิ่งนี้ได้โดยแจ้งให้ไคลเอ็นต์ ssh ของคุณเชื่อมต่อกับ username@server.example.com จากนั้นคุณจะได้รับแจ้งให้ใส่รหัสผ่านเท่านั้นทำให้เกิดอุบัติเหตุเช่นนี้เป็นไปไม่ได้ ถึงแม้ว่าจะดีกว่าเพียงแค่ใช้กุญแจสาธารณะ / ส่วนตัว
Kevin

1
@Iceman ขอบคุณสำหรับคำใบ้นั้น - เนื่องจากฉันรู้ว่า PuTTY ซ่อนชื่อผู้ใช้ไว้ใต้Connection/Data/Login details/Auto-login usernameนั้นไม่เคยเกิดขึ้นกับฉันเลยว่าฟิลด์ "ชื่อโฮสต์ (หรือที่อยู่ IP)" ก็สามารถยอมรับชื่อผู้ใช้ @ hostname เช่นเดียวกับไคลเอนต์บรรทัดคำสั่ง ssh
Jonas Heidelberg

4
ใช้การพิสูจน์ตัวตนแบบใช้คีย์
Zoredache

คำตอบ:


148

ในระยะสั้น: ใช่

# ssh 192.168.1.1 -l "myuser mypassword"
^C
# egrep "mypassword" /var/log/auth.log
Oct 19 14:33:58 host sshd[19787]: Invalid user myuser mypassword from 192.168.111.78
Oct 19 14:33:58 host sshd[19787]: Failed none for invalid user myuser mypassword from 192.168.111.78 port 53030 ssh2

21

หากฉันจำได้ดีจะมีการลงทะเบียนในบันทึกหากระดับการบันทึกถูกตั้งค่าเป็น DEBUG หรือ TRACE

แก้ไข: ได้รับการยืนยันฉันพยายามเข้าสู่เซิร์ฟเวอร์ของฉันและพบสิ่งนี้ในบันทึกของฉัน

Oct 19 14:34:24 sd-xxxx sshd[26563]: pam_unix(sshd:auth): authentication failure; logname=     uid=0 euid=0 tty=ssh ruser= rhost=xxx-xxx-xxx-xxx.rev.numericable.fr 
Oct 19 14:34:26 sd-xxxx sshd[26563]: Failed password for invalid user toto from xxx.xxx.xxx.xxx port 56685 ssh2

หมายเหตุ: IP ถูกซ่อนอยู่


51
IP ของคุณไม่ถูกซ่อนไว้พวกเขาเพียงแค่โพสต์เป็นตัวเลขโรมัน
Bart Silverstrim

2
หรือคำเสริม
Sirex

8
หรือเป็นเมกกะของเด็กวัยรุ่นบนอินเทอร์เน็ต - IP ของสื่อลามก
deanWombourne

10

หรือเพื่อความปลอดภัยและความสะดวกสบายที่เพิ่มขึ้นคุณควรพิจารณาการตั้งค่าคีย์ SSH ...

# ssh-keyget -t rsa
(ยอมรับค่าเริ่มต้นทั้งหมด)

และคุณจะได้รับ ...

~ / .ssh / id_rsa
~ / .ssh / id_rsa.pub

หมายเหตุด้านข้าง: คุณสามารถเปลี่ยนชื่อไฟล์คีย์ของคุณหากคุณเพิ่ม ~ / .ssh / config ด้วยสิ่งที่ชอบเนื้อหาดังต่อไปนี้:

# cat ~ / .ssh / config
โฮสต์ *
IdentityFile ~ / .ssh / ddopson_employer_id_rsa

รวบรวมเนื้อหาของกุญแจสาธารณะของคุณ (จะเป็นบรรทัดเดียว):

# cat ~ / .ssh / id_dsa.pub
ssh-rsa AAAAB3NzaC1kc3MAAACBAOOVBqYHAMQ8J ... BbCGGaeBpcqlALYvA == ddopson @ ชื่อโฮสต์

ตอนนี้เข้าสู่กล่องเป้าหมายและวางบรรทัดนั้นลงใน ~ / .ssh / authorized_keys

หมายเหตุด้านข้าง: เส้น pubkey ลงท้ายด้วยสตริงที่มนุษย์สามารถอ่านได้เช่น "ddopson @ hostname" คุณสามารถเปลี่ยนสิ่งนี้ให้เป็นคำอธิบายเพิ่มเติมของคีย์ที่คุณใช้ (เช่นหากคุณมีคีย์จำนวนมาก) สตริงนั้นไม่ได้ใช้เป็นส่วนหนึ่งของการรับรองความถูกต้องและใช้เพื่ออธิบายถึงกุญแจสู่มนุษย์คนอื่นเท่านั้น

แค่นั้นแหละ. ตอนนี้เมื่อคุณ ssh ไปยังโฮสต์คุณจะไม่ได้รับพร้อมท์ให้ใส่รหัสผ่าน

หากคุณกังวลเกี่ยวกับการเก็บคีย์ส่วนตัวของคุณ (id_rsa) คุณสามารถเพิ่มข้อความรหัสผ่านให้กับตัวเองได้ (ดู ssh-keygen) ป้องกันไม่ให้ใครก็ตามที่เข้าถึงไฟล์ของคุณใช้งานได้ จากนั้นคุณสามารถใช้ ssh-agent เพื่อถอดรหัสคีย์และเก็บไว้อย่างปลอดภัยในหน่วยความจำเพื่อให้สามารถใช้สำหรับการเชื่อมต่อ SSH หลาย ๆ


ฉันน่าจะเพิ่มwindows-clientsแท็กในคำถามของฉัน วิธีการนี้จะอธิบายวิธีการทำให้ปุ่ม ssh ใช้งานได้กับ PuTTY
Jonas Heidelberg

คุณสามารถทำสิ่งเดียวกันกับ PuTTY คุณสามารถเพิ่มคีย์ลงใน PuTTY หรือใช้ PuTTYgen เพื่อสร้างคีย์ เรื่องเดียวกันคำสั่งต่าง ๆ (ฉันคิดว่ามันอยู่ในแท็บการรับรองความถูกต้องของ params การเชื่อมต่อ)
Dave Dopson

0

รหัสผ่านถูกเข้ารหัสเมื่อส่ง ใช่เป็นไปได้ว่ารหัสผ่านของคุณถูกบุกรุกเนื่องจากมีการพิมพ์ในบันทึกบนเซิร์ฟเวอร์ปลายทาง อย่างไรก็ตามฉันจะบอกว่าทุกครั้งที่คุณป้อนรหัสผ่านในคอมพิวเตอร์ของคุณอาจถูกบุกรุกเนื่องจากอาจมีซอฟต์แวร์สปายแวร์ในคอมพิวเตอร์ของคุณหรือ keylogger ที่แนบมากับคอมพิวเตอร์ของคุณ

หากคุณเป็นผู้ดูแลระบบเพียงคนเดียวและคุณเชื่อว่าระบบนั้นไม่ได้ถูกบุกรุกคุณสามารถมั่นใจได้ว่ารหัสผ่านของคุณจะไม่ถูกบุกรุกเหมือนที่คุณคิดว่าไม่มีสปายแวร์ในคอมพิวเตอร์ของคุณเพราะคุณยังไม่ได้ เห็นสิ่งที่น่าสงสัย คุณสามารถแก้ไขบันทึกบนเซิร์ฟเวอร์นั้นและลบการอ้างอิงถึงรหัสผ่านของคุณ

เหตุการณ์นี้เป็นหนึ่งในสาเหตุที่ใช้คีย์ SSH แทนรหัสผ่านจะดีกว่า จากนั้นแม้ว่าบางคนจะได้รับรหัสผ่านที่คุณป้อนบนคอมพิวเตอร์ของคุณเพื่อถอดรหัสคีย์ส่วนตัวในคอมพิวเตอร์ของคุณพวกเขายังคงไม่สามารถเข้าถึงเซิร์ฟเวอร์ระยะไกลได้ พวกเขาต้องการไฟล์ไพรเวทคีย์เองเช่นกัน ความปลอดภัยเป็นเรื่องของเลเยอร์ ไม่มีอะไรสมบูรณ์แบบ แต่ถ้าคุณเพิ่มเลเยอร์ให้มากพอมันก็ยากที่ผู้โจมตีจะเดินหน้าต่อไปหรือคุณจะจับมันเพราะมันใช้เวลามากกว่า

ฉันจะไม่ทำตามข้างต้นหากรหัสผ่านของคุณปกป้องข้อมูลที่สำคัญมากหรือทรัพยากรที่สำคัญ ขึ้นอยู่กับความละเอียดอ่อนของรหัสผ่านของคุณ

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