שאלה כיצד להפוך את הכניסה SSH עם הסיסמה?


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

למשל)

echo password | ssh id@server

זה לא עובד.

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


335
2018-03-01 11:07




FreeBSD לא קיבל מפתחות חסרי סיסמה. אל תתפתו. עם זאת, כמה שרתי לינוקס קיבלו זאת. אני מאמין שרת לינוקס היה misconfigured. - Eonil
זוהי שאלה תקפה. לדוגמה, אני רוצה לאפשר למשתמש להזין סיסמה ולאחר מכן להתחבר למחשב אחר באמצעות זה. אני לא יכול להניח כי יהיו מפתחות ssh מופץ על פני כל המכונות שלנו. התשובות למטה עד כה לא עוזרים למצב זה. - dfrankow
unix.stackexchange.com/questions/38737/... || unix.stackexchange.com/questions/38737/... || stackoverflow.com/questions/233217/pass-password-to-su-sudo-ssh - Ciro Santilli 新疆改造中心 六四事件 法轮功
שאלה חשובה מאוד. אני צריך גם תשובה, ספקית האינטרנט שלי חוסם ספקי לשים keyfiles בשרת, אז אני חייב לעבור את passwort ללא keyfiles. - Radon8472


תשובות:


אל תשתמש בסיסמה. צור מפתח SSH חסר passphless ודחוף אותו ל- VM שלך.

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

$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.

העתק את המפתחות לשרת היעד:

$ ssh-copy-id id@server
id@server's password: 

עכשיו נסה להיכנס למחשב, עם ssh 'id@server', וכן לבצע צ'ק-אין:

.ssh/authorized_keys

כדי לוודא שלא הוספנו מפתחות נוספים שלא ציפית להם.

לבסוף לבדוק את הכניסה ...

$ ssh id@server

id@server:~$ 

ייתכן גם רוצה להסתכל לתוך באמצעות ssh-agent אם ברצונך לנסות לשמור על המפתחות מוגנים במשפט-סיסמה.


302
2018-03-01 11:17



לבסוף החלטתי להשתמש בזוגות מפתח. כי הבנתי שזאת הדרך הפשוטה ביותר. - Eonil
@Eonil: אל תתפתו להשתמש במפתחות ללא ביטוי לעבור. למד כיצד להשתמש ב- ssh-agent או בתחרות. - Iain
זו תשובה טובה, אבל לא התשובה הנכונה לשאלה. - John Hunt
תשובות כאלה באמת, ממש מעצבן אותי. זאת לא היתה השאלה. איש לא שאל כיצד להשתמש בזוגות מפתח. - Matt Fletcher
זה לא עונה על השאלה. זוהי תשובה טובה לשאלה אחרת לגמרי, אבל זה נורא עבור אחד שאל. - srchulo


$ sudo apt-get install sshpass
$ sshpass -p your_password ssh user@hostname

500
2018-05-31 09:08



כן, לפעמים אתה לא יכול להשתמש auth מפתח מבוסס מסיבות שונות .. למשל עכשיו אני לא יכול להשתמש keyauth על שרת plesk כי את התיבה זה לא מופעל ואין לי שורש. - John Hunt
+1! בתור הערה צדדית, אתה צריך לרוץ רגיל ssh פעם אחת לפני השימוש sshpass, כדי לאשר את טביעת האצבע RSA - user123444555621
-1 שיש להשתמש בסיסמה בפקודה. זה מתעד את הסיסמה ב .bash_history בטקסט רגיל במחשב שלך.
@MisterDood אתה יכול לרוץ history -r אחרי הפקודה למחוק את ההיסטוריה שלך. אבל נקודה טובה. - NuclearPeon
טיפ Pro: אם אתה לא רוצה לקבל פקודה ספציפית להופיע ב .bash_history, הקידומת הפקודה עם רווח. זה פשוט עובד. עם זאת, משתמשים בפקודה זו צריכים להיות מודאגים יותר כי משתמשים שאינם מיוחסים על המערכת יכולים לראות את שורת הפקודה המלא עם ps, אשר, כמובן, כולל את הסיסמה. מאז ssh הפעלות נוטים להיות ארוכת ימים, זה עניין ביטחוני. - CubicleSoft


תשובה קלה שלושה צעדים פשוטים

צור a rsa keypairYou

# ssh-keygen

ולאחר מכן להעתיק אותו עם שרת פקודה אחת פשוטהYou

# ssh-copy-id userid@hostname

