bash elakadtam

Hali!

Uj vagyok meg a bash ban, e most kicsit elakadtam. Olyan scriptet irok, ami fellep szerverre, ssh-n keresztul, namarmost azt kene megoldani, hogy a passwordot amikor bekeri, akkor a script adja meg neki. Here document el probalkoztam, az nem jott be. Kulcs az autentikacioho kizarva, csak jelszo megadasa lehetseges, hogy felengedjen... ezt kene megoldani. Remelem erthetően irtam le, e azert hozok egy peldat.

ssh hurkagyurka @hurkagyar.hu
hurkagyurka @hurkaygar.hu's password:_

Nah es nekem ide kne, hogy a script mondjuk egy valozobol beirja ajelszot!
Elore is koszi

Hozzászólások

expect - A program that "talks" to other programs

Ne jelszavas azonosítást használj, hanem privát kulcsost!

Nah akkor leccsekkolom az ötleteket, hátha jutok valamire.... Kösz

legalább a password filet lefogod titkositani?

Ha nincs lehetőség arra, hogy kézzel írjon be jelszót, akkor hiába titkosítaná, mert akkor a titkosítást visszafejtő kulcs kéne, hogy titkosítatlanul legyen. Ha csak a root tudja olvasni a jelszót, az szerintem biztonságos (amennyire lehet), mert ha valaki root jogot szerezne, az úgyis el tudná lopni akár a kézzel beírt jelszavakat is (csak az ssh binárist kéne lecserélnie).

Nah végülis megoldottam a következő módon: ssh van az sshpass -ot használtam, telnetre az expect et. Titkositás meg az lett, hogy csak root-al lehet futtatni, a többinek nincs semmi joga semmihez. Köszi a segitséget.

Jah és ez lett a vége, sshpass-t is száműztem:

#!/usr/bin/expect
set connecttype [lindex $argv 0]
puts "$connecttype"
set password [lindex $argv 3]
set username [lindex $argv 2]
set hostname [lindex $argv 1]
if {"$connecttype" == "telnet"} {
spawn $connecttype $hostname
expect "login:"
send "$username\r"
expect "Password:"
send "$password\r"
interact
} else {
spawn $connecttype $username@$hostname
expect "password:"
send "$password\r"
interact
}

Nah, most még ennyi gondom van, hogy meg lehet azt ugy oldani, hogy a scriptben, ami basht használ valahogy beleirni, hogy ezt használja kapcsolatra, mert mert ugy megy, hogy egy külső scriptet hhive meg a bash, amiben ez a kód van, ugye ShuBang: #!/usr/bin/expect...

for i in `cat 1.txt`; do grep -q ^$i 2.txt || echo $i; done

az 1.txt amit keresel a 2.txt meg a már létező fájlok azt hiszem kell még egy lezáró a grep végére, hogy a 2 és 22 elkülöníthető legyen.

--
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.

rossz helyre
--
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.