Wie verwende ich SSH (ssh & rsync Befehle)?

44

Wie kann ich mit einem Remote-Server SSH ausführen, um Dateien zu durchsuchen und zu bearbeiten? Ich habe einen Benutzernamen und ein Passwort zu verwenden.

el_pup_le
quelle

Antworten:

49

SSH ist standardmäßig in allen Ubuntu-Versionen enthalten, sodass Sie es nicht installieren müssen (+1, wenn es bereits vorhanden ist;))

Außer natürlich für den Fall, dass Sie einen SSH-Server für Ihren Ubuntu-Server wollen. In diesem Fall würden Sie

sudo apt-get install openssh-server 

Das sollte Ihren Computer / Server bereit machen, ein SSH-Server zu sein.

Es ist ziemlich einfach zu bedienen:

ssh USER@SITEWenn mein Benutzername beispielsweise cyrex ist und die Site ubuntu.com lautet, würden Sie dies tun:

ssh [email protected]

Nehmen wir nun an, Sie möchten eine bubblegum.txtvon Ihrem Computer aufgerufene Datei auf Ihre Ubuntu-Site kopieren und diese Datei im /var/wwwOrdner auf der Ubuntu-Site belassen. Sie können dies tun (vorausgesetzt, Ihr Benutzer verfügt über genügend Berechtigungen auf der Ubuntu-Site), indem Sie den SSH-Bruder SCP verwenden (der ebenfalls standardmäßig in Ubuntu enthalten ist):

scp bubblegum.txt [email protected]:/var/www 

Beachten Sie den :Abstand zwischen USER @ SITE und dem Ordner, in den Sie ihn kopieren möchten. Es ist derjenige, der beide Elemente trennt.

Nehmen wir nun an, Sie laden eine riesige Datei mit scp hoch und dann explodiert die Welt. Wie können Sie diese Datei weiterhin auf den Server hochladen? Dann hast du den großen Bruder von SCP, rsync (standardmäßig in Ubuntu). In vielerlei Hinsicht machen scp und rsync dasselbe, aber hier sind einige große Unterschiede zwischen ihnen:

  • rsync kann Teildateien hochladen, die von rsync oder scp nach einer Trennung oder nach einer Weltherrschaft zurückgelassen wurden.
  • rsync kann den Fortschritt viel besser anzeigen als scp
  • rsync kann den Upload so optimieren, dass Sie tatsächlich Sekunden oder Minuten beim Upload sparen können. Außerdem wird am Ende des Uploads angezeigt, wie viel Sie gespeichert haben.

In dem Fall, dass scp nicht die gesamte Datei hochladen konnte, kommt hier rsync ins Spiel, um zu retten. (Danke an Marco Ceppi für den Tipp. Stimmen Sie seinen Kommentar ab, wenn Sie Katzen und / oder Hunde mögen.)

Nehmen wir an, Sie haben den oben genannten Upload von scp durchgeführt und sind auf 60% gekommen. Wie können Sie mit diesen 60% weitermachen, ohne Ihre Zeit für den Upload zu verlieren? Sie würden dies tun:

rsync --progress --partial bubblegum.txt [email protected]:/var/www  

Dadurch wird rsync angewiesen, den Fortschritt mit dem --progressFlag auf eine vom Menschen lesbare Weise anzuzeigen. Außerdem wird rsync angewiesen, zu überprüfen und fortzufahren, wo die Datei bubblegum.txt mit dem --partialFlag abgelegt wurde . Sie können den zu schreibenden Betrag auch mit dem Parameter -P vereinfachen, der mit --progress und --partial identisch ist.

rsync -P bubblegum.txt [email protected]:/var/www  

Sie können den Upload sogar CTRL+ Cund wieder aufnehmen, indem Sie den obigen Befehl von rsync ausführen. Sehr cool, um die Fähigkeit zu haben, etwas jederzeit beliebig oft wieder aufzunehmen.

Für weitere Informationen zu rsync, das standardmäßig mit Ubuntu geliefert wird, können Sie die folgenden Terminalbefehle eingeben:

man rsync  
info rsync  
rsync --help

Geben Sie nun einen Port für SSH an. Um es zu spezifizieren, kannst du es so machen:

ssh [email protected] -p PORT. Zum Beispiel: ssh [email protected] -p 1234um ihn anzuweisen, Port 1234 für den SSH-Dienst zu verwenden. Dies muss zuerst auf dem Server konfiguriert werden, damit es funktioniert.

Um es zu konfigurieren, öffne einfach auf dem Server die Datei ssh_config wie folgt : nano /etc/ssh/ssh_configund ändere die Zeile, die besagt, # port 22auf einen anderen Port. Denken Sie auch daran, den Kommentar aus dieser Zeile zu entfernen. Es sollte so aussehen: port 1234im obigen Beispiel.

Starten Sie jetzt einfach den ssh-Dienst auf dem Server neu und Sie sind fertig. So starten Sie den Dienst neu:

sudo restart ssh

oder

sudo /etc/init.d/ssh restart

HINWEIS - Sie können auch SSH aus GUI-Tools verwenden, filezilladie die Option bieten, ssh anstelle von ftp zu verwenden. Auf ssh kann auch über das Ubuntu-Menü zugegriffen werden:

