ssh script editieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

ssh script editieren

Beitrag von latenite » 26.03.2008 23:03:22

Hallo ssh Freunde

Ich will mit diesen script mein ssh login automatisieren (auf sshkey usw. habe ich keine Lust).

Nur bin ich zu neu / unwissend was das bashscripting angeht. Wie Ändere ich dieses "template" d.h. wo trage ich meine Daten ein. Ich habe keine Ahnung was "argv bedeutet usw.

Code: Alles auswählen

#!/usr/bin/expect -f
# Expect script to supply root/admin password for remote ssh server 
# and execute command.
# This script needs three argument to(s) connect to remote server:
# password = Password of remote UNIX server, for root user.
# ipaddr = IP Addreess of remote UNIX server, no hostname
# scriptname = Path to remote script which will execute on remote server
# For example:
#  ./sshlogin.exp password 192.168.1.11 who 
# ------------------------------------------------------------------------
# Copyright (c) 2004 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ----------------------------------------------------------------------
# set Variables
set password [lrange $argv 0 0] 
set ipaddr [lrange $argv 1 1]   
set scriptname [lrange $argv 2 2] 
set arg1 [lrange $argv 3 3] 
set timeout -1   
# now connect to remote UNIX box (ipaddr) with given script to execute
spawn ssh root@$ipaddr $scriptname $arg1
match_max 100000
# Look for passwod prompt
expect "*?assword:*"
# Send password aka $password 
send -- "$password\r"
# send blank line (\r) to make sure we get back to gui
send -- "\r"
expect eof
Danke fuer die Muehe

Gern auch einen Link zu nem gutem Tutorial zum Bashscript schreiben.
:wink:

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 26.03.2008 23:54:36

verschoben von Netzwerk

Äh warum willst du das ganze nicht per sshkey machen? Ich versteh dein Problem nicht.

Das vorliegende Skript ist kein Bash Scripting sondern Expect. Was du da nun ändern musst hängt davon ab, was du eigentlich erreichen willst.
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 27.03.2008 00:31:29

ups sorry ich wusste nicht das das nicht bash scrite sind.

Ich will das ein startscript das anmelden via ssh auf meinem fileserver uebernimmt.

Im Grunde möchte ich nur wissne wo ich beutzername, ip und passwort in dem script eintragen muss.

danke schon mal an alles erfahrenen "expec"t leute

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von rendegast » 27.03.2008 00:48:44

Lesen?
# For example:
# ./sshlogin.exp password 192.168.1.11 who
Taucht das Passwort in der Prozeßliste auf?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 27.03.2008 08:04:30

Genau, wie es oben in der Kopfzeile des Skriptes beschrieben steht, werden diese Argumente beim Skript-Aufruf erwartet.

Eventuell könntest du dann den Aufruf des Skriptes mit den Argumenten in ein Shell-Skript verpacken.
Oh, yeah!

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 27.03.2008 08:28:33

oder, wenn du nur einen einzigen Benutzer verwendest einfach per

ssh-keygen

dir ein Schlüsselpaar erzeugen (bei der Frage nach dem Passphrase einfach 2x nichts eingeben) und dann die Dateii

~/.ssh/id_dsa.pub oder wenn du nicht DSA sondern RSA nimmst (kann mehr Bits) ~/.ssh/id_rsa.pub einfach
auf den Zielserver kopieren (per "scp" z.B.) und dort bei dem User, als den du dich dort anmelden willst, ans Ende der authorized_keys hängen..

wenn du z.B. das bei root machen willst, dann logg dich als root ein und mache:

Code: Alles auswählen

cat /pfad/zur/id_dsa.pub >> ~/.ssh/authorized_keys
und schon brauchst du kein Passwort mehr eingeben...
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 27.03.2008 12:40:30

Wobei man sich normalerweise nicht als root direkt anmelden sollte!
Oh, yeah!

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 27.03.2008 18:43:45

Duff hat geschrieben:Wobei man sich normalerweise nicht als root direkt anmelden sollte!
Begründung?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Antworten