כיצד לבצע איתור באגים בחיבורי SSH

How Debug Ssh Connections



הדרכה זו תעבור על כמה שיטות וטכניקות מהירות שניתן להשתמש בהן לאבחון חיבורי SSH שונים, כולל כאשר אינך יכול להתחבר ל- SSH, שגיאות אימות וכדומה.

הערה: לפני תחילת העבודה, ודא שהמכשיר שאליו ברצונך להתחבר הוא מקוון והשגיאה אינה תוצאה של כך שהמכשיר אינו זמין.







בעיה 1: שירות SSH לא פועל

סיבה נפוצה לשגיאות חיבור SSH היא השירות שאינו פועל במארח המרוחק. זה יכול להיות בגלל כיבוי שירות בטעות או שהשירות לא מתחיל לאחר אתחול המערכת.



כדי לבדוק אם שירות SSH פועל, השתמש במנהל המערכת באמצעות הפקודה:



סודומערכת systemctl sshd

הפקודה לעיל צריכה לדווח אם השירות פועל או לא, כפי שמוצג בצילומי המסך למטה.







פִּתָרוֹן

כדי לפתור בעיות SSH הנגרמות מכך שהשירות לא פועל, השתמש במערכת להפעלת השירות. אם השירות מגיב בשגיאות, בדוק את היומנים ותקן את הבעיות המדווחות ביומן.

השתמש בפקודה שלהלן כדי לבדוק את יומני השירות.

אחיזה 'sshd' /איפה/עֵץ/auth.log

השתמש בפקודה שלהלן כדי להתחיל או לעצור את שירות SSH באמצעות systemd.

סודוsystemctl התחל sshd

בעיה 2: SSH ביציאה לא סטנדרטית

הבעיה השכיחה השנייה בעת איתור באגים בחיבורי SSH היא השימוש ביציאה לא סטנדרטית. אם SSH פועל ביציאה אחרת מלבד יציאת ברירת המחדל 22, לא תתחבר למארח המרוחק אלא אם תציין במפורש את היציאה שעליה פועל SSH.

כדי לצפות ביציאה שעליה פועל SSH, השתמש בכלי כגון netstat להלן:

[מאות@centos8 ~]$סודו netstat -ptln | אחיזה ssh
tcp0 00.0.0.0:560.0.0.0:*להקשיב1131/sshd
tcp60 0:::56:::*להקשיב1131/sshd

הפלט לעיל מראה באיזו יציאה פועל שירות SSH. במקרה זה, זה יציאה 56.

פִּתָרוֹן

כדי לפתור בעיה זו, תוכל להשתמש במידע מ- netstat כדי לציין במפורש את היציאה בפקודת ssh שלך כ:

sshשם משתמש@ip -p 56

בעיה 3: שירות אחר המשתמש באותה יציאה

סיבה נוספת לשגיאות חיבור SSH היא אם שירות או תהליך אחר משתמשים גם באותה יציאה כמו שירות SSH. לדוגמה, אם SSH מצוין במפורש להפעלה ביציאה 80 (רעיון נורא), ייתכן ששירות כמו Apache משתמש באותה יציאה.

כדי לראות אם תהליך אחר משתמש באותה יציאה כמו SSH, בדוק את היומנים באמצעות הפקודה:

סודוjournalctlsshd

פקודה זו אמורה להחזיר שגיאה כמו זו המוצגת להלן, המציין אם תהליך אחר משתמש ביציאה הקשורה ל- SSH.

sshd[110611]: שגיאה: כריכה ליציאה80ב- 0.0.0.0 נכשל: כתובת כברבלהשתמש

טוב לוודא ששגיאת כריכת היציאה נגרמת על ידי שירות אחר, ולא אמצעי אבטחה כגון SELinux.

פִּתָרוֹן

ישנן דרכים שונות בהן תוכל להשתמש כדי לפתור בעיה זו. אלו כוללים:

הראשון הוא לאגד את שירות SSH ליציאה אחרת. אתה יכול לעשות זאת על ידי עריכת קובץ התצורה SSH. לדוגמה, שנה את ערך הנמל ליציאה 3009 כפי שמוצג בפקודות:

סודו ננו /וכו/ssh/sshd_config
נמל3009

שיטה נוספת בה תוכל להשתמש כדי לפתור בעיה זו היא הפסקת השירות באמצעות יציאת SSH. לדוגמה, עצור את שירות apache באמצעות יציאה 80 כ:

סודוsystemctl עצור httpd
סודוsystemctl השבת httpd

גיליון 4: חומת אש

אם ניסית את כל השיטות שלעיל ועדיין אין לך חיבור SSH, תוכל לעבור לסיבה האפשרית הבאה לבעיה: הגבלות חומת אש. בהתאם לשיטת חומת האש שבה אתה משתמש (UFW או Iptables), עליך לוודא שחומת האש מאפשרת חיבורי SSH.

פִּתָרוֹן

כללי חומת האש רחבים ויכולים להשתנות בהתאם לתצורת המערכת. לפיכך, אינני יכול לכסות כל היבט. עם זאת, להלן פתרון פשוט להבטחת שירות SSH מותר בחומת האש של UFW.

סודוufw אפשר<ssh_port> /tcp

תוכל גם לאפס את כל חוקי UFW ולהתחיל מחדש. זה יאפשר לך לפתור בעיות בחיבורי חומת האש מאפס.

סודואיפוס ufw

בעיה 5: כניסת סיסמאות מושבתת

לפעמים אתה יכול להגדיר את SSH שלא לקבל כניסות לסיסמה ולהשתמש רק באימות מפתח ציבורי. זה יכול לגרום לבעיה אם המפתח הציבורי אינו זמין בשרת או חסר זוג המפתחות הפרטי שלך.

כדי לבדוק אם כניסת סיסמאות מותרת, העבר את תצורת ssh כ:

[מאות@centos8]$סודו אחיזהאימות סיסמה/וכו/ssh/sshd_config
#PasswordAuthentication כן
אימות סיסמהכן
# אימות סיסמה. בהתאם לתצורת ה- PAM שלך,
# אימות PAM, ולאחר מכן הפעל זאת אך הגדר PasswordAuthentication

הפלט לעיל מראה כי כניסת סיסמאות מותרת.

פִּתָרוֹן

כדי לפתור את הבעיה לעיל, תוכל להשתמש בשתי שיטות:

ראשית, אם יש לך את הערך ל- no, שנה את ערך PasswordAuthentication ל- yes והפעל מחדש את שירות ssh.

השיטה הנוספת היא ליצור זוג ערך-מפתח ssh ולהשתמש בו כדי להיכנס לשרת. כדי ללמוד כיצד ליצור זוג ערכי מפתח ssh, השתמש במדריך הבא.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

סיכום

במדריך מהיר זה דנו בסיבות העיקריות לשגיאות חיבור SSH וכיצד ניתן לפתור אותן. למרות שמדריך זה מכסה בעיות נפוצות, ייתכן שתמצא שגיאות ספציפיות למערכת שלך בהתבסס על התצורה וההרשאות.