GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Benutzername und Passwort in der Befehlszeile mit sshfs

'sshfs password' leiten mit <<< bis -o password_stdin funktioniert auf bash:

sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'

Laut Handbuch gibt es eine Option -o password_stdin was es ermöglichen könnte, das Passwort von der Standardeingabe zu lesen, was wahrscheinlich eine Umleitung sein kann. Ich habe es nie benutzt, also spekuliere ich.

Allerdings rate ich dringend von einer solchen Lösung ab, die von Natur aus unsicher ist.

ssh funktioniert sehr gut mit einem System privater/öffentlicher Schlüssel. Es ist einfach und sicher. Es ist nicht erforderlich, ein Passwort einzugeben oder es in Klartext in ein Shell-Skript zu schreiben. Drücken Sie einfach Ihren öffentlichen Schlüssel auf den Server und Sie können sich sofort verbinden.


-o password_stdin scheinen nicht auf allen Systemen zu funktionieren, zum Beispiel freeBSD. usw.

Sie können auch expect verwenden Interpreter, es sollte mit sshfs funktionieren und sollte den Trick machen.

Eine andere Lösung wäre sshpass , sagen wir zum Beispiel, Sie sichern das Verzeichnis /var/www

Sichern:

name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www

Hochladen der Sicherungsdatei auf den Sicherungsserver

sshpass -p "your_password" scp -r [email protected]_ip:/home/ /backup/$name

Es wird also ein Verzeichnis mit der heutigen Sicherung hochgeladen

Aber Dennoch, wie oben gesagt wurde, wäre der beste (sichere und einfache) Weg, ein SSH-Schlüsselpaar zu verwenden
Die einzige Unannehmlichkeit wäre, dass Sie den Schlüsselgenerierungsprozess einmal auf jedem Server durchlaufen müssen, den Sie koppeln müssen, aber es ist besser, als ein Passwort im Klartextformat auf allen Servern zu behalten, die Sie sichern möchten :),

Ein Schlüsselpaar richtig generieren

  • Auf lokalem Server

    ssh-keygen -t rsa
    
  • Auf Remote-Server

    ssh [email protected]_servers_ip "mkdir -p .ssh"
    
  • Hochladen von generierten öffentlichen Schlüsseln auf den Remote-Server

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
    
  • Berechtigungen auf Remote-Server festlegen

    ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
    
  • Einloggen

    ssh [email protected]_servers_ip
    
  • SSH-Protokoll v2 aktivieren

    entkommentieren Sie „Protokoll 2“ in /etc/ssh/sshd_config

  • Aktivieren der Public-Key-Autorisierung in sshd

    Entkommentieren Sie "PubkeyAuthentication yes" in /etc/ssh/sshd_config

  • Wenn StrictModes in /etc/ssh/sshd_config auf yes gesetzt ist, dann

    restorecon -Rv ~/.ssh
    

Linux
  1. Kopieren und Einfügen in der Linux-Befehlszeile mit xclip

  2. SSH-Passwortautomatisierung in Linux mit sshpass

  3. So verbinden Sie sich mit plink und cmd und öffentlichem Schlüssel mit dem SSH-Server

  4. Oring mit True in einem Befehl über SSH?

  5. So installieren und verwenden Sie das Mosh Command Line Tool Linux

Verwalten Sie lokale Konten mit den Befehlen Useradd und Usermod

Was ist ein SSH-Befehl und wie wird SSH verwendet, um eine Verbindung zum Remote-Server herzustellen?

So übergeben Sie das Passwort an den SSH-Befehl in Linux

SSH-Tunneling und Proxying

So überwachen Sie den Zustand von Linux-Servern mit Befehlszeilentools

Grundlagen der Linux-Befehlszeile – Arbeiten mit Dateien und Verzeichnissen