קבוע: sudo: לא קיים שום עדכון ולא צוינה שום תוכנית askpass

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

מכיוון שזו בעיה הקשורה ל- ssh עצמה, סביר להניח שתוכל לשחזר את הבעיה ב- Linux, FreeBSD, macOS ושירותי יוניקס של Cygwin ב- Microsoft Windows. למרבה המזל, התיקון אמור להיות זהה כמעט בכל הפלטפורמות הללו.

שיטה 1: מציאת טרמינל ל- ssh

אמנם סביר להניח שכבר אתה עובד ממסוף, כנראה ש- ssh לא מבין זאת. זה עדיין עשוי לנסות לחפש אמולטור מסוף TTY למרות העובדה שאתה נמצא בתוך חלון שורת פקודה. נסה לשחזר את השגיאה כדי לבדוק זאת. הגדרנו מכונה וירטואלית שתשמש דוגמה והפעלנו את ssh [email protected] 'sudo /var/mail/startup.sh' כמבחן. באופן טבעי, תרצה לשנות את הפקודה ואת שורת ssh למשהו התואם את מה שאתה מנסה לעשות.

אתה רוצה להבטיח שאתה מתחבר לשרת שחשבת שאתה. בלי קשר, בדוק אם אתה עדיין מקבל את ה- sudo: אין tty בהווה ושום הודעת שגיאה שצוינה בתוכנית askpass. סביר להניח שאם אתה עדיין מקבל את זה אז תראה את זה שלוש פעמים ואולי אפילו תתבקש להזין את הסיסמה שלך כמו שהיית מפעיל sudo באופן מקומי בדביאן או באובונטו.

נסה להוסיף -t אחרי ssh כדי לתקן את שגיאת התחביר שלך. תשע פעמים מתוך עשר זה יאלץ את ssh להקצות TTY וירטואלי לעצמו ולהעמיד פנים שהוא במקרה פועל בתוך טרמינל אמיתי. אתה לא צריך לשנות שום דבר אחר בפקודה שלך. כל שעליך לעשות הוא להוסיף את האפשרות -t אחרי האותיות ssh ואז לשמור על המארח ועבר את הפקודה זהה. אתה גם רוצה לזכור את זה אם אי פעם תצטרך להפעיל ssh בחלק האחרון של הפקודה שלך.

למשל, אם אתה מקבל שגיאה מאותה סוג בעת הפעלת פקודה שעוצבה כ- ssh -t [email protected] 'ssh [email protected]', יהיה עליך לשמור על האפשרות -t לאחר ה- ssh הראשון ל- למנוע את זה. שים לב שאם לאחר מכן שינית את הפקודה השנייה לייצור או לצרוך נתונים, אז לא תרצה להשתמש ב- t בכלל. לדוגמה, אם התחלת להריץ חתול במקום סקריפט, אתה יכול לזרוק את ה- t מכיוון שלא תצטרך להקצות מסוף לשם כך.

שיטה 2: תיקון קובץ ה- visudo

ייתכן גם שיש לך בעיית תצורה שמייצרת שגיאה זו. שנה את קובץ ה- visudo על ידי הנפקת הפקודה sudo visudo , וזכור כי לעולם לא תרצה לערוך את הקובץ בדרך אחרת. אתה אמור למצוא שורה הכוללת את ALL = NOPASSWD בה ואחריה את סוגי הפקודות שאינך צריך להזין את סיסמת המנהל כדי להפעיל אותה.

כל פקודה בודדת צריכה להסתיים בפסיק פרט לפקודה האחרונה בשורה. לכן אם היה לך משהו שקרא כמו / sbin / poweroff / sbin / start / sbin / stop זה יתייחס לכל אלה כפקודה אחת ויזרוק את השגיאה אליך. כמו כן, אם חסר לך פקודה שאתה מנסה להריץ באמצעות ssh, תקבל גם את השגיאה הזו. בצע את ההתאמות הנדרשות ושמור את הקובץ לפני שתבדוק אם השגיאה עדיין ניתנת לשחזור.

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

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