oiooiooioiioooiioiioiooo
Goto Top

SSH Login mit hilfe von einem Bash Script

Hallo,

ich versuche einen Script zu schreiben, kit welchem ich mich auf verschiedenen Servern einloggen kann ohne mich ständig an die IP Adressen erinnern zu müssen.

Bei diesem Beispiel handelt es sich um eine Firewall.

# su ssh-benutzer -c "ssh -l root 10.10.10.1" 
Passwort: 
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
^C
Sitzung beendet, Shell wird abgewürgt … … abgewürgt.

Mein Problem ist, dass ich jedes mal von dem Server ausgesperrt werde. Das heisst es werden falsche Anmeldedaten übermittelt werden.

Kennt jemand das Problem und was könnte dazu die Ursache sein?

Viele Grüße

Ich

Content-Key: 477958

Url: https://administrator.de/contentid/477958

Printed on: April 19, 2024 at 08:04 o'clock

Member: it-fraggle
it-fraggle Jul 27, 2019 at 06:46:43 (UTC)
Goto Top
ohne mich ständig an die IP Adressen erinnern zu müssen
Dafür gibt es Nameserver oder du verwendest deine hosts-Datei.
Mitglied: 140447
140447 Jul 27, 2019 updated at 07:29:52 (UTC)
Goto Top
Ein Remote root Login mit Passwort?? Wie naiv kann man nur sein?! Remote Root-Login sollte wenn möglich immer gesperrt sein und alle anderen Konten bestenfalls über SSH-Keys abgesichert werden, wer das immer noch nicht kapiert hat den sollte man 1 Monat mit Light-Bier in den Keller sperren.
Wie schon gesagt wurde wofür gibt's wohl DNS Server? Genau: Namen zu IP-Adressauflösung ist deren Hauptaufgabe.
Viele Grüße
Ich
Gruß Er
Member: stefanbr
stefanbr Jul 27, 2019 at 07:43:02 (UTC)
Goto Top
Hi,

schwer vorstellbar, dass man sich an einem SSH Server direkt als root anmelden kann, aber das nur am Rande.

Das hier solltest möglicherweise aber vorher erst noch regeln, die Fehlermeldung spricht ja für sich:
"ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory"
Member: maretz
maretz Jul 27, 2019 at 08:16:27 (UTC)
Goto Top
Ok - und wer so sinnlose Sachen schreibt sollte ggf. einen Monat mal ganz ohne Bier ausprobieren...
Steht hier IRGENDWAS von der Umgebung? Und die Verwendung von einer 10.10.10.x-IP deutet ja schon mal auf eine INTERNE Nutzung hin. So, was ist wenn der Zugriff auf das gesamte Subnetz da eh nur ausm Admin-Netz möglich ist? Und wo steht das es sich um nen LINUX-Server handelt und nicht z.B. um nen Switch bei dem man aus Bequemlichkeit auch den User "root" genommen hat, der da aber eben nur login-rechte und keine Schreibrechte hat?!?

Also - weniger Bier und nur weil man die Worte "ssh" und "root" sieht nicht gleich meinen das es unbedingt schlecht sein muss... Es kann auch andere Möglichkeiten zur Absicherung geben - und selbst bei SSH-Login kann man locker einstellen das sich eben User nur von bestimmten IPs anmelden können. Und wenn sich auf meinem Server root nur von genau MEINER Station überhaupt anmelden darf - wo ist das Problem mitm direkten Login? Und komm jetzt nich mit dem üblichen Viren-Kram, nen Keylogger würde eben auch meinen Userkey bzw. User-PW mitnehmen und hätte danach auch alles...
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 27, 2019 at 08:25:46 (UTC)
Goto Top
Morgen,

vielen Dank für eure Zahlreiche Reaktionen.

Dafür gibt es Nameserver oder du verwendest deine hosts-Datei.

Es sind wirklich nicht wenig, Ich frage Sie jetzt mal. wissen Sie ob es in meine Landschaft eine Chantal steht und welche Dienste diese anbietet?

Remote Root-Login sollte wenn möglich immer gesperrt sein und alle anderen Konten bestenfalls über SSH-Keys abgesichert werden,

schwer vorstellbar, dass man sich an einem SSH Server direkt als root anmelden kann, aber das nur am Rande.

Es handelt sich um einen lokalen Netzwerk.