Bildbeschreibung hier eingeben

Hier haben Sie Zugriff auf verschiedene Optionen, einschließlich Windows-Freigabe, SSH und FTP :

Bildbeschreibung hier eingeben

Für weitere Informationen zu SSH können Sie einen der folgenden Befehle in der Konsole in Ihrer Ubuntu-Box verwenden:

man ssh  
info ssh  
ssh --help
Luis Alvarado
quelle
Worauf beziehen Sie sich leider?
Luis Alvarado
23

Wenn Sie den Server durch Nautilus durchsuchen möchten, wie Sie es mit Dateien auf Ihrem lokalen Computer tun:

  1. Öffne Nautilus ("Home Folder")
  2. Gehen Sie zu "Datei" -> "Mit Server verbinden"

    Verbinden zum Server

  3. Wählen Sie "SSH" unter "Service Type"

  4. Tragen Sie die IP-Adresse oder Domain unter "Server" ein

    Wählen Sie SSH

  5. Fügen Sie Ihren Benutzernamen hinzu und aktivieren Sie "Lesezeichen hinzufügen", wenn der Speicherort in Ihren Lesezeichen gespeichert werden soll.

Der Ordner sollte sich für Sie öffnen.

Jamesadney
quelle
Auf Kubuntu kann man das auch mit Krusader machen .
Adobe
6

Sie können sshfsein Remote-Verzeichnis in Ihr lokales Dateisystem einbinden.

Siehe https://help.ubuntu.com/community/SSHFS :

Befehlszeilenverwendung

Angenommen, Sie haben einen SSH-Server auf einem Remotecomputer, führen Sie einfach den Befehl SSHFS aus, um das Remoteverzeichnis bereitzustellen. In diesem Beispiel ist das Remote-Verzeichnis / projects auf dem Remote-Host far. Der lokale Einhängepunkt ist ~ / far_projects.

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

Absteigen,

fusermount -u ~/far_projects

Um es zu Ihrer / etc / fstab hinzuzufügen,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

Beachten Sie, dass Sie beim Bearbeiten von fstab $ USER in Ihren Anmeldenamen ändern müssen, dies jedoch nicht erforderlich ist, wenn Sie Befehle eingeben (in diesem Fall übernimmt die Shell dies für Sie).

Stacey Richards
quelle
4

Wenn der SSH-Server bereits eingerichtet ist, öffnen Sie ein Terminal und geben Sie Folgendes ein:

ssh username@hostname

Sie werden aufgefordert, Ihr Passwort einzugeben. gib es einfach ein Wenn Sie eine Portnummer benötigen, fügen Sie diese hinzu -p PORTNUM.

Dang Khoa
quelle
2

Wenn Sie Vim, Pico usw. verwenden können, können Sie das Terminal verwenden:

ssh [email protected]

Geben Sie Ihr Passwort ein und Sie sind dabei. Von dort aus ist es wie bei einem normalen Terminal, nur dass Sie keine GUI haben.

Beachten Sie , können Sie die ‚-X‘ Option hinzufügen, und wenn Ihr Server ein X - Server konfiguriert ist, Sie können GUI - Programme ausführen. Geben Sie einfach ihren Namen ein, wenn Sie -X hinzugefügt haben, und ein GUI-Fenster wird geöffnet.

Jetzt möchten Sie wahrscheinlich die passwortlose Anmeldung einrichten. Wenn Sie noch keinen Schlüssel haben, ssh-keygengeben Sie alle Standardeinstellungen ein und drücken Sie die Eingabetaste. Dann tu es ssh-copy-id [email protected]. Sobald dies erledigt ist, geben Sie einfach ein ssh [email protected]und Sie müssen Ihr Passwort nicht mehr eingeben!

Wenn Ihr Benutzername mit dem Benutzernamen Ihres Laptops übereinstimmt, brauchen Sie ihn nicht MYUSER@. Sie können es einfach tun ssh mysite.com. Sie können auch die -l MYUSEROption anstelle von verwendenMYUSER@

Wenn Sie eine GUI wünschen, kann Nautilus dies tun. Datei Mit ->Server verbinden ->[Wählen Sie 'SSH' und geben Sie die Anmeldedaten ein] -> Verbinden.

Wenn Sie nur eine einzelne Datei kopieren möchten, verwenden Sie scp [sichere Kopie].
scp [email protected]:path/to/file.dat ./

Dadurch wird die Datei "~ / path / to / file.dat" in Ihr aktuelles Verzeichnis kopiert. Hinweis: Wenn nach dem kein Schrägstrich oder keine Tilde angezeigt wird, verhält :es sich so, als ob Sie sich in Ihrem Ausgangsverzeichnis [ ~/] befinden. Wenn Sie hochladen möchten, scp ./local_file.dat [email protected]: wird dies in Ihrem Home-Verzeichnis gespeichert.

Matt
quelle
0

ssh -X -C user@host nautilus --no-desktop in den GUI-Modus gehen :)

Leichenschauhaus
quelle
Der lokale Nautilus kann sich nur mit einer SSH-Freigabe verbinden. Es ist nicht erforderlich, Nautilus remote auszuführen. Das würde ich eigentlich nicht empfehlen. Kreativer Vorschlag, aber immer noch -1
Jo-Erlend Schinstad