Wie kann ich in SSH zu meinem lokalen System wechseln?

129

Ich ging sshin das Verzeichnis meines Webhosts und tarlud die Webapp herunter. Wenn ich mvnach ~/mydirectory/backupsoder versuche /home/mydirectory/backups, definiert es das "Zuhause" als meine Wurzel auf dem Webhost, in den ich eingebunden bin.

Wie kann ich in ssh auf ein lokales Laufwerk übertragen, während ich mich noch im System des Webhosts befinde?

JeanSibelius
quelle
Über welches Betriebssystem verbinden Sie sich?
Zoredache

Antworten:

181

Das Wichtigste zuerst: Mit ssh können Sie sich remote bei einem anderen Computer anmelden. Die Shell (Kommandozeile), die Sie nach ssh erhalten, ist (so ziemlich) die gleiche, als hätten Sie ein xterm auf dem entfernten Rechner geöffnet. If bietet keine solche Möglichkeit, Dateien zu verschieben.

Die Tatsache, dass der Remotecomputer ssh-Verbindungen akzeptiert, bietet Ihnen jedoch einige Optionen zum Austauschen von Dateien:

Scp verwenden Um von Ihrem lokalen Computer auf die Fernbedienung zu kopieren, geben Sie Folgendes in den lokalen Computer ein:

scp /tmp/file [email protected]:/home/name/dir

(wobei / tmp / file durch eine beliebige lokale Datei und / home / name / dir durch ein beliebiges entferntes Verzeichnis ersetzt werden kann)

Geben Sie zum Kopieren vom Remotecomputer auf den lokalen Computer Folgendes ein:

scp [email protected]:/home/name/dir/file /tmp

Use sshfs Dies ist etwas fortgeschrittener, aber viel, viel schöner (wenn die Internetverbindung beider Computer gut ist. Wenn nicht, bleibe bei scp)

Sie können ein Verzeichnis vom Remotecomputer mit einem (leeren) Verzeichnis des lokalen Computers "verknüpfen". Angenommen, Sie "verknüpfen" das Verzeichnis / some / remote / vom Remotecomputer mit / home / youruser / remotecomp auf Ihrem Computer. Befindet sich auf dem Remote-Computer eine Datei / some / remote / dir / file, können Sie diese unter / home / youruser / remotecomp / file anzeigen. Sie können wie gewohnt kopieren und mv, und Sie können sogar entfernte Dateien und Verzeichnisse ändern.

Beachten Sie jedoch, dass / home / youruser / remotecomp nach dem Beenden der Verbindung wieder ein leeres Verzeichnis wird und Sie nur die Dateien auf dem lokalen Computer behalten, die Sie in andere Verzeichnisse kopiert haben

Um das zu erreichen:

1) installiere sshfs:

sudo apt-get install sshfs

2) Erstellen Sie ein leeres Verzeichnis

mkdir /home/youruser/remotecomp

3) "verbinde" die beiden Verzeichnisse (der richtige Begriff ist mount)

sshfs [email protected]:/some/remote/dir /home/youruser/remotecomp

4) Viel Spaß

5) "Verknüpfung" der Verzeichnisse aufheben

fusermount -u /home/youruser/remotecomp

Wenn auf dem lokalen Computer Windows ausgeführt wird Sie können Versionen von scpfür Windows finden. Siehe zB winscp