Gehen wir mal davon aus. Sie haben trotzdem Recht. Denn von eine VPN Verbindung aus, kann man unter Umständen auf einen Server zugreifen. Trotzdem folgende Situation. Sie sitzen in einem Zug und arbeiten an einem wichtigem und dringendem Projekt. Da Sie jedoch bereits seit 24 Stunden unterwegs sind fallen Ihnen die Augen zu. Ihr Gegenüber bemerkt dies und steckt seinen USB Stik in Ihr Laptop und kopiert den Schlüssel.

Und jetzt zur der Eingabe eines Passworts. Nach drei Versuchen wird der Zugang zum Server für eine Stunde komplett blockiert. Wie lange braucht man da um mit eine Brute Force Attacke das Password heraus zu finden? Lassen wir einfachheitshalber das Passwort sechs Stellen mit nur klein, groß Buchstaben und Zahlen sein.

Das hier solltest möglicherweise aber vorher erst noch regeln, die Fehlermeldung spricht ja für sich:

Die Fehlermeldung tritt nur auf, wenn ich mich mit su von anderem Benutzer aus einloggen möchte. Gebe ich zur dem Benutzer einen falschen Passwort ein, gibt es eine Rückmeldung "su: Fehler bei Authentifizierung" Wird der richtige Password eingegeben, so erfolgt keine weitere Passwortabfrage zur der SSH-Verbindung sondern wird der oben genannte Fehler ausgegeben.

Viele Grüße

Ich

P.S.:

wer das immer noch nicht kapiert hat den sollte man 1 Monat mit Light-Bier in den Keller sperren.

Ich trinke kein Alkohol.
Member: maretz
maretz Jul 27, 2019 at 08:34:22 (UTC)
Goto Top
Was ich überlegen würde - wenn die Option besteht - unter den Usern die .ssh/config zu nutzen und da einfach die entsprechenden Parameter eingeben. Das geht vom einfachen
Host <derNameDenDuWillst>
Hostname <die IP deines Hosts>

bis hin dazu das du noch Parameter angeben kannst - z.B.
User : Der Benutzer den du zum login nutzen willst
Forwards kannst du hier auch angeben um Forward oder Reverse-Tunnel gleich mit zu öffnen

Da kannst du dann halt einfach das entsprechende vorbeireiten - z.B.
ssh Kunde17_HTTPServer123
würde dich dann immer direkt draufwerfen bzw. erst nen
ssh Kunde17_Jumphost
der dir die div. Tunnel aufbaut und dann
ssh_Kunde17_Tunnel_Httpserver
und schon gehst du durch die Tunnel durch...

Und ganz ehrlich - welchen USER du da verwendest ist relativ egal, ich denke die Sicherheit des Server sollte nicht davon abhängen ob sich root nun anmelden kann oder nicht (das ist nur ein ZUSATZ)...
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 27, 2019 at 08:47:10 (UTC)
Goto Top
Guten Tag maretz,

ja das ist wirklich ein sehr cooles Werkzeug.

https://wiki.ubuntuusers.de/SSH/

Habe ich versucht umzusetzen. Funktioniert auch wie auf der oben genannten Seite

ssh test1 

Jedoch spuckt es mir den gleichen Fehler aus, wenn ich meine Zeile eingebe.

su ssh-benutzer -c "ssh test1"  


Die Datei selbst unter /usr/lib/ssh/ssh-askpass ist nicht existent. Wenn ich diese erstelle, dann kommt:

"ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): Permission denied"

Das gleiche auch, wenn ich den Benutzer und Besitzer als SSH-Benutzer eintrage.

Viele Grüße

Ich
Member: maretz
maretz Jul 27, 2019 at 08:53:38 (UTC)
Goto Top
darf der Benutzer den du unter su angibst (also "ssh-benutzer") denn die Datei AUSFÜHREN? is ja schön wenn dein aktueller Benutzer das darf, aber du machst ja nen switch-user (su) und bist für den Zeitraum jemand anders. Blöd wenn DER das nich darf...
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 27, 2019 at 09:13:50 (UTC)
Goto Top
also

ssh -l root 10.10.10.1

funktioniert

ssh test1

funktioniert

su ich -c "ssh test1"  

funktiniert nicht

su ssh-benutzer -c "ssh test1"  

funktioniert auch nicht.

Was auch interessant ist, ist folgende Konstulation, welche leider auch nicht funktioniert.

