Avatar billede havmaage Juniormester
29. december 2004 - 09:38 Der er 4 kommentarer og
1 løsning

ssh timeout

hej!
jeg er ved at lave et script der skal logge på rigtig manage servere og eksekvere et script på hvert enkelt af dem. De fleste af vores servere er configureret med PermitRootLogin without-password i sshd_config så de er trusted fra en enkel maskine hvor det kun er administratorere der har adgang.
problemet er at nogle gamle maskiner ikke har ssh konfigureret på den måde og heller ikke skal have det og så bliver der promtet for passwd.

eks.

for i in `cat hosts` ; do
if ssh -t $i "exit"; then
  ssh -t $i "runback.job"
fi
done

Dette virker faktisk også fint nok, men nogle af serverne promter med root passwd.
#root@password

Kan jeg ikke i mit script lave et test på at ssh er trusted på en given maskine eller sætte en timeout så mit script ikke går i stå i loopet og i stedet f.eks skriver ud i en log at $i maskine ikke er trusted og derfor kan der ikke logges på.

jeg har kigget i man til ssh og på google men har ikke rigtig kunnet finde noget.
Avatar billede janpo Nybegynder
29. december 2004 - 12:50 #1
Jeg forstår ikke dit problem. Er du træt af at dit script går i stå indtil SSH timer ud ?
Kan du ikke bare udelade de gamle maskiner fra din "hosts" fil ?
Avatar billede havmaage Juniormester
29. december 2004 - 13:07 #2
Da der er ca 400 unix servere i hostsfilen #Det er ikke /etc/hosts men en fil indeholdende alle vores unix servere i netværket vil jeg meget gerne have hvis jeg kunne teste automatisk.
hvis jeg som root logger ind på maskine A og skriver ssh B logger den automatisk ind som root fordi PermitRootLogin without-password er sat i B's /opt/ssh/etc/sshd_config fil og B er sat i kmown_host filen på A.

Nu er det bare sådan at nogle af de 400 maskiner ikke er konfiguret på samme måde og d.v.s at når mit script kører og det kommer til en maskine som den ikke kan komme på som root så promter den for et root passwd. og der står den står indtil jeg laver ctr +c eller klikker enter og denlogger ud med forkert password. Kan man ikke i ssh sæte en eller anden option der tester for om der er adgang og bare lugger ssh ned igen hvis ikke. eller alternativt at man sætter et timeout på 5-10 sek hvorefter den automatisk lukker ssh processen ned og forsætter scriptet.
Avatar billede janpo Nybegynder
29. december 2004 - 17:03 #3
Men du ved vel hvilke maskiner der er problematiske, ikke ? Men fred være med det.
Hvad med om du testede returværdien fra din ssh-process ( $? ). Evt . kombineret med en "sleep 5".
Hvis du ikke har en returværdi på 0 efter 5 sekunder, så kill ssh.

Men det virker meget usikkert at tillade root login uden passwd.
Var det ikke noget at bruge PKE istedet ? Du ved med "ssh-keygen -t dsa" på din workstation og så kopiere indholdet af din ~/.ssh/id_dsa.pub ind i root's ~/.ssh/authorized_keys. Så kan du også logge på som root uden kodeord, men kun fra din workstation hvor du har din private DSA nøgle.
Avatar billede havmaage Juniormester
22. december 2009 - 12:46 #4
gammel sag vil du lægge et svar janpo
Avatar billede havmaage Juniormester
22. december 2009 - 14:27 #5
jeg lukker nu skriv til mig for points
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester