שם
sshd - OpenSSH SSH daemon
תקציר
sshd -deiqtD46 -.ב סיביות -ו config_file -ז זמן כניסה -ח host_key_file -k זמן -o אפשרות -עמ ' נמל -u len
תיאור
sshd (SSH Daemon) היא תוכנית daemon עבור ssh (1). התוכניות הללו יחליפו יחדיו rlogin ו rsh, ולספק תקשורת מאובטחת מאובטח בין שני המארחים לא מהימן על פני רשת לא מאובטח. התוכניות נועדו להיות קל להתקנה ושימוש ככל האפשר.
sshd הוא הדמון המאזין לחיבורים מלקוחות. זה התחיל בדרך כלל ב אתחול מ / etc / rc זה פורקס daemon חדש עבור כל חיבור נכנס. הדמונים המצוירים מטפלים בחילופי מפתח, הצפנה, אימות, ביצוע פקודות וחילופי נתונים. יישום זה שלsshd תומך בשני פרוטוקול SSH גירסה 1 ו 2 בו זמנית.
פרוטוקול SSH גירסה 1
לכל מארח יש מפתח RSA ספציפי למארח (בדרך כלל 1024 סיביות) המשמש לזיהוי המארח. בנוסף, כאשר הדמון מתחיל, הוא יוצר מפתח RSA שרת (בדרך כלל 768 סיביות). מפתח זה מתחדש מחדש בכל שעה אם הוא נמצא בשימוש, והוא אינו מאוחסן בדיסק.
כאשר לקוח מתחבר daemon מגיב עם המארחת הציבורית ואת המפתחות שרת. הלקוח משווה את המפתח המארח RSA נגד מסד הנתונים שלו כדי לוודא שהוא לא השתנה. לאחר מכן הלקוח מייצר מספר אקראי של 256-bit. זה מצפין את מספר אקראי זה הן באמצעות המפתח המארח והן את מפתח השרת ושולח את המספר המוצפן לשרת. שני הצדדים מכן להשתמש זה מספר אקראי כמפתח הפעלה אשר משמש להצפין את כל התקשורת נוספת בפגישה. את שאר הפגישה מוצפן באמצעות צופן קונבנציונאלי, כרגע Blowfish או 3DES, עם 3DES בשימוש כברירת מחדל. הלקוח בוחר את אלגוריתם ההצפנה לשימוש מאלה המוצעים על ידי השרת.
לאחר מכן, השרת והלקוח נכנסים לתיבת אימות. הלקוח מנסה לאמת את עצמו באמצעות אימות .rhosts, אימות rhosts בשילוב עם אימות מארח RSA, אימות RSA-Response בתגובה או אימות מבוסס סיסמאות.
אימות Rhusts מושבת בדרך כלל מכיוון שהוא חסר ביטחון באופן בסיסי, אך ניתן להפעיל אותו בקובץ תצורת השרת, אם תרצה בכך. אבטחת המערכת לא תשתפר אלא אם כןrshdrlogind ו rexecd אינם זמינים (ובכך משבית לחלוטין rlogin ו rsh לתוך המכונה).
פרוטוקול SSH גירסה 2
גירסה 2 פועלת באופן דומה: לכל מארח יש מפתח ספציפי למארח (RSA או DSA) המשמש לזיהוי המארח. עם זאת, כאשר הדמון מתחיל, זה לא יוצר מפתח שרת. אבטחה קדימה ניתנת באמצעות הסכם מפתח Diffie-Hellman. הסכם מפתח זה יוצר מפתח הפעלה משותף.
שאר הפגישה מוצפן באמצעות צופן סימטרי, כרגע AES 128 ביט, Blowfish, 3DES, CAST128, Arcfour, AES AES 192, או 256 ביט AES. הלקוח בוחר את אלגוריתם ההצפנה לשימוש מאלה המוצעים על ידי השרת. בנוסף, שלמות הפגישה מסופק באמצעות קוד אימות קוד הצפנה (hmac-sha1 או hmac-md5).
Protocol גירסה 2 מספק משתמש מבוסס מפתח ציבורי (PubkeyAuthentication) או המארח לקוח (HostbasedAuthentication) שיטת אימות, אימות סיסמה קונבנציונאלי, ושיטות אתגר בתגובה מבוסס.
ביצוע פקודות והעברת נתונים
אם הלקוח מאמת את עצמו בהצלחה, תיבת דו-שיח להכנת הפגישה מוזנת. בשלב זה הלקוח עשוי לבקש דברים כגון הקצאת חיבורי X11, העברת העברת TCP / IP או העברת חיבור סוכן האימות דרך הערוץ המאובטח.
לבסוף, הלקוח מבקש פגז או ביצוע פקודה. הצדדים מכן להיכנס למצב הפעלה. במצב זה, כל צד יכול לשלוח נתונים בכל עת, ונתונים אלה מועברים אל / מהפגז או מהפקודה בצד השרת, ומסוף המשתמש בצד הלקוח.
כאשר תוכנית המשתמש מסתיימת וכל X11 העברת הועברו חיבורים אחרים נסגרו, השרת שולח מצב היציאה הפקודה ללקוח משני הצדדים לצאת.
sshd ניתן להגדיר באמצעות אפשרויות שורת פקודה או קובץ תצורה. אפשרויות שורת הפקודה לעקוף ערכים שצוינו בקובץ התצורה.
sshd קורא מחדש את קובץ התצורה שלו כאשר הוא מקבל אות hangup,SIGHUP על ידי ביצוע עצמו עם שם זה התחיל כמו, למשל, / usr / sbin / sshd
האופציות הן כדלקמן:
-b סיביות
מציין את מספר הביטים במפתח שרת הפרוטוקול החריג 1 (ברירת מחדל 768).
ד
מצב איתור באגים. השרת שולח פלט debugose debug ליומן המערכת ואינו שם את עצמו ברקע. השרת גם לא יעבוד ויעבד רק חיבור אחד. אפשרות זו מיועדת רק עבור איתור באגים עבור השרת. אפשרויות מרובות -D להגדיל את רמת איתור הבאגים. המקסימום הוא 3.
-ה
כאשר אפשרות זו מוגדרת,sshd ישלח את הפלט לשגיאה הרגילה במקום ביומן המערכת.
-f קובץ תצורה
מציין את שם קובץ התצורה. ברירת המחדל היא / etc / ssh / sshd_configsshdמסרב להתחיל אם אין קובץ תצורה.
-g זמן כניסה
נותן את זמן החסד עבור לקוחות כדי לאמת את עצמם (ברירת המחדל 120 שניות). אם הלקוח נכשל באימות המשתמש בתוך שניות רבות, השרת מתנתק ויוצא.ערך אפס מציין שאין גבול.
-h host_key_file
מציין קובץ שממנו נקרא מפתח מארח. יש לתת אפשרות זו אםsshd לא לרוץ כמו שורש (כמו קבצי מארח המארח נורמלי הם בדרך כלל לא קריא על ידי מישהו, אבל השורש). ברירת המחדל היא / etc / ssh / ssh_host_key עבור פרוטוקול גירסה 1, ו / etc / ssh / ssh_host_rsa_key ו / etc / ssh / ssh_host_dsa_key עבור פרוטוקול גירסה 2. ניתן לקבל מספר רב של קבצי מפתח מארח עבור גרסאות פרוטוקול שונים מפתח מארח אלגוריתמים.
-אני
מציין זאתsshd הוא פועל מתוך inetd.sshd הוא בדרך כלל לא לרוץ מ inetd כי זה צריך ליצור את מפתח השרת לפני שהוא יכול להגיב ללקוח, וזה עלול להימשך עשרות שניות. הלקוחות יצטרכו לחכות זמן רב מדי אם המפתח יופעל מחדש בכל פעם. עם זאת, עם גודל מפתח קטן (למשל, 512) באמצעותsshd מ inetd עשוי להיות ריאלי.
-k זמן
מציין את תדירות הופעת מפתח השרת גירסה 1 של פרוטוקול ארעי (ברירת מחדל 3600 שניות או שעה אחת). המוטיבציה להתחדש המפתח היא לעתים קרובות כי המפתח לא מאוחסן בשום מקום, ואחרי כשעה, זה הופך להיות בלתי אפשרי לשחזר את המפתח לפענוח התקשורת מיירט גם אם המכונה סדוקה לתוך או נתפס פיזית. ערך אפס מציין כי המפתח לעולם לא יחודש.
-ו אפשרות
ניתן להשתמש בו כדי לתת אפשרויות בפורמט המשמש בקובץ התצורה. אפשרות זו שימושית לציון אפשרויות שעבורן אין דגל שורת פקודה נפרד.
-p נמל
מציין את היציאה שבה השרת מאזין לחיבורים (ברירת מחדל 22). אפשרויות יציאה מרובות מותרות. יציאות המתוארות בקובץ התצורה מתעלמות כאשר מצוין יציאת שורת פקודה.
-q
מצב שקט. שום דבר לא נשלח ליומן המערכת. בדרך כלל ההתחלה, האימות והסיום של כל חיבור מחוברים.
-t
מצב מבחן. רק לבדוק את תוקפו של קובץ התצורה ואת השפיות של המפתחות. זה שימושי עבור עדכוןsshd באופן מהימן ככל שאפשרויות הקונפיגורציה עשויות להשתנות.
-u len
אפשרות זו משמשת לציון גודל השדה ב-utmp מבנה המחזיק את שם המארח המרוחק. אם שם המארח שהוחלט ארוך יותר len במקום זאת, ייעשה שימוש בערך העשרוני המנוקד. זה מאפשר המארחים עם שמות המארח ארוך מאוד כי הצפת שדה זה עדיין להיות מזוהה באופן ייחודי. ציון -u0 מציין שרק כתובות עשרוניות נקודדות יש להכניס לקובץ utmp. -u0 הוא משמש גם כדי למנועsshd החל בבקשות DNS, אלא אם נדרש מנגנון האימות או התצורה. מנגנוני אימות שעשויים לחייב DNS כולליםרוסטס אימותRhostsRSAA אימות Hostbased אימות ושימוש במרשימת דוגמאות =אפשרות בקובץ מפתח. אפשרויות תצורה המחייבות DNS כוללות שימוש ב- USER @ HOSTpatternAllowUsers אוDenyUsers
-D
כאשר אפשרות זו מוגדרתsshd לא תנתק ולא תהפוך לדמון. זה מאפשר ניטור קל שלsshd
-4
כוחותsshd להשתמש בכתובות IPv4 בלבד.
-6
כוחותsshd להשתמש בכתובות IPv6 בלבד.
קובץ תצורה
sshd קורא נתוני תצורה מ / etc / ssh / sshd_config (או את הקובץ שצוין עם -ו על שורת הפקודה). פורמט הקובץ ואפשרויות התצורה מתוארים ב- sshd_config5.
תהליך התחברות
כאשר משתמש מצליח להיכנס,sshd עושה את הפעולות הבאות:
- אם הכניסה היא על tty, ולא צוין פקודה, מדפיסה את זמן ההתחברות האחרון ו / etc / motd (אלא אם כן נמנע בקובץ ההגדרות או על ידי $ HOME / .hushlogin עיין בסעיף Sx FILES).
- אם הכניסה היא על tty, רשומות זמן התחברות.
- בדיקות / etc / nologin אם הוא קיים, מדפיס תוכן ויוצא (אלא אם כן השורש).
- שינויים בהפעלה עם הרשאות משתמש רגילות.
- מגדיר סביבה בסיסית.
- קורא $ HOME / .shsh / environment אם הוא קיים והמשתמשים רשאים לשנות את הסביבה שלהם. ראהסביבה אפשרות ב - sshd_config5.
- שינויים בספריית הבית של המשתמש.
- אם $ HOME / .ssh / rc קיים, מפעיל אותו; אחרת אם / etc / ssh / sshrc קיים, מפעיל אותו; אחרת פועל xauth. קבצי "rc" "מקבלים את פרוטוקול האימות X11 ואת עוגיית הקלט הסטנדרטי.
- מפעיל פגז או פקודה של המשתמש.
פורמט קובץ Authorized_Keys
$ HOME / .shsh / author_keys הוא קובץ ברירת המחדל המפרט את המפתחות הציבוריים המותרים לאימות RSA בגירסה 1 של פרוטוקול ואימות מפתח ציבורי (PubkeyAuthentication) בגירסת פרוטוקול 2.מורשה עשוי לשמש כדי לציין קובץ חלופי.
כל שורה של הקובץ מכילה מפתח אחד (שורות ריקות וקווים המתחילים ב- # # מתעלמות כתגובות). כל מפתח ציבורי של RSA מורכב מהשדות הבאים, מופרדים על ידי רווחים: אפשרויות, סיביות, מעריך, מודולוס, תגובה. כל גרסה 2 פרוטוקול מפתח ציבורי מורכב: אפשרויות, keytype, מפתח מקודד base64, תגובה. שדה האפשרויות הוא אופציונלי; נוכחותה נקבעת על ידי אם הקו מתחיל במספר או לא (שדה האפשרויות לא מתחיל עם מספר). ביטים, מעריך, מודולוס שדות תגובה לתת את המפתח RSA עבור פרוטוקול גרסה 1; שדה ההערה אינו משמש לשום דבר (אך עשוי להיות נוח למשתמש לזהות את המפתח). עבור פרוטוקול גירסה 2 keytype הוא 'ssh-dss' או '' ssh-rsa ''
שים לב כי השורות בקובץ זה הן בדרך כלל כמה מאות בייטים (בגלל הגודל של קידוד המפתח הציבורי). אתה לא רוצה להקליד אותם; במקום זאת, העתק את id.dub id_dsa.pub או את הקובץ id_rsa.pub וערוך אותו.
sshd אוכפת גודל מודול מפתח RSA מינימלי עבור פרוטוקול 1 ופרוטוקול 2 של 768 סיביות.
האפשרויות (אם קיימות) כוללות מפרטים אופציונליים המופרדים באמצעות פסיקים. אין רווחים מותר, אלא בתוך ציטוטים כפולים. מפרטי האפשרויות הבאים נתמכים (שים לב שמילות המפתח של אפשרויות אינן תלויי רישיות):
מרשימת דוגמאות =
מציינת כי בנוסף לאימות מפתח ציבורי, השם הקנוני של המארח המרוחק חייב להיות נוכח ברשימת הדפוסים המופרדים בפסיקים ('*' ו- '?' משמשים כתווים כלליים). הרשימה עשויה להכיל גם דפוסים שנשללו על ידי קידומתם '!'. ; אם שם המארח הקנוני תואם לדפוס שלילי, המפתח לא יתקבל. מטרת אפשרות זו היא להגדיל את האבטחה: אימות מפתח ציבורי כשלעצמו אינו בוטח בשרתי הרשת או בשמות או בכל דבר אחר (אך המפתח); עם זאת, אם מישהו איכשהו גונב את המפתח, המפתח מאפשר פולש להיכנס מכל מקום בעולם. אפשרות נוספת זו עושה שימוש במפתח גנוב קשה יותר (שרתי שם ו / או נתבים יצטרך להיות בסכנה בנוסף רק את המפתח).
הפקודה הפקודה
מציין שהפקודה מבוצעת בכל פעם שמפתח זה משמש לאימות. המערכת תתעלם מהפקודה שסופקה על ידי המשתמש (אם בכלל). הפקודה מופעלת על pty אם הלקוח מבקש pty; אחרת הוא פועל ללא tty. אם נדרש ערוץ נקי של 8 סיביות, אין לבקש Pty או לצייןללא pty ציטוט עשוי להיכלל בפקודה על ידי ציטוט זה עם קו נטוי הפוך. אפשרות זו עשויה להיות שימושית להגבלת מפתחות ציבוריים מסוימים לביצוע פעולה ספציפית בלבד. דוגמה עשויה להיות מפתח המאפשר גיבויים מרחוק אבל שום דבר אחר. שים לב שהלקוח יכול לציין העברת TCP / IP ו / או X11, אלא אם כן הוא אסור במפורש. שים לב כי אפשרות זו חלה על ביצוע פגז, פקודה או תת-מערכת.
value = NAME = value
מציין שהמחרוזת תתווסף לסביבה בעת הכניסה באמצעות מקש זה. משתני סביבה קובעים בדרך זו לעקוף ערכי סביבה אחרים המשמשים כברירת מחדל. אופציות מרובות מסוג זה מותרות. עיבוד הסביבה מושבת כברירת מחדל והוא נשלט באמצעותסביבה אפשרות. אפשרות זו מושבתת אוטומטית אםUseLogin מאופשר.
ללא יציאת-העברה
מעכבת העברת TCP / IP כאשר מפתח זה משמש לאימות. כל בקשות הפניה קדימה של הלקוח יחזירו שגיאה. זה עשוי לשמש, למשל, בקשר עםפקודה אפשרות.
no-X11-forwarding
פורבס X11 העברת כאשר מפתח זה משמש לאימות. כל X11 בקשות קדימה על ידי הלקוח יחזיר שגיאה.
ללא סוכן העברת
העברת סוכן אימות לאימות כאשר מפתח זה משמש לאימות.
ללא pty
מונע הקצאת tty (בקשה להקצאת pty תיכשל).
permopen = מארח: יציאה
הגבל מקומית`` ssh-l ' Port porting כך שהוא יכול להתחבר רק למארח ולפורט שצוינו. ניתן לציין כתובות IPv6 בתחביר חלופי: מארח / יציאה מרובות היתר ניתן להחיל את האופציות המופרדות באמצעות פסיקים. לא מתבצעת התאמה של תבניות בשמות המארחים שצוינו, הן חייבות להיות תחומים מילוליים או כתובות.
דוגמאות
1024 331211 312314325 [email protected]
מ = "*. niksula.hut.fi,! pc.niksula.hut.fi" 1024 35 23 … 2334 ylo @ niksula
הפקודה = "dump / home", no-pty, no-port-forwarding 1024 33 23 … 2323 backup.hut.fi
allowopen = "10.2.1.55:80", licenseopen = "10.2.1.56:25" 1024 33 23 … 2323
תבנית קובץ Ssh_Known_Hosts
את / etc / ssh / ssh_known_hosts ו $ HOME / .ssh / known_hosts קבצים מכילים מארחים ציבוריים המארח לכל המארחים ידועים. הקובץ העולמי צריך להיות מוכן על ידי מנהל המערכת (אופציונלי), והקובץ לכל משתמש נשמר באופן אוטומטי: בכל פעם שהמשתמש מתחבר ממארח לא ידוע, המפתח שלו מתווסף לקובץ למשתמש.
כל שורה בקבצים אלה מכילה את השדות הבאים: hostnames, bits, exponent, modulus, comment. השדות מופרדים על ידי רווחים.
שמות מארחים הם רשימת דפוסי מופרדים בפסיקים ('*' ו- '?' משמשים כתווים כלליים); כל תבנית, בתורו, מותאמת כנגד שם המארח הקנוני (בעת אימות לקוח) או נגד השם שסופק על ידי המשתמש (בעת אימות שרת). דפוס יכול להיות גם קודם לכן '!' כדי לציין שלילה: אם שם המארח מתאים לדפוס שלילי, הוא לא יתקבל (לפי שורה זו), גם אם הוא תואם דפוס אחר על הקו.
סיביות, מעריך, מודולוס נלקחים ישירות מן המפתח המארח RSA; ניתן לקבל אותם, למשל, מ /etc/ssh/ssh_host_key.pub שדה ההערה האופציונלי ממשיך לסוף השורה ולא נעשה בו שימוש.
שורות שמתחילות ב- '#' וקווים ריקים מתעלמות מהערות.
בעת ביצוע אימות המארח, אימות מתקבל אם כל קו התאמה יש את המפתח הנכון. זה מותר ולכן (אבל לא מומלץ) יש כמה שורות או מקשים מארח שונים עבור אותם שמות. זה יהיה בהכרח להתרחש כאשר צורות קצרות של שמות המארח מתחומים שונים לשים את הקובץ. ייתכן שהתיקים מכילים מידע סותר; אימות מתקבל אם ניתן למצוא מידע תקף מקובץ זה.
שים לב כי השורות בקבצים אלה הם בדרך כלל מאות תווים, ואתה בהחלט לא רוצה להקליד את המפתחות המארח ביד. במקום זאת, ליצור אותם על ידי סקריפט או על ידי לקיחת / etc / ssh / ssh_host_key.pub והוספת שמות המארח בחזית.
דוגמאות
סגור …, 130.233.208.41 1024 37 159 … 93 סגורenet.hut.fi cvs.openbsd.org, 199.185.137.3 ssh-rsa AAAA1234 ….. =
ראה גם
(1), sftp (1), ssh (1), ssh-add1, ssh-agent1, ssh-keygen1, login.conf5, moduli (5), sshd_config5, sftp-server8
ט. ילונן ט. קיווינן מ. סארינן ט. רינה ס. להטינן "ארכיטקטורת פרוטוקול SSH" draft-ietf-secsh-architecture-12txt ינואר 2002 עבודה בתהליך
מ 'פרידל נ' פרובוס וו 'סימפסון "Diffie-Hellman קבוצת Exchange עבור SSH שכבת פרוטוקול תחבורה" draat-secsh-dh-group-exchange-02.txt ינואר 2002 עבודה בתהליך
חשוב: להשתמש ב איש פקודה ( % איש ) כדי לראות כיצד נעשה שימוש בפקודה במחשב הספציפי שלך.




