Einführung
In diesem Beitrag lernen wir einige nützliche ssh-Befehle und scp-Befehle mit Beispielen kennen. SSH ist ein Protokoll, das für Secure Shell steht, ein clientseitiges Befehlstool, das verwendet wird, um Remote-Sitzungen von Linux-Systemen sicher durchzuführen. Es verwendet symmetrische und asymmetrische Verschlüsselungsmethoden, um Daten über das Netzwerk zu übertragen. SSH ist ein sehr empfehlenswertes Tool für eine Remote-Sitzung eines Servers, da es die sicherste Art ist, eine Verbindung zu einem beliebigen Server herzustellen. SSH ist der Ersatz für zuvor verwendete ungesicherte Remote-Tools wie Telnet. Die Portnummer von SSH ist 22. Die Versionen von SSH sind SSH-Protokollversion 1 und SSH-Protokollversion 2, auch als SSH-1 bezeichnet und SSH-2 . Der Unterschied zwischen SSH-1 und SSH-2 besteht darin, dass SSH-2 Public-Key-Zertifikate unterstützt, während SSH-1 dies nicht tut.
scp ist ein Befehlszeilendienstprogramm, das zum sicheren Kopieren von Daten von einem Linux-System auf ein anderes über das Netzwerk verwendet wird. Wie SSH verwendet auch SCP die Portnummer 22, um sich zu verbinden und Daten über das Netzwerk zu übertragen. SCP ist eine gute Alternative und ein empfohlenes Tool gegen ungesicherte Datenübertragungsprotokolle wie FTP, Telnet und es ist hochgradig sicher, um Daten über das Netzwerk zu übertragen, da es das SSH-Protokoll verwendet, um Daten sicher zu übertragen.
Schauen wir uns also einige wichtige ssh-Befehle und scp-Befehle mit Beispielen an.
Ich habe zwei Linux-Systeme in meiner Testumgebung, d. h. pc1 und pc2. Die Systemdetails finden Sie unten.
Szenario der Testumgebung:
PC1 :
Computer Name – pc1 IP Address – 192.168.0.105
PC2 :
Computer Name – pc2 IP Address – 192.168.0.106
1. Entferne PC2 von PC1 mit dem ssh-Befehl
Wie wir alle wissen, wird ssh verwendet, um die Remote-Konsole eines anderen Linux-Systems sicher zu übernehmen. Nehmen wir also die Remote-Konsole von pc2 von pc1, die Sie unter dem ssh-Befehl verwenden können.
Syntax:
# ssh username@IP Address of the Remote Computer
[root@pc1 ~]# ssh [email protected] # Take Remote of PC2 from PC1 [email protected]'s password: Last login: Thu Mar 9 09:14:34 2017 from 192.168.0.107
Remote genommen erfolgreich, überprüfen Sie zur Bestätigung den Hostnamen und die IP-Adresse des Remote-Systems wie unten gezeigt.
[root@pc2 ~]# hostname pc2 [root@pc2 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:01:77:E7 inet addr:192.168.0.106 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe01:77e7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:9688 errors:0 dropped:0 overruns:0 frame:0 TX packets:4695 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11157837 (10.6 MiB) TX bytes:370245 (361.5 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:960 (960.0 b) TX bytes:960 (960.0 b)
2. Nehmen Sie die Remote-Konsole des Systems mit dem aktuell angemeldeten Benutzernamen
Sie können die Remote-Konsole des Systems mit dem aktuell angemeldeten Benutzernamen verwenden. Zum Beispiel habe ich mich hier in PC1 mit dem Benutzernamen „root“ angemeldet und möchte eine Remote-Sitzung des PC2-Rechners mit demselben Benutzernamen, d. h. „root“, durchführen, dann können wir den folgenden Befehl verwenden.
[root@pc1 ~]# ssh 192.168.0.106 # Take Remote using currently logged in username [email protected]'s password: Last login: Thu Mar 9 09:08:54 2017 from 192.168.0.107 [root@pc2 ~]# hostname pc2
3. Von Remote Console abmelden
Um sich von einer bereits verwendeten Remote-Konsole abzumelden, verwenden Sie den Befehl logout. Sehen Sie sich die Beispielausgabe unten an.
[root@pc2 ~]# logout # Logout from already taken remote console Connection to 192.168.0.106 closed.
4. Überprüfen Sie die Version des installierten SSH-Pakets
Um die aktuell installierte ssh-Paketversion zu überprüfen, verwenden Sie den ssh-Befehl mit der Option -V . Sehen Sie sich die Beispielausgabe unten an.
[root@pc1 ~]# ssh -V # check the currently installed ssh package version OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
5. Kopieren Sie Daten von einem Linux-System auf ein anderes über das Netzwerk mit dem scp-Befehl
Um Daten von einem Linux-System auf ein anderes zu kopieren, können wir den Befehl scp verwenden. Hier kopiere ich Daten, z. B. touch.txt Datei von pc1 nach pc2. Sehen Sie sich die Beispielausgabe unten an.
[root@pc1 ~]# touch text.txt # Create a Sample text File [root@pc1 ~]# ls anaconda-ks.cfg Documents install.log.syslog Public Videos data Downloads Music Templates Desktop install.log Pictures text.txt [root@pc1 ~]# scp text.txt [email protected]:/root/Desktop/ # Copy data from Local System to Remote System [email protected]'s password: text.txt 100% 0 0.0KB/s 00:00
6. Daten vom Remote-System mit dem SCP-Befehl herunterladen/kopieren
Um Daten vom Remote-System auf das lokale System zu kopieren, können Sie den folgenden Befehl verwenden. Hier kopiere ich Daten von PC2 nach PC1.
[root@pc1 ~]# scp [email protected]:/data/database.txt /root/ # Copy Data from Remote System to Local using scp Command [email protected]'s password: database.txt 100% 0 0.0KB/s 00:00 [root@pc1 ~]# ls anaconda-ks.cfg Desktop install.log Pictures text.txt data Documents install.log.syslog Public Videos database.txt Downloads Music Templates
7. Daten rekursiv vom entfernten System auf das lokale System kopieren
Um ein Verzeichnis mit seinem gesamten Inhalt rekursiv zu kopieren, können Sie den Befehl scp mit der Option -r verwenden . Siehe Beispielausgabe unten. Hier kopiere ich ein Verzeichnis, d. h. Daten vom entfernten System, d. h. pc2, auf das lokale System, d. h. pc1.
[root@pc1 ~]# scp -r [email protected]:/data /root/Desktop/ # Copy directory Recursively [email protected]'s password: database.txt 100% 0 0.0KB/s 00:00 [root@pc1 ~]# cd /root/Desktop/ [root@pc1 Desktop]# ls data [root@pc1 Desktop]# ls data/ database.txt [root@pc1 Desktop]#
8. Kopieren Sie Daten rekursiv vom lokalen System auf das entfernte System mit dem scp-Befehl
Um ein Verzeichnis mit seinem gesamten Inhalt rekursiv vom lokalen System auf das entfernte System zu kopieren, können Sie den scp-Befehl mit der Option -r verwenden . Sehen Sie sich die Beispielausgabe unten an.
[root@pc1 ~]# ls apps/ test1.txt test2.txt test3.txt test4.txt test5.txt [root@pc1 ~]# scp -r apps/ [email protected]:/root # Copy directory Recursively from Local System to Remote System [email protected]'s password: test2.txt 100% 0 0.0KB/s 00:00 test1.txt 100% 0 0.0KB/s 00:00 test4.txt 100% 0 0.0KB/s 00:00 test5.txt 100% 0 0.0KB/s 00:00 test3.txt 100% 0 0.0KB/s 00:00
9. Verbinden und gleichzeitiges Ausführen eines Befehls auf einem Remote-System mithilfe des SSH-Befehls
Sie können die Remotesitzung eines Servers übernehmen und gleichzeitig einen Befehl ausführen. Zum Beispiel nehme ich hier die Fernbedienung von System pc2 und führe einen Befehl aus, dh ifconfig. Sehen Sie sich die Beispielausgabe unten an.
[root@pc1 ~]# ssh 192.168.0.106 "ifconfig" # take remote and run a command simultaneously [email protected]'s password: eth0 Link encap:Ethernet HWaddr 00:0C:29:01:77:E7 inet addr:192.168.0.106 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe01:77e7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:9870 errors:0 dropped:0 overruns:0 frame:0 TX packets:4845 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11182999 (10.6 MiB) TX bytes:393576 (384.3 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:18 errors:0 dropped:0 overruns:0 frame:0 TX packets:18 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1058 (1.0 KiB) TX bytes:1058 (1.0 KiB)
10. Entferne das System durch einen anderen Benutzernamen mit dem ssh-Befehl
Um das System mit einem anderen Benutzernamen zu entfernen, können Sie den ssh-Befehl mit der Option -l verwenden . Siehe Ausgabe unten.
[root@pc1 Desktop]# ssh -l root 192.168.0.106 # Take remote using different username [email protected]'s password: Last login: Fri Mar 10 08:54:59 2017 from 192.168.0.107
11. Kopieren Sie versteckte Dateien und Verzeichnisse mit dem Befehl scp.
Um versteckte Dateien und Verzeichnisse zu kopieren, können Sie den ssh-Befehl mit der Option -rp verwenden . Denken Sie daran, dass Sie beim Kopieren versteckter Dateien und Verzeichnisse mit dem Befehl scp immer . eingeben (Punkt) am Ende des Pfades zum Beispiel „scp -rp /root/.“
[root@pc1 ~]# scp -rp /root/. [email protected]:/hidden # Copy hidden files and directories using scp command [email protected]'s password: .gtk-bookmarks 100% 107 0.1KB/s 00:00 .bashrc 100% 176 0.2KB/s 00:00 .bash_logout 100% 18 0.0KB/s 00:00 .bash_profile 100% 176 0.2KB/s 00:00 database.txt 100% 0 0.0KB/s 00:00 .bash_history 100% 3327 3.3KB/s 00:00 database.txt 100% 0 0.0KB/s 00:00 profiles.ini 100% 104 0.1KB/s 00:00 . . . home-2f9509b7.log 100% 32KB 32.0KB/s 00:00 addressbook.db 100% 12KB 12.0KB/s 00:00 addressbook.db.summary 100% 86 0.1KB/s 00:00 .ICEauthority 100% 1244 1.2KB/s 00:00 [root@pc1 ~]# ssh 192.168.0.106 [email protected]'s password: Last login: Fri Mar 10 08:56:14 2017 from 192.168.0.107 [root@pc2 ~]# ls -a /hidden/ . data .gnote Pictures .. database.txt .gnupg Public anaconda-ks.cfg .dbus .gtk-bookmarks .pulse apps Desktop .gvfs .pulse-cookie .bash_history Documents .ICEauthority .ssh .bash_logout Downloads install.log .tcshrc .bash_profile .esd_auth install.log.syslog Templates .bashrc .gconf .local text.txt .cache .gconfd .mozilla Videos .config .gnome2 Music .cshrc .gnome2_private .nautilus