su ich -c "ssh -l ich 127.0.0.1"  

Ach ja benutzt wird "Linux 4.19.56-1-MANJARO"

Viele Grüße

Ich
Member: fredmy
fredmy Jul 27, 2019 at 11:33:08 (UTC)
Goto Top
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:


ssh test1

funktioniert

su ich -c "ssh test1"  

funktiniert nicht

vermutlich darf "ich" keinen ssh-Tunnel zu test1 aufbauen
Geht denn ?
su  ich

ssh test1
IIRR werden pro user ssh-Keys ausgehandelt bzw. vorhandene übergeben und dürfen muß der betreffende User auch.
Bei Shellaufrufen sollte ein permanenter Key da sein... ähnlich wie bei z.B. "Rsync über ssh", wonach du gern deine Lieblingssuchmaschine gefragen darfst. Oder rsnapshot ...
Sind gern Shellaufrufe als Cronjob - und sollte dann auch so gehen face-wink

Fred
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 29, 2019 at 07:22:30 (UTC)
Goto Top
Guten Tag,

ich ist mein der Benutzer mit dem ich am GUI angemeldet bin face-smile

und ja

<coder># su ich
  1. ssh test1

geht.

Nein die Abfragen mache ich in der Konsole derzeit noch ohne einen Script um den Fehler zu finden.

Ich hab etwas ausprobiert. Ich habe mal folgende Zeile ausprobiert.

su root -c "ssh -l root 10.10.10.1"  

und siehe da es funktioniert.

Jetzt mal eine Frage. Wenn der den ssh-Tunnel nicht aufbauen kann, warum registriert dann die Firewall einen Angriff und sperrt den Klienten?

Auch abe ich die gleiche Zeile auf einem VM Server ausprobiert. die Ausgabe ist ähnlich.

ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
Permission denied, please try again.
root@10.10.10.3: Permission denied(publickey,gssapi-keyex,assapi-with-mic,password).

Auch wenn ich das Passwort von dem ssh-Benutzer oder ich gleich mit root setze habe ich nach wie vor die gleiche Ausgabe.

Viele Grüße

Ich
Member: maretz
maretz Jul 29, 2019 at 16:41:09 (UTC)
Goto Top
warum registriert die Firewall nen Angriff - keine Ahnung welche das ist... z.B. gibt es sowas wie BAN-IP die einfach nach x erfolglosen Versuchen (und X kann auch 1 sein) die IP einfach mal sperren....
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 30, 2019 at 09:42:57 (UTC)
Goto Top
Guten Tag,

das ist verständlich.

Die Frage ist was genau verhindert, die Übergabe des ordentlichen Befehls mit SSH-Verbindung aufzubauen?

Ist es ein BUG, ist es so gewollt, oder geht es einfach technisch nicht?

Viele Grüße

Ich
Mitglied: 140447
140447 Jul 30, 2019 updated at 10:14:09 (UTC)
Goto Top
sudo pacman -S sshpass
sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no YOUR_USERNAME@SOME_SITE.COM  
https://linux.die.net/man/1/sshpass
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 30, 2019 at 11:28:01 (UTC)
Goto Top
Guten Tag,

herzlichen Dank für Ihren Vorschlag.

die nachfolgende Zeile Funktioniert tatsächlich.

$ su ssh-benutzer -c "sshpass -p "MEIN_PASSWORT" ssh -l root 10.10.10.3"  

Aber ich wollte die Passwörter nicht irgend wo hinterlegen. Diese befinden sich alle bei mir im Kopf.

Vielleicht sollte man bei den Rechten suchen? Wenn root die von mir angegebene Zeile akzeptiert, aber ein Sudo-Benutzer nicht. Was könnte da das Problem sein?

Viele Grüße

Ich
Member: fredmy
fredmy Jul 30, 2019 at 14:36:31 (UTC)
Goto Top
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:


Vielleicht sollte man bei den Rechten suchen? Wenn root die von mir angegebene Zeile akzeptiert, aber ein Sudo-Benutzer nicht. Was könnte da das Problem sein?


/etc/sudoers nicht angepaßt ?

Fred
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 30, 2019 at 14:47:03 (UTC)
Goto Top
Guten Tag,

nein.

Was genau sollte ich dort eintragen?

Verzeihen Sie bitte.

Viele Grüße

Ich
Mitglied: 140447
140447 Jul 30, 2019 updated at 15:42:35 (UTC)
Goto Top
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:

