אנדרואיד

שימוש בקובץ config ssh

SSH Certificates: a way to scale SSH access

SSH Certificates: a way to scale SSH access

תוכן עניינים:

Anonim

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

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

תנאים מוקדמים

אנו מניחים שאתה משתמש ב- Linux או במערכת macOS עם התקנת לקוח OpenSSH.

מיקום קובץ תצורת SSH

קובץ התצורה בצד הלקוח של OpenSSH נקרא config , והוא מאוחסן בספריית .ssh תחת ספריית הבית של המשתמש.

ספריית ~/.ssh נוצרת באופן אוטומטי כאשר המשתמש מפעיל את הפקודה ssh בפעם הראשונה. אם הספרייה אינה קיימת במערכת שלך, צור אותה באמצעות הפקודה שלהלן:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

כברירת מחדל יתכן וקובץ התצורה של SSH לא קיים ולכן ייתכן שתצטרך ליצור אותו באמצעות פקודת המגע:

touch ~/.ssh/config

על הקובץ להיות קריא וניתן לכתיבה רק על ידי המשתמש ולא להיות נגיש על ידי אחרים:

chmod 600 ~/.ssh/config

מבנה קבצים ותבניות של קבצי SSH

קובץ התצורה של SSH לוקח את המבנה הבא:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

התוכן של קובץ ה- config של לקוח ה- SSH מסודר לשכונות (קטעים). כל נתח מתחיל בהנחיית ה- Host ומכיל אפשרויות SSH ספציפיות המשמשות בעת יצירת חיבור לשרת SSH המרוחק.

הכניסה אינה חובה אך מומלצת מכיוון שהיא מקלה על הקובץ בקובץ.

הנחיית Host יכולה להכיל תבנית אחת או רשימת תבניות המופרדת בין שטח. כל תבנית יכולה להכיל אפס או יותר אופי שאינו מרחב-לבן או אחד מפרטי הדפוס הבאים:

  • * - מתאים לאפס תווים או יותר. לדוגמה, Host * מתאים לכל המארחים ואילו 192.168.0.* מתאים למארחים ברשת המשנה 192.168.0.0/24 . ? - מתאים בדיוק לדמות אחת. התבנית, Host 10.10.0.? תואם את כל המארחים בתאריך 10.10.0. טווח. ! - כאשר משתמשים בו בתחילת התבנית, זה שולל את ההתאמה. לדוגמה, Host 10.10.0.* !10.10.0.5 תואם לכל מארח 10.10.0.0/24 המשנה 10.10.0.5 למעט 10.10.0.5 .

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

תוכל למצוא רשימה מלאה של אפשרויות ssh זמינות על ידי הקלדת man ssh_config בטרמינל שלך או על ידי ביקור בדף האיש של ssh_config.

קובץ ה- config של ה- SSH נקרא גם על ידי תוכנות אחרות כגון scp , sftp ו- rsync .

דוגמה לקובץ קביעת תצורה של SSH

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

בדרך כלל, כשאתה מתחבר לשרת מרוחק באמצעות SSH, היית מציין את שם המשתמש המרוחק, שם המארח והיציאה. לדוגמה, כדי להיכנס כמשתמש בשם john למארח בשם dev.example.com ביציאה 2322 משורת הפקודה, הקלד:

ssh [email protected] -p 2322

כדי להתחבר לשרת באמצעות אותן אפשרויות כמוצעות בפקודה למעלה פשוט על ידי הקלדת ssh dev , ssh dev את השורות הבאות לקובץ "~/.ssh/config :

~ /.ssh / config

Host dev HostName dev.example.com User john Port 2322

כעת כשאתם מקלידים ssh dev , לקוח ssh יקרא את קובץ התצורה וישתמש בפרטי החיבור שצוינו עבור מארח ה- dev :

ssh dev

דוגמה לקובץ תצורת SSH משותף

דוגמה זו נותנת מידע מפורט יותר על דפוסי המארח ותעדפות האופציה.

בוא ניקח את קובץ הדוגמה הבא:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • כשאתה מקליד ssh targaryen , לקוח ssh קורא את הקובץ ssh targaryen את האפשרויות מההתאמה הראשונה, שהיא Host targaryen . ואז הוא בודק את השטחים הבאים בזה אחר זה עבור דפוס תואם. התואם הבא הוא Host * !martell (כלומר כל המארחים למעט martell ) והיא תחיל את אפשרות החיבור martell הזו. ההגדרה האחרונה Host * תואמת גם היא, אך לקוח ה- ssh ייקח רק את אפשרות Compression מכיוון שאפשרות User כבר מוגדרת Host targaryen .

    רשימת האפשרויות המלאה המשמשת בעת הקלדת ssh targaryen היא כדלקמן:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    בעת הפעלת ssh tyrell , דפוסי המארח התואמים הם: Host tyrell Host *ell , Host *ell , Host * !martell Host * . האפשרויות המשמשות במקרה זה הן:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    עבור כל שאר החיבורים, לקוח ה- ssh ישתמש באפשרויות שצוינו Host * !martell ו- Host * .

עקף את אפשרות קובץ התצורה של SSH

לקוח ssh קורא את התצורה שלו בסדר העדיפות הבא:

  1. אפשרויות שצוינו משורת הפקודה. אפשרויות שהוגדרו ב ~/.ssh/config אפשרויות שהוגדרו ב /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

ואתה רוצה להשתמש בכל האפשרויות האחרות אלא להתחבר root משתמש במקום john פשוט ציין את המשתמש בשורת הפקודה:

ssh -o "User=root" dev

האפשרות -F ( configfile ) מאפשרת לך לציין קובץ תצורה חלופי למשתמש.

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

ssh -F /dev/null [email protected]

סיכום

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

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

מסוף ssh