Wie reagieren Sie auf Kennwort-Eingabeaufforderung, wenn Sie mit SCP in ein shell-Skript?
Erste von allen, ich bin mir wohl bewusst, dass es viele Fragen zu diesem Thema. Ich habe Sie gelesen, konnte aber immer noch herauszufinden, eine passende Antwort für meine situation.
Möchte ich scp
die gesamte ~/cs###/assign1
dir von der lokalen bis zur Schule home-Verzeichnis ein shell-Skript. Meine Frage ist, gibt es eine Möglichkeit in meinem Skript zu warten, bis der Passwort-Eingabeaufforderung, und dann simulieren, key-board-Veranstaltung zu "Art' in meinem Passwort?
hier ist eine wirklich detaillierte Anleitung, wie Sie den Schlüssel
- Diese Frage klingt genau wie deine situation: stackoverflow.com/questions/50096/how-to-pass-password-to-scp
- Beachten Sie, dass die Antworten auf die vermeintlichen doppelten Frage nicht erwähnt "ssh-keys", wie erwähnt von BZ.
- Ich hatte gehofft, es könne eine Lösung mit nur einfachen shell-oder unix-Befehle.
- Mögliche Duplikate von How to pass Passwort zu scp?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind ssh-keys nicht erlaubt ist? Das wäre eine bessere Lösung.
Verwenden "sshpass"!
sshpass
sieht interessant aus. Arbeiten auf einem system, die nicht funktionieren gut mit SSH-Schlüssel, so wird dies tun. Danke!Ich glaube nicht, können Sie leicht tun. Was Sie kann tun, ist die Verwendung von public-key-Authentifizierung statt.
Etwas entlang diesen Linien
(oder
dsa
).Aber hey, es ist nicht serverfault, ist es? 😉
Betrachten Sie mit den Tasten, oder über eine externe Bibliothek.
Ich glaube nicht, dass es möglich ist, ansonsten (ich hoffe ich bin nicht falsch), wie es erlegt automatische brute-force-intrusion und ausschnüffeln von Passwörtern.
Gibt es Bibliotheken, die das tun können, was Sie wollen (verwenden Sie das SFTP-Protokoll nicht aufrufen, scp), wie libssh.
Wieder, ich empfehle Tasten.
Etwas - http://code.google.com/p/enchanter/ ?
Ich bin damit einverstanden, dass Sie sollten mit den Tasten. Aber erwarten automatisieren, dass der interaktive Aspekt des Prozesses, WENN Sie wollen, zu fest, Ihr Passwort in ein nur-text-Skript-Datei.
Wenn Sie montieren Sie das Verzeichnis von einem Windows-Rechner (z.B. per AFS, NFS oder SMB, die meiner Universität Windows labs alle getan haben), können Sie pscp mit der pw-Schalter.
Warum nicht einfach das "-r" option, um es zu kopieren rekursiv? Oder verwenden Sie rsync statt?
Konnte man auch mit public-key-Authentifizierung, die benötigt keine Hilfe an Ihrem Ende so lange wie Sie eine tatsächliche Benutzer-Konto. Sehen diese
Ihnen nicht sagen, welche Plattform Sie verwenden, zu Hause und in der Schule. Vorausgesetzt, Linux, Cygwin oder OS/X haben Sie mehrere Möglichkeiten:
nicht wurde deaktiviert am server
Für option (1), Sie würde
ssh-keygen, ohne passphrase auf
der private Schlüssel. Beachten Sie, dass das weglassen einer passphrase, ist wahrscheinlich nicht eine gute Idee, wenn auch andere Personen denselben computer verwenden können, aber Ihr Ziel war es, zu bekommen, um mit zu geben das Kennwort ein.
Konto und legen Sie es in
~/.ssh/authorized_keys
option, wo identityfile ist die
vollständigen Pfad zu Ihrem privaten Schlüssel. Oder, einen Eintrag hinzufügen .ssh/config (siehe man pages)
Für die zweite option, ssh-agent ermöglicht es Ihnen, den cache Ihres Passworts in einem lokalen Prozess einmal pro Sitzung. Legen Sie ein Ablaufdatum Zeit
Wie viele schon gesagt haben, dass Sie die Verwendung von ssh-keys, wäre der sicherste und beste Weg.
Wenn jemand sonst noch Fragen rund um und auf der Suche nach Hilfe, in der Ubuntu-Hilfe gibt es eine schnelle und unkomplizierte Weg für die Verwendung von ssh-keys.
Sobald Sie die Einrichtung
ssh-keygen
wie erklärt hier, die Sie tun können,scp -i ~/.ssh/id_rsa /local/path/to/file [email protected]:/path/in/remote/server/
wo
id_rsa
ist der lokale Schlüssel generiert, in derssh-keygen
setup.Wenn Sie möchten, vermindern Sie die Eingabe jeder Zeit, können Sie ändern Ihre
.bash_profile
Datei und legenDann von Ihrem terminal zu tun
source ~/.bash_profile
. Danach, wenn Sieremote_scp
im terminal laufen soll diescp
Befehl ohne Passwort.Fand ich keinen Weg, dies zu tun, die auf unseren Systemen automatisch - ich ssh in einem Gerät, und dann per ssh auf dem nächsten Gerät, und auf beide kann ich nicht installieren jede andere software. Also ich kann nur vorhandene shell-Skript-Befehle. Ich kann entweder alle Dateien kopieren, die von einem Typ mit, wie *.png, oder eins nach dem anderen in meine Skript-Datei, nachdem Sie das Passwort eingeben, das für jede einzelne Datei. Das einzige, was ich Tat, war hilfreich war, geben Sie das Kennwort in eine Datei, schneiden Sie es, und fügen Sie es zu jeder Eingabeaufforderung für jede Datei.