josinalvo
quelle
Gibt es eine Möglichkeit, die Datei vom Remote-Computer über "Terminal auf dem Remote-Computer" auf den lokalen Computer zu kopieren? In Ihrem Fall haben Sie das Terminal auf dem lokalen Computer verwendet. Ich spreche von einer Situation, in der der lokale Computer Windows und der Remote-Computer Ubuntu ist und ich über ssh auf dem Remote-Computer angemeldet bin.
Chandresh
Normalerweise nicht. Nach meinem Kenntnisstand bedeutet das Kopieren über "Terminal in Remote-Computer", dass Sie einen SSH-Server auf dem "lokalen Computer" benötigen (das habe ich bei meiner Antwort absichtlich übersprungen, aber "die Tatsache, dass der Remote-Computer ssh-Verbindungen akzeptiert" ist gemeint zu sagen, "die Tatsache, dass der Remotecomputer einen SSH-Server
ausführt
Sie können jedoch "scp clients" für Windows finden. Siehe z. B. winscp.net/eng/download.php
josinalvo
Ich liebe die sshfsOption
Fibo Kowalsky
Wenn Sie eine große Datei übertragen, verwenden Sie rsync über ssh mit rsync -P -e ssh /tmp/file [email protected]:/home/name/dir. Dies liegt daran, dass die Datei scpnur gelöscht wird, wenn die Dateiübertragung nach der Hälfte fehlschlägt . Auf der anderen Seite, wenn Sie verwenden rsyncmit der -POption, es wird eine unvollständige Datei auf dem entfernten Rechner halten und , wenn Sie die Übertragung neu starten, wird es sicher , dass bereits , was auf dem Remote - Computer die Datei auf dem lokalen Computer übereinstimmt und Fahren Sie dort fort, wo die Übertragung aufgehört hat.
Boris
16

Sie können entweder scpoder verwenden rsync. In Ihrem lokalen System:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

Aber da Sie das Backup erwähnt haben, gehe ich davon aus, dass es inkrementell ist und Sie es von Zeit zu Zeit tun müssen. Daher rsyncist dies eine bessere Wahl für inkrementelle Sicherungen. Auf Ihrer lokalen Shell:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

sehen rsync(1)und scp(1)man - Seiten für Optionen.

Mohammad Hedayati
quelle
10

Sie können scp secure copy verwenden.

Von Ihrer lokalen Shell:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

Dieses Beispiel wird per ssh von /path/of-the/tar.archive Ihres Webhosts nach / home / mydirectory / backups / kopiert.

Zusätzliche Optionen:

-C : Aktiviert die Komprimierung

pl1nk
quelle
6

Ich hatte das gleiche problem Hier ist die einfache Lösung: -

  1. Öffne nautilus (den Dateiexplorer)
  2. Klicken Sie + Other Locationsunten links auf.
  3. Unten ist ein Streifen Connect to server. Schreiben Sie die SSH-Adresse in das Eingabefeld, z ssh://111.222.333.444/.
  4. Geben Sie Ihren Benutzernamen und Ihr Passwort in das sich öffnende Dialogfeld ein.
  5. Nach erfolgreicher Authentifizierung befinden Sie sich an einem homeRemote-Standort. Fühlen Sie sich frei, Dateien hier und da zu verschieben.
Sushi
quelle
Gute Antwort! Einfach und einer Antwort auf die eigentliche Frage am nächsten, z. B. Wie können Sie vom SSH-Remote-Computer aus zugreifen? Die Antwort ist, Sie können nicht, Sie tun es vom lokalen Computer aus. Oder dieses! Sie tun dies grafisch von Ihrem Explorer aus, sodass es für den Benutzer tatsächlich so aussieht, als könnten Sie Dateien direkt von fern auf lokal verschieben.
Kvothe
2

Die anderen Antworten empfehlen rsyncoder scperfordern, dass Sie den Speicherort der zu kopierenden Datei auf dem Remotecomputer kennen.

Wenn Sie stattdessen in der Lage sein möchten, auf der Remote-Maschine herumzustöbern ssh, möchten Sie ausgeführt werden sftp. Das Anmelden am Server ist sehr ähnlich. sshWenn Sie jedoch erst einmal angemeldet sind, geben Sie Folgendes ein, helpum die Liste der Befehle abzurufen. Auf diese Weise können Sie sich sowohl auf dem lokalen als auch auf dem Remotecomputer fortbewegen und Dateien problemlos hin und her übertragen.

Xanthir
quelle
1

Es ist seltsam, dass es von innen unmöglich ist ssh. In einem normalen Terminal kann man Dateien mit zmodem-Befehlen senden / empfangen.

Dies half bei der Suche nach zssh: http://zssh.sourceforge.net/ . Man muss es als Wrapper zum Original ausführen ssh.

Victor Sergienko
quelle