Guten Tag,

herzlichen Dank für Ihren Vorschlag.

die nachfolgende Zeile Funktioniert tatsächlich.

$ su ssh-benutzer -c "sshpass -p "MEIN_PASSWORT" ssh -l root 10.10.10.3"  

Aber ich wollte die Passwörter nicht irgend wo hinterlegen. Diese befinden sich alle bei mir im Kopf.
Öhm nö musst du nicht du kannst das PW genauso per read einlesen.

Btw. Wieso öffnest du eine Shell mit einem anderen User um eine SSH Session aufzumachen??? Völlig überflüssig. Scheint als ob du das Prinzip nicht so ganz verstanden hast.

ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
BTW. Die Meldung besagt das dir das genannte Package fehlt. Also installiere es nach und alles wird gut.
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 30, 2019 at 16:47:16 (UTC)
Goto Top
Guten Tag,

Öhm nö musst du nicht du kannst das PW genauso per read einlesen.

Wie geht das bitte?

Btw. Wieso öffnest du eine Shell mit einem anderen User um eine SSH Session aufzumachen??? Völlig überflüssig. Scheint als ob du das Prinzip nicht so ganz verstanden hast.

Ich möchte einen Benutzer erstellen welcher auf SSH zugreifen kann der andere soll dies nicht nutzen dürfen. Das ist mein Plan. Sie können mir natürlich sagen, dass es keinen Sinn macht, über ein Paar Argumente wäre ich Ihnen sehr Dankbar.

BTW. Die Meldung besagt das dir das genannte Package fehlt. Also installiere es nach und alles wird gut.

Da ich derzeit nur CentOS vor mir habe, habe ich mit

yum install openssh-askpass

askpass installiert, und nun öffnet sich ein Fenster zum Eingeben des Passworts.

Viele Grüße

Ich
Mitglied: 140447
140447 Jul 30, 2019 updated at 16:53:13 (UTC)
Goto Top
https://www.tutorialkart.com/bash-shell-scripting/bash-read-username-and ...

Dan lieber gleich LDAP Auth und in der FW entsprechend Ports für User reglementieren.
Member: fredmy
fredmy Jul 31, 2019 at 06:11:15 (UTC)
Goto Top
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:

Was genau sollte ich dort eintragen?

siehe
man  sudoers

und wie immer: es gibt viele Suchergebnisse dazu im Netz.
Es mag sein daß die nicht 100% auf das persönliche Problem passen, aber wenn man es verstanden hat, wie das läuft.

Und komisch...ich kireh´ge immer ne Passwortabfrage, es wird nur etwas "aufwendiger" wenn genau diese Abfrage nicht stattfinden soll, wegen automatischer Arbeit im Hintergund (aufwendiger hier - Zertifikate statt pw )


Fred
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Jul 31, 2019 at 07:34:55 (UTC)
Goto Top
Guten Tag,

Dan lieber gleich LDAP Auth und in der FW entsprechend Ports für User reglementieren.

Vielen Dank. Da ich mich mit LDAP noch nie beschäftigt hab, ist es mir nicht in den Sinn gekommen, dass dafür anwenden zu können. Ich werde mir Ihren Link angucken danke dafür.

und wie immer: es gibt viele Suchergebnisse dazu im Netz.
Es mag sein daß die nicht 100% auf das persönliche Problem passen, aber wenn man es verstanden hat, wie das läuft.

Leider ist mein Englisch etwas sehr dürftig. Aber dank Ihren Hinweis, habe ich eine Seite für mich zum lesen gefunden.

https://www.opennet.ru/man.shtml?topic=sudoers&category=5&russia ...

Frage mich gerade warum ich hier auf der Seite eine Frage gestellt habe, denn schliesslich gibt es ja genug Informationen im Internet.

Und komisch...ich kireh´ge immer ne Passwortabfrage, es wird nur etwas "aufwendiger" wenn genau diese Abfrage nicht stattfinden soll, wegen automatischer Arbeit im Hintergund (aufwendiger hier - Zertifikate statt pw )

Ich hab es jetzt mit drei verschiedenen Distributionen ausprobiert. Überall ähnlich Ausgabe / Ergebnis.

Geben Sie die Zeile genau so ein wie ich diese eingebe? Haben Sie auch das askpass Paket installiert? Oder haben Sie etwas anderes drauf?

Viele Grüße

Ich