הקדמה
SSH הוא פרוטוקול מאובטח המשמש כדרך העיקרית להתחברות לשרתי Linux מרחוק. הוא מספק ממשק מבוסס טקסט על ידי הפעלת מסלול רחוק. לאחר התחברות, כל הפקודות שאת/ה מקליד/ה בטרמינל המקומי שלך נשלחות לשרת המרוחק ומבוצעות שם.
במדריך זה בסגנון גיליון תרגילים, נכסה דרכים נפוצות להתחבר עם SSH כדי להשיג את המטרות שלך. ניתן להשתמש בו כמקור זריז כאשר תצטרך לדעת איך להתחבר או להגדיר את השרת שלך בדרכים שונות.
הפוך את היישומים הראשיים שלך מ-GitHub באמצעות פלטפורמת האפליקציות של DigitalOcean. הרגע על DigitalOcean להתמקד בגדילת היישום שלך.
איך להשתמש במדריך זה
- קרא/י את חלק סקירת SSH תחילה אם אינך מוכר/ה עם SSH בכלל או פשוט מתחיל/ה.
- השתמש/י בחלקים הבאים בהתאם למה שאת/ה מנסה/ת להשיג. רוב הקטעים אינם מתייחסים לקטעים אחרים, כך שתוכל/י להשתמש בדוגמאות הבאות באופן עצמאי.
- שימוש בתפריט התוכן בצד שמאל של הדף (ברוחב דף רחב) או בפונקציה המצא של הדפדפן שלך כדי לאתר את הקטעים שאתה צריך.
- העתק והדבק את דוגמאות הפקודות הנתונות, והחלף את הערכים המסומנים בצבע
מודגש
עם הערכים שלך.
סקירת SSH
הדרך הנפוצה ביותר להתחבר לשרת Linux מרוחק היא דרך SSH. SSH עומדת למפתח מאובטח ומספקת דרך בטוחה לבצע פקודות, לבצע שינויים ולהגדיר שירותים מרחוק. כאשר אתה מתחבר דרך SSH, אתה נכנס באמצעות חשבון שקיים על השרת המרוחק.
איך SSH פועלת
כאשר אתה מתחבר דרך SSH, אתה מתקבל לסשן של של תוכנית מעטפת, שהיא ממשק מבוסס טקסט שבו אתה יכול להתקשר עם השרת שלך. למשך זמן הסשן שלך ב-SSH, כל הפקודות שאתה מקליד בטרמינל המקומי שלך נשלחות דרך טונל SSH מוצפן ומבוצעות על השרת שלך.
החיבור SSH מיושם באמצעות מודל לקוח-שרת. זה אומר כי כדי להקים חיבור SSH, המכונה המרוחקת חייבת להריץ תוכנה שנקראת דמון SSH. תוכנה זו תקשיב לחיבורים על פורט רשת ספציפי, תאמת בקשות חיבור, ותיצור את הסביבה המתאימה אם המשתמש מספק את פרטי הזיהוי הנכונים.
במחשב של המשתמש חייב להיות לו לקוח SSH. זו היא תוכנה שיודעת לתקשר באמצעות פרוטוקול SSH ויכולה לקבל מידע על המארח המרוחק להתחבר אליו, שם המשתמש להשתמש בו, והפרטים שצריך להעביר לאימות. הלקוח יכול גם לציין פרטים מסוימים על סוג החיבור שהוא רוצה להקים.
איך SSH מאמת משתמשים
לקוחות מאמתים בדרך כלל באמצעות סיסמאות (פחות מאובטח ולא מומלץ) או מפתחות SSH, שהם מאוד מאובטחים.
התחברויות באמצעות סיסמאות מוצפנות ופשוטות להבנה עבור משתמשים חדשים. אך בוטים אוטומטיים ומשתמשים זדוניים ינסו לאמת לחשבונות שמאפשרים התחברויות על בסיס סיסמה, מה שיכול להוביל להפרעות באבטחה. מכאן אנו ממליצים להגדיר תמיד אימות על בסיס מפתחות SSH לרוב ההגדרות.
מפתחות SSH הם זוג מפתחות קריפטוגרפיים שמשמשים לאימות. כל זוג מכיל מפתח ציבורי ומפתח פרטי. המפתח הציבורי יכול להיות משותף בחופשיות ללא דאגה, בעוד שהמפתח הפרטי חייב להישמר בידידות ולעולם לא לחשוף לאף אחד.
כדי לאמת באמצעות מפתחות SSH, משתמש חייב לקבל זוג מפתחות SSH במחשב המקומי שלו. על השרת המרוחק, יש להעתיק את המפתח הציבורי לקובץ בתוך תיקיית הבית של המשתמש בנתיב ~/.ssh/authorized_keys
. קובץ זה מכיל רשימה של מפתחות ציבוריים, אחד לכל שורה, שמורשים להתחבר לחשבון זה.
כאשר לקוח מתחבר לשרת, ברצונו להשתמש באימות מפתחות SSH, הוא יודיע לשרת על כוונתו ויאמר לשרת איזה מפתח ציבורי להשתמש. השרת יבדוק את קובץ הauthorized_keys שלו עבור המפתח הציבורי, ייצור מחרוזת אקראית ויצפין אותה באמצעות המפתח הציבורי. ההודעה המצופנת הזו יכולה להיות מפוענחת רק בעזרת המפתח הפרטי המתאים. השרת ישלח את הודעה המוצפנת זו ללקוח כדי לבדוק האם לכן יש לו באמת את המפתח הפרטי המתאים.
בעת קבלת ההודעה הזו, הלקוח יפענח אותה בעזרת המפתח הפרטי וישלב את המחרוזת האקראית שנחשפת עם מזהה הסשן שניתן לו לפני כן. לאחר מכן הוא ייצור ערך MD5 של ערך זה וישדר אותו בחזרה לשרת. השרת כבר היה בידיו את ההודעה המקורית ואת מזהה הסשן, כך שהוא יכול להשוות בין ערך ה- MD5 שנוצר על ידי אותם ערכים ולקבוע שהלקוח חייב לקבל את המפתח הפרטי.
עכשיו שיש לך הבנה איך פרוטוקול SSH פועל, אנו יכולים להתחיל לדון בדוגמאות שונות כדי להדגים דרכים שונות לעבוד עם SSH.
יצירת ועבודה עם מפתחות SSH
בסעיף זה נכסה איך ליצור מפתחות SSH במכונת הלקוח ולהפיץ את המפתח הציבורי אל השרתים בהם יש להשתמש בהם. זהו סעיף טוב להתחיל איתו אם לא יצרת מקודם מפתחות בשל הבטחון המוגבר שהוא מאפשר לחיבורים בעתיד.
יצירת זוג מפתחות SSH
יצירת זוג מפתחות ציבורי ופרטי SSH חדשים במחשב המקומי שלך היא השלב הראשון לאימות עם שרת רחוק בלי סיסמה. אלא אם יש סיבה טובה לא לעשות זאת, תמיד עליך לאמת באמצעות מפתחות SSH.
A number of cryptographic algorithms can be used to generate SSH keys, including RSA, DSA, and ECDSA. RSA keys are generally preferred and are the default key type.
כדי ליצור זוג מפתחות RSA במחשב המקומי שלך, הקלד:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
הודעת העצירה הזו מאפשרת לך לבחור את המיקום לאחסון המפתח הפרטי שלך. לחץ ENTER
כדי להשאיר את זה כברירת המחדל, שתאחסן אותם בתיקייה המוסתרת .ssh
בתיקיית הבית של המשתמש שלך. להשאיר את המיקום המוגדר כברירת המחדל יאפשר ללקוח SSH שלך למצוא את המפתחות אוטומטית.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
הפרומט הבא מאפשר לך להזין ססמה באורך שרצונך כדי לאבטח את המפתח הפרטי שלך. ברירת המחדל היא שתצטרך להזין כל ססמה שתגדיר כאן בכל פעם שתשתמש במפתח הפרטי, כאמצעי אבטחה נוסף. תרגיש חופשי ללחוץ על ENTER
כדי להשאיר זאת ריקה אם אינך רוצה ססמה. תשים לב אך זה יאפשר לכל מי שיקבל שליטה על המפתח הפרטי שלך להיכנס לשרתים שלך.
אם תבחר להזין ססמה, לא יוצג שום דבר בעת הקלדה. זה מחלקה אבטחתית.
OutputYour identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8c:e9:7c:fa:bf:c4:e5:9c:c9:b8:60:1f:fe:1c:d3:8a root@here
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| + |
| o S . |
| o . * + |
| o + = O . |
| + = = + |
| ....Eo+ |
+-----------------+
תהליך זה יוצר זוג מפתחות SSH של RSA, הממוקם בתיקייה המוסתרת .ssh
בתיקיית הבית של המשתמש שלך. הקבצים הם:
-
~/.ssh/id_rsa
: המפתח הפרטי. אל תשתף את הקובץ הזה! -
~/.ssh/id_rsa.pub
: המפתח הציבורי המקושר. ניתן לשתף בחופשיות מבלי שייגרם נזק.
צור זוג מפתחות SSH עם מספר גדול יותר של ביטים
מפתחות SSH הם באורך של 2048 ביטים כברירת מחדל. בדרך כלל זה נחשב מספיק לצורכי אבטחה, אך תוכל לציין מספר גדול יותר של ביטים למפתח מחוזק יותר.
כדי לעשות זאת, כלול את הארגומנט -b
עם מספר הביטים שתרצה. רוב השרתים תומכים במפתחות באורך של לפחות 4096 ביטים. מפתחות ארוכים יותר עשויים לא להתקבל מטעמי הגנה מפני DDOS:
אם יצרת מפתח שונה בעבר, ישאלו אותך האם ברצונך לדרוס את המפתח הקודם שלך:
Overwrite (y/n)?
אם תבחר "כן", המפתח הקודם שלך יידרס ולא תוכל יותר להתחבר לשרתים באמצעות המפתח הזה. בשל זה, ודא שאתה דורס מפתחות בזהירות.
הסרת או שינוי הסיסמה על מפתח פרטי
אם יצרת סיסמה עבור המפתח הפרטי שלך וברצונך לשנות או להסיר אותה, אתה יכול לעשות זאת בקלות.
הערה: כדי לשנות או להסיר את הסיסמה, עליך לדעת את הסיסמה המקורית. אם איבדת את הסיסמה למפתח, אין פתרון ותצטרך ליצור מפתח חדש.
כדי לשנות או להסיר את הסיסמה, פשוט הקלד:
Enter file in which the key is (/root/.ssh/id_rsa):
אתה יכול להקליד את מיקום המפתח שברצונך לשנות או ללחוץ על ENTER
כדי לקבל את הערך המוגדר כברירת מחדל:
Enter old passphrase:
הזן את הסיסמה הישנה שברצונך לשנות. לאחר מכן תתבקש להזין סיסמה חדשה:
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
כאן, הזן את הסיסמה החדשה שלך או לחץ על ENTER
כדי להסיר את הסיסמה.
הצגת טביעת האצבע של המפתח של SSH
כל זוג מפתחות SSH משתף טביעת אצבע "קריפטוגרפית" יחידה שניתן להשתמש בה כדי לזהות באופן ייחודי את המפתחות. זה עשוי להיות שימושי במגוון של מקרים.
כדי למצוא את טביעת האצבע של מפתח SSH, הקלד:
Enter file in which the key is (/root/.ssh/id_rsa):
ניתן ללחוץ על ENTER
אם זו המיקום הנכון של המפתח, אחרת הזן את המיקום המתוקן. יתן לך מחרוזת הכוללת את אורך הביטים של המפתח, את טביעת האצבע, את החשבון והמארח שבשבילם נוצר המפתח, ואת האלגוריתם המשמש:
Output4096 8e:c4:82:47:87:c2:26:4b:68:ff:96:1a:39:62:9e:4e demo@test (RSA)
העתקת מפתח ה-SSH הציבורי שלך אל שרת באמצעות SSH-Copy-ID
כדי להעתיק את המפתח הציבורי שלך אל שרת, ולאפשר לך לאמת בלי סיסמה, ניתן להשתמש במספר גישות.
אם כרגע יש לך גישת גישה ל-SSH המבוססת על סיסמה לשרת שלך, ואתה משתמש ביישום ssh-copy-id
, תהליך זה פשוט. כלי ה-ssh-copy-id
כלול באריזות ה-OpenSSH של רבות מההפצות של Linux, לכן יתכן מאוד שהוא יהיה מותקן כבר כברירת מחדל.
אם יש לך אפשרות זו, אתה יכול להעביר בקלות את המפתח הציבורי שלך על ידי הקלדת:
זה יבקש ממך את סיסמת החשבון המשתמש במערכת המרוחקת:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
לאחר הקלדת הסיסמה, תוכן המפתח שלך ~/.ssh/id_rsa.pub
יתווסף לסוף קובץ ~/.ssh/authorized_keys
של חשבון המשתמש:
OutputNumber of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
אתה יכול כעת להתחבר לחשבון ההוא בלי סיסמה:
העתקת המפתח הציבורי שלך לשרת ללא שימוש ב־SSH-Copy-ID
אם אין לך את הכלי ssh-copy-id
זמין, אך יש לך גישת SSH באמצעות סיסמה לשרת המרוחק, תוכל להעתיק את תוכן מפתחך הציבורי בדרך אחרת.
ניתן להדפיס את תוכן המפתח ולשלוף אותו לתוך פקודת ה־ssh
. בצד המרוחק, תוכל לוודא שהתיקייה ~/.ssh
קיימת, ולאחר מכן להוסיף את התוכן שנשלף כתקופת הרוב בקובץ ~/.ssh/authorized_keys
:
ישלך התבקש לספק את הסיסמה לחשבון המרוחק:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
[email protected]'s password:
לאחר הזנת הסיסמה, המפתח שלך יועתק, מאפשר לך להתחבר בלי סיסמה:
העתקת המפתח הציבורי שלך לשרת באופן ידני
אם אין לך גישת SSH המבוססת על סיסמה זמינה, תצטרך להוסיף את המפתח הציבורי שלך לשרת המרוחק באופן ידני.
במחשב המקומי שלך, תוכל למצוא את תוכן קובץ המפתח הציבורי שלך על ידי הקלדה:
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
ניתן להעתיק את הערך הזה ולהדביק אותו באופן ידני למיקום המתאים בשרת הרחוק. יהיה עליך להתחבר לשרת הרחוק דרך דרכים אחרות (כמו למשל עם עזרת ממשק האינטרנט של DigitalOcean).
בשרת הרחוק, צור את התיקייה ~/.ssh
אם היא עדיין לא קיימת:
לאחר מכן, ניתן ליצור או להוסיף לקובץ ~/.ssh/authorized_keys
על ידי הקלדת:
עכשיו אתה צריך להיות מסוגל להתחבר לשרת הרחוק בלי סיסמה.
הוראות חיבור בסיסיות
החלק הבא יכסה חלק מהיסודות על כיצד להתחבר לשרת באמצעות SSH.
מתחבר לשרת רחוק
כדי להתחבר לשרת רחוק ולפתוח שם ישיבת של קופסת חלון, ניתן להשתמש בפקודת ssh
.
הצורה הפשוטה ביותר מניחה ששם המשתמש שלך במחשב המקומי הוא זהה לזה בשרת הרחוק. אם זה נכון, ניתן להתחבר באמצעות:
אם שם המשתמש שלך שונה בשרת הרחוק, עליך להעביר את שם המשתמש הרחוק כך:
בפעם הראשונה שאתה מתחבר למארח חדש, תראה הודעה שתיראה כך:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
הקלד כן
כדי לקבל את אימות תוקף המארח הרחוק.
אם אתה משתמש באימות באמצעות סיסמה, תתבקש להזין את הסיסמה עבור החשבון הרחוק כאן. אם אתה משתמש במפתחות SSH, תתבקש להזין את סיסמת המפתח הפרטי שלך אם הוגדרה אחת, אחרת תתחבר באופן אוטומטי.
הרצת פקודה יחידה על שרת רחוק
כדי להריץ פקודה יחידה על שרת רחוק במקום להפעיל ישיבת מסוף, תוכל להוסיף את הפקודה לאחר מידע התחברות, כמו כן:
זה יתחבר למארח הרחוק, יאמת את הזהות שלך, ויבצע את הפקודה שציינת. החיבור יסגר מיד לאחר מכן.
התחברות לשרת בפורט שונה
כברירת מחדל, שרת SSH בשרת פועל בפורט 22
. הלקוח שלך יניח כי זהו המקרה כאשר מנסה להתחבר. אם השרת שלך מאזין בפורט שאינו סטנדרטי (כפי שמודגם בסעיף מאוחר יותר), עליך לציין את מספר הפורט החדש כאשר אתה מתחבר עם הלקוח שלך.
אתה יכול לעשות זאת על ידי ציון מספר הפורט עם האפשרות -p
:
כדי למנוע ממך לעשות זאת בכל פעם שאתה מתחבר לשרת המרוחק שלך, אתה יכול ליצור או לערוך קובץ התצורה בתיקיית ~/.ssh
בתוך תיקיית הבית של המחשב המקומי שלך.
ערוך או צור את הקובץ כעת על ידי הקלדה:
כאן, אתה יכול להגדיר אפשרויות הגדרה ספציפיות למארח. כדי לציין את הפורט החדש שלך, השתמש בתבנית כמו זו:
Host remote_alias
HostName remote_host
Port port_num
זה יאפשר לך להתחבר מבלי לציין את מספר הפורט הספציפי בשורת הפקודה.
הוספת המפתחות שלך ל-Agent של SSH כדי למנוע הקלדת המספר הסודי
אם יש לך קוד סודי על המפתח הפרטי שלך של SSH, תתבקש להזין את הקוד הסודי בכל פעם שאתה משתמש בו כדי להתחבר לשרת מרוחק.
כדי למנוע ממך לעשות זאת שוב ושוב, אתה יכול להפעיל את ה-Agent של SSH. יישום זה קטן מאוד אחסון את המפתח הפרטי שלך לאחר שהזנת את הקוד הסודי לפעם הראשונה. הוא יהיה זמין למשך יומך בסשן הטרמינל שלך, מאפשר לך להתחבר בעתיד בלי להזין מחדש את הקוד הסודי.
זה חשוב גם אם נדרש לך להעביר את אישורי ה-SSH שלך (המוצגים מאוחר יותר).
כדי להתחיל את ה-Agent של SSH, הקלד את הפקודה הבאה לתיק המקומי שלך:
OutputAgent pid 10891
זה יתחיל את תוכנית הסוכן ויניח אותה ברקע. כעת, עליך להוסיף את המפתח הפרטי שלך לסוכן, כך שהוא יוכל לנהל את המפתח שלך:
Enter passphrase for /home/demo/.ssh/id_rsa:
Identity added: /home/demo/.ssh/id_rsa (/home/demo/.ssh/id_rsa)
עליך להזין את ססמתך (אם הוגדרה ססמה). לאחר מכן, הקובץ הזהות שלך מתווסף לסוכן, מאפשר לך להשתמש במפתח שלך כדי להיכנס למערכת מבלי להזין מחדש את הססמה שוב.
העברת האישורים של SSH שלך לשימוש בשרת
אם ברצונך להתחבר לשרת מתוך שרת אחר ללא סיסמה, עליך להעביר את מידע מפתח ה־SSH שלך. זה יאפשר לך לאמת לשרת אחר דרך השרת שאתה מחובר אליו, באמצעות האישורים במחשב המקומי שלך.
עליך להתחיל על מנת להפעיל את הסוכן שלך ולהוסיף את מפתח ה־SSH שלך לסוכן (ראה למעלה). לאחר שזה נעשה, עליך להתחבר לשרת הראשון שלך באמצעות האפשרות -A
. זה מעביר את האישורים שלך לשרת למהלך הזה:
מכאן, תוכל להתחבר באמצעות SSH לכל שרת אחר שמפתח ה־SSH שלך מורשה לגשת אליו. תתחבר כאילו מפתח ה־SSH הפרטי שלך ממוקם בשרת זה.
אפשרויות הגדרת צד השרת
המקטע הזה מכיל מספר אפשרויות תצורה בצד השרת שיכולות להצור את האופן שבו השרת שלך מגיב ואילו סוגי חיבורים מותרים.
ניטרול האימות בסיסמה
אם יש לך מפתחות SSH מוגדרים, מבודדים ועובדים כראוי, כנראה שמומלץ לנטרל את האימות באמצעות סיסמה. זה ימנע מכל משתמש להיכנס באמצעות SSH באמצעות סיסמה.
על מנת לבצע זאת, יש להתחבר לשרת המרוחק שלך ולפתוח את קובץ /etc/ssh/sshd_config
עם הרשאות root או sudo:
בתוך הקובץ, חפש את הפקודה PasswordAuthentication
. אם היא מפוסקת, בצע הפעלה לה:
PasswordAuthentication no
לאחר שביצעת את השינוי, שמור וסגור את הקובץ. כדי ליישם את השינויים, עליך לאתחל את שירות ה-SSH.
ב-Ubuntu/Debian:
ב-CentOS/Fedora:
עכשיו, כל החשבונות במערכת לא יוכלו להתחבר באמצעות SSH באמצעות סיסמאות.
שינוי פורט בו ה-Daemon של SSH רץ
מנהלים מציעים לשנות את הפורט ברירת המחדל שבו רץ SSH. כך ניתן לעזור בהפחתת מספר ניסיונות האימות שהשרת שלך נחשף להם מבוטים אוטומטיים.
כדי לשנות את הפורט שבו השרת של SSH מאזין, עליך להיכנס לשרת הרחוק. פתח את קובץ התצורה של sshd במערכת המרוחקת עם הרשאות root, באמצעות התחברות עם משתמש זה או באמצעות השימוש ב־sudo:
פעם שאתה נמצא בתוך הקובץ, תוכל לשנות את הפורט שבו SSH רץ על ידי מציאת המפרט Port 22
ושינויו כך שיתאם לפורט שברצונך להשתמש בו. לדוגמה, כדי לשנות את הפורט ל־4444
, הזן את זה בקובץ שלך:
#Port 22
Port 4444
שמור וסגור את הקובץ כאשר תסיים. כדי ליישם את השינויים, עליך לאתחל מחדש את פעילות ה־SSH.
ב־Ubuntu/Debian:
ב־CentOS/Fedora:
לאחר שאתה מאתחל את הדמון, יהיה עליך לאמת על ידי ציון מספר הפורט (הודגש בסעיף קודם).
הגבלת המשתמשים שיכולים להתחבר דרך SSH
כדי להגביל את חשבונות המשתמש שיכולים להתחבר דרך SSH, אתה יכול לבחור מספר גישות שונות, כל אחת מהן מעוררת עריכה של קובץ התצורה של הדמון של SSH.
על השרת הרחוק שלך, פתח כעת את הקובץ הזה עם הרשאות root או sudo:
השיטה הראשונה לציון החשבונות שמורשים להתחבר היא באמצעות ההוראה AllowUsers
. חפש את ההוראה AllowUsers
בקובץ. אם היא אינה קיימת, צור אותה בכל מקום. לאחר ההוראה, רשום את חשבונות המשתמש שצריכים להיות מורשים להתחבר דרך SSH:
AllowUsers user1 user2
שמור וסגור את הקובץ. הפעל מחדש את השירות כדי ליישם את השינויים.
באובונטו/דביאן:
בסנטוס/פדורה:
אם אתה נוח יותר עם ניהול קבוצות, אפשר להשתמש בהוראת AllowGroups
במקום. אם זה המקרה, פשוט הוסף קבוצה אחת שצריכה לקבל גישה SSH (ניצור קבוצה זו ונוסיף חברים ברגע):
AllowGroups sshmembers
שמור וסגור את הקובץ.
כעת, אתה יכול ליצור קבוצת מערכת (ללא ספריית בית) התואמת לקבוצה שצוינה על ידי הקלדה:
ודא שאתה מוסיף את כל חשבונות המשתמש שאתה צריך לקבוצה זו. זה ניתן לבצע על ידי הקלדה:
כעת, הפעל מחדש את שירות SSH כדי ליישם את השינויים שלך.
באובונטו/דביאן:
בסנטוס/פדורה:
ניטרול התחברות כשורש
לעתים קרובות מומלץ לנטרל לחלוטין התחברות כשורש דרך SSH לאחר שהגדרת חשבון משתמש SSH המקבל sudo
עדרות.
כדי לעשות זאת, פתח את קובץ התצורה של השירות SSH עם זכויות root או sudo בשרת הרחוק שלך.
בתוך הקובץ, חפש הנחייה בשם PermitRootLogin
. אם היא מפוטרת, בטל את ההערה. שנה את הערך ל-"no":
PermitRootLogin no
שמור וסגור את הקובץ. כדי ליישם את השינויים שלך, אנא הפעל מחדש את שרת ה־SSH.
באובונטו/דביאן:
ב־CentOS/Fedora:
אפשרות גישה לשורש לפקודות ספציפיות
ישנם מקרים בהם תרצה לנטרל גישה לשורש באופן כללי, אך לאפשר אותה כדי לאפשר פעולתם של יישומים מסוימים לרוץ בצורה נכונה. דוגמה לכך עשויה להיות תהליך גיבוי.
ניתן לבצע זאת דרך קובץ ה־authorized_keys
של משתמש השורש, אשר מכיל מפתחות SSH שמורשים להשתמש בחשבון.
הוסף את המפתח מהמחשב המקומי שברצונך להשתמש בו לתהליך זה (אנו ממליצים ליצור מפתח חדש עבור כל תהליך אוטומטי) לקובץ ה־authorized_keys
של משתמש השורש בשרת. נדגיש זאת בעזרת הפקודה ssh-copy-id
כאן, אך תוכל להשתמש בכל אחת מהשיטות להעתקת מפתחות שנדון בהן באזורים אחרים:
כעת, התחבר לשרת רחוק. נצטרך להתאים את הערך בקובץ ה־authorized_keys
, אז פתח אותו עם גישה לשורש או עם sudo:
בראש השורה עם המפתח שהעלת אתה, הוסף command=
המפרט את הפקודה שבה תקפיץ זה המפתח. זה צריך לכלול את הנתיב המלא לקובץ הביצוע, כמו גם את כל הארגומנטים:
command="/path/to/command arg1 arg2" ssh-rsa ...
שמור וסגור את הקובץ כאשר תסיים.
עכשיו, פתח את קובץ ה-sshd_config
עם הרשאות root או sudo:
מצא את ההוראה PermitRootLogin
, ושנה את הערך ל-forced-commands-only
. זה יאפשר להתחברויות SSH עם מפתח להשתמש במשתמש root רק כאשר פקודה ספציפית הוגדרה עבור המפתח:
PermitRootLogin forced-commands-only
שמור וסגור את הקובץ. הפעל מחדש את סדנת ה-SSH כדי ליישם את השינויים שלך.
על Ubuntu/Debian:
על CentOS/Fedora:
העברת תצוגת אפליקציות X ללקוח
סדנת ה-SSH יכולה להתאפשר כך שתציג באופן אוטומטי את תצוגת אפליקציות X על השרת למכונת הלקוח. כדי שזה יתפקח כמו שצריך, יש להגדיר מערכת חלונות X על הלקוח ולהפעיל אותה.
כדי לאפשר פונקציונליות זו, התחבר לשרת המרוחק וערוך את קובץ ה-sshd_config
בעל הרשאות root או sudo:
חפש את ההוראה X11Forwarding
. אם היא מסומנת בהערה, בטל את ההערה. צור אותה אם נדרש והגדר את הערך ל-"yes":
X11Forwarding yes
שמור וסגור את הקובץ. הפעל מחדש את דמון ה־SSH כדי ליישם את השינויים האלה.
ב־Ubuntu/Debian:
ב־CentOS/Fedora:
כדי להתחבר לשרת ולהעביר את התצוגה של אפליקציה, עליך לעבור עם האופציה -X
מהלקוח בעת התחברות:
אפליקציות גרפיות שמופעלות על השרת דרך הסשן הזה צריכות להופיע על המחשב המקומי. הביצועים עשויים להיות מעט איטיים, אך זה מאוד מועיל בקושי.
אפשרויות הגדרת הלקוח
בקטע הבא, נתמקד באפשרויות להתאמה אישית שניתן לבצע בצד של הלקוח של החיבור.
הגדרת מידע ספציפי לשרת
על המחשב המקומי שלך, ניתן להגדיר הגדרות אישיות לאחד או לכמה מהשרתים שאתה מתחבר אליהם. ניתן לאחסן אותם בקובץ ~/.ssh/config
, שנקרא על ידי סוכן ה־SSH שלך בכל פעם שהוא נקרא.
צור או פתח קובץ זה בעורך הטקסט על המחשב המקומי שלך:
בתוך זה, ניתן להגדיר אפשרויות תצורה אישיות על ידי הצגת כל אחת עם מילת מפתח Host
, לאחר מכן שם כינוי. מתחת לכך ובריווח זניח, תוכל להגדיר כל אחת מההוראות שנמצאות בדף הרשמי של ssh_config
:
דוגמה להגדרת הגדרה היא:
Host testhost
HostName your_domain
Port 4444
User demo
תוכל אז להתחבר אל your_domain
בפורט 4444
באמצעות שם משתמש demo
פשוט על ידי הקלדת:
ניתן גם להשתמש בכמה תוויות כדי להתאים ליותר ממארח אחד. יש לזכור שהתאמות מאוחרות יכולות לדרוס התאמות קודמות. עקב כך, כדאי להכניס את ההתאמות הכלליות ביותר שלך בראש הרשימה. לדוגמה, ניתן להגדיר את כל החיבורים ברירת מחדל לא לאפשר העברת X, עם דרישת שינוי ל-your_domain
על ידי הכנסת ההגדרה הבאה לקובץ שלך:
Host *
ForwardX11 no
Host testhost
HostName your_domain
ForwardX11 yes
Port 4444
User demo
שמור וסגור את הקובץ כאשר תסיים.
שמירת חיבורים פעילים למניעת פסק זמן
אם מתקבל פינוי מחיבורי SSH לפני שהנך מוכן, קיימת אפשרות שהחיבור שלך מתבצע בפסק זמן.
ניתן להגדיר לקוח שלך לשלוח חבילה לשרת לעתים קרובות כדי למנוע מצב זה:
במחשב המקומי שלך, תוכל להגדיר זאת עבור כל חיבור על ידי עריכת קובץ ה-~/.ssh/config
שלך. פתח אותו כעת:
אם לא קיים כבר, בראש הקובץ, הגדר סעיף שיתאים לכל המארחים. הגדר את ServerAliveInterval
ל- "120" כדי לשלוח חבילה לשרת כל שני דקות. זה צריך להיות מספיק כדי להודיע לשרת שלא לסגור את החיבור:
Host *
ServerAliveInterval 120
שמור וסגור את הקובץ כאשר תסיים.
ניטרול בדיקת המארח
בברירת מחדל, בכל פעם שאתה מתחבר לשרת חדש, יוצג לך טביעת האצבע של קודם המערכת המרוחקת של שירות ה־SSH.
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
זה מוגדר כך שתוכל לוודא את אמינות המארח שאתה מנסה להתחבר אליו ולזהות מקרים שבהם משתמש זדון עשוי לנסות להתחפש למארח המרוחק.
בנסיבות מסוימות, ייתכן שתרצה לבטל את התכונה הזו. הערה: זה יכול להיות סיכון אבטחה גדול, כך שודא שאתה יודע מה אתה עושה אם אתה מגדיר את המערכת שלך בצורה כזו.
כדי לבצע את השינוי, פתח את קובץ ~/.ssh/config
על המחשב המקומי שלך:
אם לא קיים כבר, בראש הקובץ, הגדר סעיף שיתאים לכל המארחים. הגדר את ההוראת StrictHostKeyChecking
ל־no
כדי להוסיף מארחים חדשים אוטומטית לקובץ known_hosts
. הגדר את UserKnownHostsFile
ל־/dev/null
כדי לא להצג התראה על מארחים חדשים או שונים:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
אתה יכול להפעיל את הבדיקה במקרה למקרה על ידי הפיכת אופציות אלו לשונות עבור מארחים אחרים. הסטנדרטי עבור StrictHostKeyChecking
הוא ask
:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Host testhost
HostName your_domain
StrictHostKeyChecking ask
UserKnownHostsFile /home/demo/.ssh/known_hosts
מרובה שימושים של SSH דרך חיבור TCP יחיד
ישנם מקרים בהם הקמת חיבור TCP חדש עשויה לארוך יותר ממה שתרצה. אם אתה יוצר חיבורים מרובים לאותו מכונה, תוכל להשתמש במרובה שימושים.
מרובה שימושים ב-SSH משתמש מחדש באותו חיבור TCP עבור מספר רב של ישיבות SSH. זה מסיר חלק מהעבודה הנדרשת להקים ישיבה חדשה, ועשוי להאיץ את התהליך. הגבלת מספר החיבורים עשויה גם להיות מועילה לסיבות אחרות.
כדי להגדיר מרובה שימושים, ניתן להקים באופן ידני את החיבורים, או להגדיר את הלקוח שלך להשתמש במרובה שימושים אוטומטית כאשר הוא זמין. נדגים את האפשרות השנייה כאן.
כדי להגדיר מרובה שימושים, ערוך את קובץ ההגדרות של הלקוח שלך SSH על המחשב המקומי שלך:
אם עדיין אין לך הגדרת מארח כללית בראש הקובץ, הוסף אחת כעת (כמו Host *
). נקבע את הערכים ControlMaster
, ControlPath
, ו-ControlPersist
כדי להקים את ההגדרות שלנו למרובה שימושים.
ה-ControlMaster
צריך להיות מוגדר ל- "אוטומטי" כדי לאפשר מולטיפלקסינג אוטומטי אם אפשרי. ה-ControlPath
יקבע את הנתיב לקונקטור של השליטה. הסשן הראשון ייצור את הקונקטור הזה והסשנים הבאים יוכלו למצוא אותו מכיוון שהוא מסומן על ידי שם משתמש, מארח, ופורט.
הגדרת האפשרות ControlPersist
ל־1
תאפשר לחיבור הראשון של המאסטר להיות ברקע. ה־1
מציין שהחיבור TCP יסתיים אוטומטית שנייה אחרי שהסשן האחרון של SSH נסגר:
Host *
ControlMaster auto
ControlPath ~/.ssh/multiplex/%r@%h:%p
ControlPersist 1
שמור וסגור את הקובץ כשתסיים. עכשיו, אנו צריכים ליצור את התיקייה שצוינה בנתיב השליטה:
עכשיו, כל הסשנים שמתקיימים עם אותו מכונה ינסו להשתמש בקונקטור ובחיבור TCP הקיימים. כאשר הסשן האחרון קיים, החיבור ייתפקע אחרי שנייה אחת.
אם לכל סיבה שהיא נדרש להתעלם מהגדרת המולטיפלקסינג באופן זמני, ניתן לעשות זאת על ידי מעבר עם הדגל -S
עם none
:
הגדרת טנאלים של SSH
הנעה של תעבורה אחרת דרך טנאל מאובטח של SSH היא דרך מצוינת לעבוד מעבר להגבלות האש שמופעלות. זה גם דרך נהדרת להצפין תעבורת רשתת שאחרת הייתה בלתי מצופנת.
הגדרת טנונים מקומיים אל שרת
חיבורי SSH ניתן להשתמש בהם כדי להטניל תעבורה מפורטים במארח המקומי אל פורטים במארח מרוחק.
A local connection is a way of accessing a network location from your local computer through your remote host. First, an SSH connection is established to your remote host. On the remote server, a connection is made to an external (or internal) network address provided by the user and traffic to this location is tunneled to your local computer on a specified port.
שימוש נפוץ בכך הוא להטניל לסביבת רשת פחות מוגבלת על ידי עקיפת חומת אש. שימוש נפוץ נוסף הוא לגשת לממשק אינטרנט שמוגבל לרק למארח מקומי ממקום מרוחק.
כדי להקים טונל מקומי לשרת המרוחק שלך, עליך להשתמש בפרמטר -L
בעת התחברות ולספק שלושה חלקי מידע נוספים:
- הפורט המקומי שבו ברצונך לגשת לחיבור הטונל.
- המארח שברצונך שהמארח המרוחק שלך יתחבר אליו.
- הפורט שברצונך שהמארח המרוחק שלך יתחבר אליו.
אלו ניתנים, בסדר המצויין לעיל (מופרדים בפיצולות), כארגומנטים לדגל -L
. נשתמש גם בדגל -f
, המפעיל את SSH ברקע לפני ביצוע ובדגל -N
, שאינו פותח מסוף או מבצע תוכנית בצד המרוחק.
לדוגמה, כדי להתחבר ל־your_domain
בפורט 80 על המארח המרוחק שלך, ולהפוך את החיבור זמין במחשב המקומי שלך בפורט 8888, תוכל להקליד:
עכשיו, אם תפנה את דפדפן האינטרנט המקומי שלך אל 127.0.0.1:8888
, אתה אמור לראות את התוכן שב־your_domain
על פורט 80
.
A more general guide to the syntax is:
מאחר שהחיבור פועל ברקע, עליך למצוא את ה־PID שלו כדי להרוג אותו. ניתן לעשות זאת על ידי חיפוש אחר הפורט שפתחת:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -L 8888:your_domain:80 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
אתה יכול להרוג את התהליך על ידי מיצוב ה־PID, שהוא המספר בעמודה השנייה של השורה שמתאימה לפקודת ה־SSH שלך:
אפשרות נוספת היא להתחיל את החיבור בלי הדגל -f
. זה ישאר עם החיבור ברקע, מונע ממך להשתמש בחלון הטרמינל למשך הניתוב. היתרון של זה הוא שניתן להרוג בקלות את הטונל על ידי לחיצה על CTRL-C
.
הגדרת ניתוב רחוק אל שרת
חיבורי SSH ניתן להשתמש בהם לטנון תעבורה מפורטים במחשב המקומי לפורטים במחשב רחוק.
בטנון רחוק, נעשה חיבור לשרת רחוק. במהלך יצירת הטונל, נקבע פורט רחוק. פורט זה, על השרת הרחוק, יטונל לקיבוץ מחשב מארח ופורט שמחובר מהמחשב המקומי. זה יאפשר למחשב הרחוק לגשת למארח דרך המחשב המקומי שלך.
זה יכול להיות שימושי אם נדרש לאפשר גישה לרשת פנימית שננעלת לחיבורים חיצוניים. אם האש המותרת חיבורים החוצה מהרשת, זה יאפשר לך להתחבר למכונה רחוקה ולטנון תעבורה מהמכונה ההיא אל מיקום ברשת הפנימית.
כדי להקים טונל מרחוק לשרת המרוחק שלך, עליך להשתמש בפרמטר -R
בעת התחברות ועליך לספק שלושה פרטים נוספים:
- הפורט שבו המארח המרוחק יכול לגשת לחיבור הטונל.
- המארח שבו ברצונך שמחשב המקומי שלך יתחבר אליו.
- הפורט שבו ברצונך שמחשב המקומי שלך יתחבר אליו.
אלה מסופקים, בסדר הנ"ל (מופרדים באמצעות נקודותיים), כארגומנטים לדגל -R
. נשתמש גם בדגל -f
, שגורם ל-SSH להיכנס לרקע לפני ביצוע הפקודה ובדגל -N
, שאינו פותח מסלול או מפעיל תוכנית בצד המרוחק.
לדוגמה, כדי להתחבר אל your_domain
בפורט 80 במחשב המקומי שלנו, ולהנגיש את החיבור בשרת המרוחק שלנו בפורט 8888
, ניתן להקליד:
כעת, בשרת המרוחק, פתיחת דפדפן אינטרנט אל 127.0.0.1:8888
יאפשר לך לראות את כל התוכן שב-your_domain
בפורט 80
.
A more general guide to the syntax is:
מאחר והחיבור נמצא ברקע, עליך למצוא את ה- PID שלו כדי להשמיד אותו. תוכל לעשות זאת על ידי חיפוש אחר הפורט שהעברת:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -R 8888:your_domain:80 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
אז תוכל להשמיד את התהליך על ידי התמקדות ב-PID, שהוא המספר בעמודה השנייה, של השורה שתואמת את פקודת ה-SSH שלך:
אפשרות נוספת היא להתחיל את החיבור בלי הדגל -f
. זה ישמור על החיבור ברקע, מונע מך להשתמש בחלון הטרמינל במשך זמן ההעברה. היתרון של זה הוא שניתן להרוג בקלות את המנהרה על ידי הקלדת CTRL-C
.
קיבוע טנון דינמי לשרת רחוק
חיבורי SSH ניתן להשתמש בהם לשיבוש תעבורה מפורטים במארח המקומי לפורטים במארח רחוק.
A dynamic tunnel is similar to a local tunnel in that it allows the local computer to connect to other resources through a remote host. A dynamic tunnel does this by simply specifying a single local port. Applications that wish to take advantage of this port for tunneling must be able to communicate using the SOCKS protocol so that the packets can be correctly redirected at the other side of the tunnel.
תעבורה שעוברת לפורט המקומי זה תשלח לשרת הרחוק. משם, פרוטוקול SOCKS יתווה כדי להקים חיבור למיקום היעד הרצוי. ההתקנה הזו מאפשרת ליישום תומך ב-SOCKS להתחבר לכמה מקומות דרך השרת הרחוק, ללא מספר מנהרות סטטיות.
כדי להקים את החיבור, נעביר את הדגל -D
יחד עם פורט המקומי שבו ברצוננו לגשת למנהרה. נשתמש גם בדגל -f
, שגורם ל-SSH להיכנס לרקע לפני ביצוע ובדגל -N
, שאינו פותח מפקד או מפעיל תוכנית בצד הרחוק.
לדוגמה, כדי להקים מנהרה על פורט 7777
, ניתן להקליד:
מכאן, ניתן להתחיל להפנות את היישום המודע ל-SOCKS (כמו דפדפן אינטרנט), אל הפורט שבחרת. היישום ישלח את המידע שלו לכניסה אל חריץ המשוורת הקשור עם הפורט.
השיטה להפנות תעבורה לפתחת SOCKS תשתנה לפי היישום. לדוגמה, ב־Firefox, המיקום הכללי הוא העדפות > מתקדם > הגדרות > תצורת פרוקסי ידנית. ב־Chrome, תוכל להתחיל את היישום עם הדגל --proxy-server=
מוגדר. תרצה להשתמש בממשק localhost ובפורט שהעברת.
מאחר והחיבור פועל ברקע, תצטרך למצוא את מזהה התהליך שלו כדי להורוג אותו. תוכל לעשות זאת על ידי חיפוש אחר הפורט שהעברת:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -D 7777 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
תוכל להורוג את התהליך על ידי מטרת ה־PID, שהוא המספר בעמודה השנייה, של השורה התואמת את הפקודה שלך ב־SSH:
אפשרות נוספת היא להתחיל את החיבור בלי הדגל -f
. זה ישמור על החיבור ברקע, וימנע ממך להשתמש בחלון הטרמינל למשך זמן ההובלה. היתרון של כך הוא שתוכל להורוג בקלות את המנהרה על ידי הקלדת CTRL-C
.
שימוש בקודי ירידה של SSH כדי לשלוט בחיבורים
אפשר לשלוט בחיבור גם לאחר הקמת ישיבת SSH, מתוך הטרמינל. אפשר לעשות זאת עם משהו שנקרא קודי ירידה של SSH, שמאפשרים לנו להתקשר עם תוכנת ה־SSH המקומית שלנו מתוך הישיבה.
לכפות התנתקות מצד הלקוח (כיצד לצאת מהפגיעה או מהקפאת הסשן)
אחת התכונות הכי שימושיות של OpenSSH שלרוב לא מתבחרות היא היכולת לשלוט באספקטים מסוימים של הסשן מתוך הסשן עצמו.
פקודות אלה יכולות להתבצע באמצעות תו השליטה ~
בתוך הסשן SSH. פקודות השליטה ייבארגו רק אם הן הדבר הראשון שנקלד אחרי שורה חדשה, לכן תמיד יש ללחוץ ENTER פעמיים לפני השימוש באחת.
אחת מהשליטות הכי שימושיות היא היכולת להתחיל התנתקות מהלקוח. חיבורי SSH נסגרים בדרך כלל על ידי השרת, אך זה עשוי להיות בעיה אם השרת מתמוטט או אם החיבור נקטע. על ידי שימוש בהתנתקות מצד הלקוח, החיבור יכול להיסגר בצורה נקייה מצד הלקוח.
כדי לסגור חיבור מהלקוח, יש להשתמש בתו השליטה (~
), עם נקודה. אם יש בעיות בחיבור שלך, כנראה תמצא עצמך בסשן טרמינל שנראה כאילו תקוע או מוקפא. הקלד את הפקודות למרות החוסר במשוב כדי לבצע התנתקות מצד הלקוח:
החיבור צריך להיסגר מיד, ולהחזיר אותך לסשן השלך בטרמינל המקומי.
מציבים חיבור SSH ברקע
אחת התכונות המועילות ביותר של OpenSSH שנדרשת בהתעלמות רבה היא היכולת לשלוט באספקטים מסוימים של החיבור מתוך החיבור עצמו.
פקודות אלו יכולות להתבצע לאחר כתיבת התו ~
מתוך חיבור SSH. פקודות בקרה יתווספו רק אם הן הן הדבר הראשון שנכתב אחרי שורת שורה חדשה, לכן תמיד לחצו על ENTER
פעמיים לפני שתשתמשו באחת.
אחת היכולות שהמעניקה זאת היא לשים חיבור SSH ברקע. כדי לעשות זאת, עליכם לספק את התו בקרה (~
) ולאחר מכן לבצע את הקיצור המקלדתי הרגיל לשים משימה ברקע (CTRL-z):
זה יציב את החיבור ברקע, ויחזיר אתכם לחיבור כור המקומי שלכם. כדי לחזור לחיבור SSH שלכם, תוכלו להשתמש במנגנון שליטת המשימות הרגיל.
ניתן להפעיל מיד את המשימה האחרונה שהונחה ברקע על ידי הקלדה של:
אם יש לכם מספר משימות שהונחו ברקע, תוכלו לראות את המשימות הזמינות על ידי הקלדת:
Output[1]+ Stopped ssh username@some_host
[2] Stopped ssh username@another_host
אז תוכלו להביא כל אחת מהמשימות לראשי באמצעות האינדקס בעמודה הראשונה עם אחוז:
שינוי אפשרויות הפניה לפורט בחיבור SSH קיים
אחת היתרונות החשובים ביותר של OpenSSH שכמעט תמיד נעלמים הוא היכולת לשלוט באספקטים מסוימים של הסשן מתוך החיבור עצמו.
פקודות אלו יכולות להתבצע על ידי התחלת הקלט עם תו השליטה ~
מתוך חיבור SSH. פקודות השליטה ייבצעו רק אם הן הדבר הראשון שמוקלד לאחר ירידת שורה, כך שתמיד יש ללחוץ על ENTER פעמיים לפני שימוש באחת.
דבר שאפשרי עם זה הוא לשנות את תצורת ההפניה לפורט לאחר שהחיבור כבר הוצב. זה מאפשר לך ליצור או להשמיד כללים לפייביים על הדרך.
היכולות הללו הן חלק מממשק השורת פקודה של SSH, שניתן לגשת אליו במהלך הסשן באמצעות שימוש בתו השליטה (~
) ובתו "C":
ssh>
תקבל ערכת פקודות של SSH, שבה יש סט מוגבל מאוד של פקודות תקפות. כדי לראות את האפשרויות הזמינות, ניתן להקליד -h
מהערכת הזו. אם אין תגובה, עשויה להיות צורך להגביר את רמת ההפרטה של פלט SSH שלך על ידי שימוש ב-~v
מספר פעמים:
Commands:
-L[bind_address:]port:host:hostport Request local forward
-R[bind_address:]port:host:hostport Request remote forward
-D[bind_address:]port Request dynamic forward
-KL[bind_address:]port Cancel local forward
-KR[bind_address:]port Cancel remote forward
-KD[bind_address:]port Cancel dynamic forward
כפי שתוכל לראות, תוכל ליישם בקלות כל אחת מהאפשרויות להעברה באמצעות האפשרויות המתאימות (ראה את סעיף ההעברה למידע נוסף). תוכל גם להרוס טונל עם הפקודה "kill" המשויכת שנקבעת עם "K" לפני אות הסוג של ההעברה. לדוגמה, כדי להרוג העברה מקומית (-L
), תוכל להשתמש בפקודת -KL
. תצטרך לספק רק את היציאה עבור זה.
לכן, כדי להגדיר העברת יציאה מקומית, תוכל להקליד:
יציאה 8888
במחשב המקומי שלך כעת תוכל לתקשר עם שרת האינטרנט על המארח שאתה מחובר אליו. כאשר תסיים, תוכל לפרוק את ההעברה הזו על ידי הקלדת:
מסקנה
ההוראות לעיל צריכות לכסות את רוב המידע שרוב המשתמשים יצטרכו בנושא SSH ביום-יום. אם יש לך טיפים נוספים או אתה רוצה לשתף את התצורות והשיטות המועדפות עליך, אל תהסס להשתמש בתגובות למטה.