Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Software
>
bash script - Probleme, fortgeschritten
bash script - Probleme, fortgeschritten
fluppy
29.01.09
13:59
Hi,
ich habe mir 2 bash-Scripte erstellt, die jeweils ein ssh-Tunnel öffnen auf einem dyndns.
ssh verbindet dabei mittels Schlüsselauthentifizierung, welcher mit Passwort geschützt ist. Ein script öffnet für http, das zweite für samba eine verbindung.
Ich habe lange gegooglelt, jedoch keine Lösung für die folgenden Probleme gefunden:
1. ssh wird mit "sudo ssh ... -l loginname host..." verbunden. Dabei erwartet ssh immer die Passworteingabe. Wenn möglich, würde ich das passwort gern mittels Script eintragen. Geht das mit bash überhaupt?
2. Eigentlich möchte ich zwei ssh-Tunnel direkt nacheinander aufbauen, beide ssh-Verbindungen erwarten dasselbe Passwort. Wie kann ich zwei gleichzeitge Verbindungen in einem Script starten? habe schon "zeile & " probiert, wohl irgendwie falsch...?? Kann ich ein neues bash öffnen und diesem kommandos übergeben?
3. In beiden scripten gibt es teilweise identische Zeilen. Kann man diese in einem "include-Script" auslagern und wie würde man dieses einbinden?
4. Noch besser wäre eine Art miniapplikation mit buttons "connect" und "disconnect" (und ggf. eingabefeld "passwort"), welche jegliche bash kommandos im hintergrund ausführt. Ist das z.b. mit appescript realisierbar? Oder müsste ich dafür Developer Tools bemühen?
Jegliche Hilfestellung würde mir helfen. Danke im Voraus.
Hilfreich?
0
Kommentare
blubblablax
29.01.09
14:07
zu 1.: Passwörter haben in einem Script nichts zu suchen (bitte nicht an die Decke springen, ist gut gemeint).
Abhilfe: "ssh-keygen" aufrufen und Keypaar erstellen lassen. Die auf ".pub" endende Datei gehört auf den Zielrechner unter ".ssh/" des jeweiligen Users mit dem Namen "authorized_keys" (chmod 600 nicht vergessen). Gibt es die "~/.ssh/authorized_keys" bereits, dann einfach die Zeile an die bestehende Datei anhängen.
Nun kann man die SSH passwortlos mit der option "-i keyfile_name" (z.B. -i id_rsa) zur Verbindung bewegen.
„|-o-| <o> |-o-| ...The force is strong with this one...“
Hilfreich?
0
blubblablax
29.01.09
14:08
zu 2.: eigentlich sollte etwas wie
nohup $HOME/scripts/test.sh > $HOME/log/test.log 2>&1 &
an für sich funktionieren.
„|-o-| <o> |-o-| ...The force is strong with this one...“
Hilfreich?
0
blubblablax
29.01.09
14:10
3.:
my script:
#/bin/bash
#
source bla.sh
#
blub "welt"
bla.sh
#/bin/bash
#
function blub()
{
echo "hallo "$1
}
„|-o-| <o> |-o-| ...The force is strong with this one...“
Hilfreich?
0
blubblablax
29.01.09
14:11
4.: Automator könnte eine Möglichkeit sein, ansonsten den AppleScript Editor bemühen. Hint: "do shell script"
„|-o-| <o> |-o-| ...The force is strong with this one...“
Hilfreich?
0
fluppy
30.01.09
07:59
blubblablax danke für die Antworten. Dazu:
Zu 1. Habe Frage wohl ungenau formuliert. Was Du schreibst, hatte ich schon eingerichtet und funktioniert auch. Ich möchte das Passwort per Script übergeben, das wollte ich wissen. Meine ssh-Keys haben einen Passwortschutz, darauf möchte ich nicht verzichten. Das Passwort würde dann an das Script als Paramter übergeben.
Zu 2. Der letzte Teil Deiner Zeile sind für mich leider kryptische Zeichen. Könntest Duu mir genauer erklären, was genau " 2>&1 &" bewirkt?
Hilfreich?
0
fluppy
30.01.09
08:04
Ach und dann habe ich noch eine Frage:
5. Kann ich einen Debian-Web-Server auf "Wake-On-Lan" einstellen? Also dass er sich einschaltet, sobald ein Netzwerkzugriff auf eth0 passiert?
Hilfreich?
0
fluppy
30.01.09
09:05
Zu 5.
Wakeonlan ist ja genial. Funktionierte mit Debian auf Acer Aspire One ohne irgendwelche Konfiguration. Ich kann den AA1-Server einfach mit OSX WakeonLan Tool anschalten!
Hilfreich?
0
fluppy
30.01.09
09:18
Zu 5.
Jetzt würde ich gern, dass WakeOnLan auch über den ssh-Tunnel funktioniert. Bisher wird Option g für wakeonlan benutzt:
ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes
Die folgenden Optionen habe ich:
p Wake on phy activity
u Wake on unicast messages
m Wake on multicast messages
b Wake on broadcast messages
g Wake on MagicPacket(tm)
Am besten wäre es natürlich, wenn der Server bei simplen http-Zugriff aufwachen würde...
Hilfreich?
0
blubblablax
30.01.09
22:36
Ich fange mal hinten an: WakeOnLan (stammt übrigens von AMD) ist wie der Name schon sagt eine LAN-Technologie.
Prinzipiell ist dazu zu wissen, dass WOL ein Paket (verbindungslos) an eine Ethernet-Karte schickt. Dabei ist der Rechner an sich aus, antwortet somit nicht auf die höheren TCP/IP Protokolle. Der Rechner hat im WOL Modus keine gültige IP-Adresse und kann demnach ohne Sonderbedingungen (s.u.) nicht auf Anfragen aus dem Internet antworten. WOL ist ein Layer2-Protokoll, dass Pakete an die Mac-Adresse der Netzwerkkarte schickt.
Sonderbedingung: Es gibt WOL-Dienste als Web-Interface im Internet, die implizit davon ausgehen, dass im Gateway-Router und den Switchen die Mac-Adresse des Zielrechners gepuffert wird. Damit funktioniert WOL aus dem Internet oft aber es ist nicht garantiert und kann prinzipbedingt schiefgehen.
Tipp: Gateway/Server im gleichen Subnetz wie die Zielmaschine mit den WOL-Tools bestücken (ich habe bei mir ein PERL-Script laufen) und darüber die Zielmaschine starten.
Server per HTTP-Zugriff starten ginge theopraktisch auch, wenn der Gateway im Userspace filtern kann (betriebssystemabhängig). So z.B. kann man für ein gering belastetes Privatnetz durchaus bei jedem TCP SYN Paket auch noch ein WOL an den Server schicken lassen.
„|-o-| <o> |-o-| ...The force is strong with this one...“
Hilfreich?
0
blubblablax
30.01.09
22:44
2>&1
Die Shell kennt 3 wesentliche Streams: stdin, stdout und stderr
stdin kann man mit <aha.txt umleiten, stdout per >output.txt und stderr für Fehlermeldungen mit 2>output.txt
2>&1 bedeutet, stderr mit in stdout umzuleiten
„|-o-| <o> |-o-| ...The force is strong with this one...“
Hilfreich?
0
blubblablax
30.01.09
22:49
Ich bezweifele ein wenig den Nutzen von SSH-keys mit Passphrase, wenn letztere mit im Skript steht aber sei es drum.
Für solche Fälle von zentraler SSH-Passwortverwaltung ist der "ssh-agent" vorgesehen. Da ich ihn selbst momentan nicht verwende, kann ich auf die Schnelle auch kein HOWTO zaubern.
„|-o-| <o> |-o-| ...The force is strong with this one...“
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.