GNU/Linux >> LINUX-Kenntnisse >  >> Linux

11 Nützliche „ssh“- und „scp“-Befehle unter Linux

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


Linux
  1. So deaktivieren Sie Befehle zum Herunterfahren und Neustarten in Linux

  2. Lernen Sie den Unterschied zwischen den Befehlen „su“ und „su -“ in Linux kennen

  3. Linux-Befehle – Übersicht und Beispiele

  4. Linux-Befehle:jobs, bg und fg

  5. 10 nützliche YUM-Befehle in Linux

Pushd- und Popd-Befehle unter Linux

SSH-Befehle in Linux mit Verwendungsbeispielen

Installieren und verwenden Sie WinSCP

50 einfache und nützliche dmidecode-Befehle für Linux

Die 40 nützlichen Linux-Server-Befehle für Anfänger und Profis

40 nützliche Git-Befehle für Linux-Administratoren und -Entwickler