כעת תוכל להיכנס ללא סיסמהYou

# ssh userid@hostname

57
2017-11-14 12:57



עובד בסדר עם ערכי ברירת המחדל. שימוש ~ / rsa4live.pub לא עובד בשבילי בעת ניסיון ssh-copy-id. - Cees Timmerman
אם אתה רוצה את השלבים הבאים לעבוד עבור משתמש אחר, 1. ssh-keygen 2. ssh-copy-id nazir @ hostname 3. ssh nazir @ hostname - Venfah Nazir
בשבילי זה היה ssh-copy-id -i ~/.ssh/tatu-key-ecdsa user@host - Gabriel Fair
אין זו תשובה לשאלה. - Steve Bennett
וזה? התשובה היא מעל, sshpass ... - lzap


השתמש בציפייה:

#!/usr/bin/expect -f
#  ./ssh.exp password 192.168.1.11 id
set pass [lrange $argv 0 0]
set server [lrange $argv 1 1]
set name [lrange $argv 2 2]

spawn ssh $name@$server
match_max 100000
expect "*?assword:*"
send -- "$pass\r"
send -- "\r"
interact

דוגמא:

# ./1.ex password localhost ooshro
spawn ssh ooshro@localhost
ooshro@localhost's password: 
Linux ubuntu-1010-server-01 2.6.35-25-generic-pae #44-Ubuntu SMP Fri Jan 21 19:01:46 UTC 2011 i686 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/
Last login: Tue Mar  1 12:41:12 2011 from localhost

27
2018-03-01 11:08



זה עבד אבל זה לא יכול להדפיס stdout של מחשב מרוחק. - Eonil
זה עובד גם עבור מכונה כלשהי לא יכול לשים את המפתח מראש מאז כתובת ה- IP הוא שונה בכל פעם. - larrycai
זה יהיה טוב להוסיף -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null עבור הפקודה ssh גם כדי למנוע לקבל את המכונה לתוך known_hosts - larrycai
B .. b אבל muh ssh המפתחות ... - Damien Ó Ceallaigh
דוגמה מפורטת יותר של סקריפט זה ניתן למצוא בכתובת: linuxaria.com/howto/...  דוגמאות אלה כאן צריך לעבוד עם פקודות מרחוק מדי - Radon8472


ייתכן שזה לא יועיל לך, אבל אתה יכול לעשות זאת עם Perl:

\#!/usr/bin/perl  
use warnings;  
use strict;  

use Net::SSH::Perl;  
my $host = 'remote.serv.er';  
my $user = 'root';  
my $pass = 'hunter2';  
my $ssh = Net::SSH::Perl->new('$host');  
$ssh->login('$user', '$pass') or die "Oh noes! $!";

11
2018-03-01 11:52



כמו כן, אתה יכול לעשות עם זה רובי github.com/net-ssh/net-ssh - EnabrenTane


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


9
2018-03-01 11:14



שימוש במקשי SSH ללא סיסמה הוא רק קצת יותר מאובטח מאשר שימוש בסיסמאות בקובץ. - yunzen
@yunzen שגוי. אימות מפתח מגן עליך מפני התקפות mitm אפילו אם אתה לא יודע את המפתח המארח. תוקף יכול להתחזות לשרת, אך לעולם לא להתחבר לשרת האמיתי. עם אימות סיסמה כל שרת אתה מתחבר (לגיטימי או לא) יראה את הסיסמה. מסיבות אלה מפתח SSH ללא סיסמה הוא הרבה יותר בטוח מאשר רק לאחסן את הסיסמה בקובץ. - kasperd
זו לא תשובה. - Steve Bennett
@ SteveBennett זה זהה לתשובה המקובלת ופורסמה לפני זה, אם כי יש פחות פרטים. - Michael Hampton♦
ובכן, הייתי אומר שהתשובה המקובלת היא תשובה הגונה לשאלה שלא נשאלה. זה לא כלום. - Steve Bennett


אני מופתע שאף אחד לא הזכיר plink מ ה putty-tools חבילה באובונטו:

plink user@domain -pw mypass  [cmd]

זה גם זמין ב- Windows ואת התחביר הוא תואם בעיקר עם הלקוח OpenSsh.


5
2017-07-09 13:15



עבור Windows התשובה שלך היא טובה, Untunally לינוקס / משתמש יוניקס בדרך כלל dont יש plink - Radon8472
זה בתוך putty-tools החבילה - eadmaster