expect mit variablen
-
- Beiträge: 22
- Registriert: 10.02.2007 09:39:14
expect mit variablen
Hallo zusammen!
Ich hab mir vor kurzem ein skript geschrieben mit dem datein von einem server zum anderen kopiert werden.
Hab dies mittels scp gemacht. Damit ich das Passwort nicht eingeben muss hab ich mich entschlossen das
ganze mit expect zu machen.
Nur leider kann ich nun irgendwie keine Variabeln mehr übergeben.
Das heist ich muss mein eigentliches copierskript statt mit sh skriptname
mit expect skriptname aufrufen. Doch dann mekert er bei jeder Variable
die ich einfüge.
Was kann man denn dagegen tun?
Ich hab mir vor kurzem ein skript geschrieben mit dem datein von einem server zum anderen kopiert werden.
Hab dies mittels scp gemacht. Damit ich das Passwort nicht eingeben muss hab ich mich entschlossen das
ganze mit expect zu machen.
Nur leider kann ich nun irgendwie keine Variabeln mehr übergeben.
Das heist ich muss mein eigentliches copierskript statt mit sh skriptname
mit expect skriptname aufrufen. Doch dann mekert er bei jeder Variable
die ich einfüge.
Was kann man denn dagegen tun?
Willkommen im Forum!
Dann gibt es auch noch diverse Pakete, wie z.B "sshpass", die im Prinzip das gleiche ermöglichen, wie "expect" nur eben speziell für ssh zugeschnitten und dadurch einfacher und besser dieses Problem lösen.
Gruß
gms
Ist dieser Entschluß unumstößlich ? SSH bringt ja selber einige Möglichkeiten mit. Wenn du den SSH-Agent verwendest, brauchst du die Passphrase nur einmalig eingeben. Wenn das auch noch "zu oft" ist, kannst du dir auch eine Key ohne Passphrase erstellen.Matthias27061985 hat geschrieben: Damit ich das Passwort nicht eingeben muss hab ich mich entschlossen das
ganze mit expect zu machen.
Dann gibt es auch noch diverse Pakete, wie z.B "sshpass", die im Prinzip das gleiche ermöglichen, wie "expect" nur eben speziell für ssh zugeschnitten und dadurch einfacher und besser dieses Problem lösen.
Code: Alles auswählen
sshpass -p passwort scriptname [args..]
gms
-
- Beiträge: 22
- Registriert: 10.02.2007 09:39:14
danke für die Schnelle Antwort schon mal.
Nur irgendwie kann ich das paket sshpass nicht installieren.
Das braucht eine neue Version von der libc
und die ist unstable und ich hab aber die stable version drauf.
Wenn ich die dann installieren will gibt das nich...
gibt es eine andere möglichkeit sshpass zu installieren?
Nur irgendwie kann ich das paket sshpass nicht installieren.
Das braucht eine neue Version von der libc
und die ist unstable und ich hab aber die stable version drauf.
Wenn ich die dann installieren will gibt das nich...
gibt es eine andere möglichkeit sshpass zu installieren?
sshpass gibts nur in Etch/Testing bzw Sid/Unstable, aber dieses Paket kannst du leicht selber bauen:
Vorbereitung:
das Programm ohne Umweg über Debianpaket erzeugen:
ein Debianpaket erzeugen und anschließend installieren:
Gruß
gms
Vorbereitung:
Code: Alles auswählen
root@gms4:~/tmp# apt-get install gcc libc6-dev
root@gms4:~/tmp# wget http://ftp.debian.org/debian/pool/main/s/sshpass/sshpass_1.00.orig.tar.gz
root@gms4:~/tmp# wget http://ftp.debian.org/debian/pool/main/s/sshpass/sshpass_1.00-2.diff.gz
root@gms4:~/tmp# wget http://ftp.debian.org/debian/pool/main/s/sshpass/sshpass_1.00-2.dsc
root@gms4:~/tmp# tar -xzvf sshpass_1.00.orig.tar.gz
root@gms4:~/tmp# cd sshpass-1.00/
root@gms4:~/tmp/sshpass-1.00# zcat ../sshpass_1.00-2.diff.gz | patch -p1
Code: Alles auswählen
root@gms4:~/tmp/sshpass-1.00# ./configure
root@gms4:~/tmp/sshpass-1.00# make
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c main.c
gcc -g -O2 -o sshpass main.o
root@gms4:~/tmp/sshpass-1.00# ./sshpass -V
sshpass 1.00 (C) 2006 Lingnu Open Source Consulting Ltd.
This program is free software, and can be distributed under the terms of the GPL
See the COPYING file for more information.
Code: Alles auswählen
root@gms4:~/tmp/sshpass-1.00# chmod +x debian/rules
root@gms4:~/tmp/sshpass-1.00# dpkg-buildpackage -rfakeroot -us -uc
root@gms4:~/tmp/sshpass-1.00# cd ..
root@gms4:~/tmp# dpkg -i sshpass_1.00-2_i386.deb
gms
-
- Beiträge: 22
- Registriert: 10.02.2007 09:39:14
Ich hab das mal ausprobiert.
nur leider kommt nachwievor:
davor wollte ich das lib-paket installieren, da kam die Meldung:
nur leider kommt nachwievor:
Code: Alles auswählen
root:/# dpkg -i sshpass_1.00-2_i386.deb
Wähle vormals abgewähltes Paket sshpass.
(Lese Datenbank ... 113207 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke sshpass (aus sshpass_1.00-2_i386.deb) ...
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von sshpass:
sshpass hängt ab von libc6 (>= 2.3.6-6); aber:
Version von libc6 auf dem System ist 2.3.2.ds1-22sarge4.
dpkg: Fehler beim Bearbeiten von sshpass (--install):
Abhängigkeitsprobleme - lasse es unkonfiguriert
Fehler traten auf beim Bearbeiten von:
sshpass
Code: Alles auswählen
root:/# apt-get install gcc libc6-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
gcc ist schon die neueste Version.
libc6-dev ist schon die neueste Version.
Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren:
Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
sshpass: Hängt ab: libc6 (>= 2.3.6-6) aber 2.3.2.ds1-22sarge4 soll installiert werden
E: Nichterfüllte Abhängigkeiten. Versuchen Sie »apt-get -f install« ohne jeglich Pakete (oder geben Sie eine Lösung an).
auf die Abhängigkeit habe ich jetzt vergessen,
Du mußt die Datei "debian/control" im Verzeichnis "ssh-pass-1.00" verändern und
folgende Zeile:
durch diese Zeile ersetzen
(achte aber bitte darauf, daß du sonst keine Änderungen, wie z.B Leerzeilen o.ä hineinbringst)
danach nochmals das Paket mit dem Kommando "dpkg-buildpackage -rfakeroot -us -uc" bauen
Du mußt die Datei "debian/control" im Verzeichnis "ssh-pass-1.00" verändern und
folgende Zeile:
Code: Alles auswählen
Depends: ${shlibs:Depends}, ssh
Code: Alles auswählen
Depends: libc6 (>= 2.3.2), ssh
danach nochmals das Paket mit dem Kommando "dpkg-buildpackage -rfakeroot -us -uc" bauen
-
- Beiträge: 22
- Registriert: 10.02.2007 09:39:14
hmm, ich hab das nun geändert und wolllte das neue packet erstellen, nun macht er es aber nicht mehr...
liegt das an der änderung von der datei?
Code: Alles auswählen
root:~/sshpass-1.00# dpkg-buildpackage -rfakeroot -us -uc
dpkg-buildpackage: source package is sshpass
dpkg-buildpackage: source version is 1.00-2
dpkg-buildpackage: source maintainer is Shachar Shemesh <shachar@debian.org>
dpkg-buildpackage: host architecture is i386
dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 4.0.0) autotools-dev
dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: (Use -d flag to override.)
-
- Beiträge: 22
- Registriert: 10.02.2007 09:39:14
was ist noPaste?
Code: Alles auswählen
Source: sshpass
Section: utils
Priority: extra
Maintainer: Shachar Shemesh <shachar@debian.org>
Build-Depends: debhelper (>= 4.0.0), autotools-dev
Standards-Version: 3.7.2
Package: sshpass
Architecture: any
Depends: libc6 (>= 2.3.2), ssh
Description: Non-interactive ssh password authentication
SSH's (secure shell) most common authentication mode is called "interactive
keyboard password authentication", so called both because it is typically
done via keyboard, and because openssh takes active measures to make sure
that the password is, indeed, typed interactively by the keyboard. Sometimes,
however, it is necessary to fool ssh into accepting an interactive password
non-interactively. This is where sshpass comes in.
.
SECURITY NOTE: There is a reason openssh insists that passwords be typed
interactively. Passwords are harder to store securely and to pass around
securely between programs. If you have not looked into solving your needs
using SSH's "public key authentication", perhaps in conjunction with the ssh
agent (RTFM ssh-add), please do so before being tempted into using this
package.
Source: sshpass
Section: utils
Priority: extra
Maintainer: Shachar Shemesh <shachar@debian.org>
Build-Depends: debhelper (>= 4.0.0), autotools-dev
Standards-Version: 3.7.2
Package: sshpass
Architecture: any
Depends: libc6 (>= 2.3.2), ssh
Description: Non-interactive ssh password authentication
SSH's (secure shell) most common authentication mode is called "interactive
keyboard password authentication", so called both because it is typically
done via keyboard, and because openssh takes active measures to make sure
that the password is, indeed, typed interactively by the keyboard. Sometimes,
however, it is necessary to fool ssh into accepting an interactive password
non-interactively. This is where sshpass comes in.
.
SECURITY NOTE: There is a reason openssh insists that passwords be typed
interactively. Passwords are harder to store securely and to pass around
securely between programs. If you have not looked into solving your needs
using SSH's "public key authentication", perhaps in conjunction with the ssh
agent (RTFM ssh-add), please do so before being tempted into using this
package.
http://nopaste.debianforum.de/Matthias27061985 hat geschrieben:was ist noPaste?
Punkt 4 der wichtigen Hinweise, die Du dir vor dem schreiben eines Beitrages durchgelesen hast.
MfG GoKi
:wq
:wq