Frage

Zunächst einmal bin ich sehr wohl bewusst, dass es viele Fragen zu diesem Thema ist. Ich habe sie gelesen, aber noch konnte eine angemessene Antwort für meine Situation herauszufinden.

Ich möchte die ganze scp dir von der lokalen zur Schule Hauptdir mit einem Shell-Skript ~/cs###/assign1. Meine Frage ist, gibt es eine Möglichkeit, in meinem Skript für die Passwortabfrage zu warten, und dann Tastatur Ereignis simuliert in meinem Passwort ‚Typen‘?


hier ist eine wirklich detaillierte Anleitung, wie man den Schlüssel einzurichten

War es hilfreich?

Lösung

SSH-Schlüssel nicht erlaubt? Das wäre eine bessere Lösung.

Andere Tipps

Verwenden Sie "sshpass"!

#!/bin/bash
sshpass -p "password" scp -r /some/local/path user@example.com:/some/remote/path

Ich glaube nicht, dass Sie leicht tun können. Was Sie können zu tun ist, statt öffentlichen Schlüssel Authentifizierung verwendet wird.

Etwas in diese Richtung

ssh-keygen -t rsa
ssh school mkdir .ssh/
cat ~/.ssh/id_rsa.pub | ssh school "cat >>.ssh/authorized_keys"

(oder dsa).

Aber hey, es ist nicht serverfault, oder? ; -)

Betrachten Schlüssel oder eine externe Bibliothek.

Ich glaube nicht, ist es möglich, sonst (ich hoffe, dass ich nicht falsch liege), wie es die automatische Brute-Force-Intrusion erlegt und Schnüffeln von Passwörtern.

Es gibt Bibliotheken, die tun können, was Sie wollen (das SFTP-Protokoll verwenden, nicht Aufruf scp), wie zum Beispiel libssh .

Auch hier empfehle ich Tasten hoch.

Ich bin damit einverstanden, dass Sie die Schlüssel verwenden sollten. Aber erwarten können den interaktiven Aspekt des Prozesses automatisieren Wenn Sie Ihr Passwort hart codieren möchten in einem Klartext-Skript Datei.

Wenn Sie das Verzeichnis aus einer Windows-Maschine montiert werden können (zB über AFS, NFS oder SMB, die meine Universitätslaboren von Windows alle haben), können Sie pscp mit dem -pw Schalter.

Warum nicht einfach die Option „-r“ rekursiv kopieren? Oder statt rsync benutzen?

Sie können auch Public-Key-Authentifizierung verwenden, die so lange keine Hilfe an ihrem Ende erfordert, wie Sie eine tatsächliche Benutzerkonto verfügen. Siehe dieser

Sie sagen nicht, welche Plattform Sie zu Hause verwenden und in der Schule. Unter der Annahme, Linux, Cygwin oder OS / X haben Sie mehrere Möglichkeiten:

  1. Public-Key-Authentifizierung, wenn es wurde auf dem Server
  2. nicht ausgeschaltet
  3. ssh-agent und ssh-fügen Sie Ihr Passwort eingeben, einmal pro Sitzung

Für Option (1), würden Sie

  1. erzeugt ein Schlüsselpaar zu Hause ssh-keygen, ohne Passwort auf der private Schlüssel. Beachten Sie, dass ein Passwort Weglassen ist wahrscheinlich keine gute Idee, wenn andere Personen denselben Computer verwenden, aber Ihr Ziel war es zu umgehen, in dem Kennwort eingeben zu müssen.
  2. laden Sie die öffentlichen Schlüssel zur Schule Konto und legen Sie sie in ~ / .Ssh / authorized_keys
  3. Verwenden Sie scp mit dem "-i Identity" Option, wo Identity ist die vollständiger Pfad zu Ihrem privaten Schlüssel. Oder fügen Sie einen Eintrag .ssh / config (siehe die Manpages)

Für die zweite Option, ssh-agent können Sie Ihr Passwort in einem lokalen Prozess einmal pro Sitzung cachen. Sie legen eine Ablaufzeit

Wie viele haben bereits gesagt, dass SSH-Schlüssel verwenden wäre die sicherste und beste Art und Weise. Wenn jemand anderes noch fragen, um und auf der Suche nach Hilfe, in Ubuntu Hilfe ein schnelle und gerade nach vorn Weg sSH-Schlüssel zu verwenden.

Wenn Sie einrichten ssh-keygen wie erklärt hier , können Sie

scp -i ~/.ssh/id_rsa /local/path/to/file remote@ip.com:/path/in/remote/server/

wo id_rsa ist der lokale Schlüssel in der ssh-keygen Setup generiert.

Wenn Sie jedes Mal verringern wollen eingeben, können Sie Ihre .bash_profile Datei ändern und setzen

alias remote_scp='scp -i ~/.ssh/id_rsa /local/path/to/file remote@ip.com:/path/in/remote/server/

Dann von Ihrem Terminal tun source ~/.bash_profile. Danach, wenn Sie in Ihrem Terminal eingeben remote_scp sollte es den scp Befehl ohne Passwort ausgeführt werden.

fand ich keine Möglichkeit, diese automatisch in unseren Systemen zu tun - ich ssh in einem Gerät und dann an das nächste Gerät ssh, und auf beide, ich kann eine andere Software nicht installieren. So kann ich nur vorhandene Shell-Skript-Befehle verwenden. Ich kann entweder kopieren Sie alle Dateien eines Typs mit, wie * .png, oder einer nach dem anderen in meinem Skript-Datei, mit dem Kennwort für jede einzelne Datei einzugeben. Das einzige, was ich tat, war hilfreich war das Passwort in eine Datei zu schreiben, schneiden Sie es, und in der Lage sein, es für jede Datei in jeder Eingabeaufforderung einzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top