GNU/Linux >> Tutoriales Linux >  >> Linux

11 comandos útiles "ssh" y "scp" en Linux

Introducción

En esta publicación, vamos a aprender algunos comandos ssh útiles y comandos scp con ejemplos. SSH es un protocolo que significa Secure Shell, que es una herramienta de comando del lado del cliente que se utiliza para tomar sesiones remotas del sistema Linux de forma segura. Utiliza el método de cifrado simétrico y asimétrico para transferir datos a través de la red. SSH es una herramienta muy recomendable para tomar una sesión remota de un servidor, ya que es la forma más segura de conectarse a cualquier servidor. SSH es el reemplazo de la herramienta remota no segura utilizada anteriormente como telnet. El número de puerto de SSH es 22. Las versiones de SSH son Protocolo SSH Versión 1 y Protocolo SSH Versión 2, también denominados SSH-1 y SSH-2 . La diferencia entre SSH-1 y SSH-2 es que SSH-2 admite el Certificado de clave pública mientras que SSH-1 no.

scp es una utilidad de línea de comandos que se utiliza para copiar datos de un sistema Linux a otro a través de la red de forma segura. Al igual que SSH, SCP también usa el puerto número 22 para conectarse y transferir datos a través de la red. SCP es una buena alternativa y una herramienta recomendada contra los protocolos de transferencia de datos no seguros como FTP, Telnet y es altamente seguro para transferir datos a través de la red, ya que utiliza el protocolo SSH para transferir datos de forma segura.

Así que echemos un vistazo a algunos comandos ssh y scp importantes con ejemplos.

Tengo dos sistemas Linux en mi entorno de prueba, es decir, pc1 y pc2. Busque los detalles del sistema a continuación.

Escenario de entorno de prueba:

PC1 :

Computer Name – pc1
IP Address – 192.168.0.105

PC2 :

Computer Name – pc2
IP Address – 192.168.0.106

1. Tome control remoto de PC2 desde PC1 usando el comando ssh

Como todos sabemos, ssh se usa para tomar la consola remota de otro sistema Linux de forma segura, así que tomemos la consola remota de pc2 de pc1 que puede usar debajo del comando ssh.

Sintaxis:

# 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

Remoto tomado con éxito, para confirmar verifique el nombre de host y la dirección IP del sistema remoto como se muestra a continuación.

[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. Tome la consola remota del sistema con el nombre de usuario actualmente conectado

Puede tomar la consola remota del sistema con el nombre de usuario actualmente conectado. Por ejemplo, aquí en pc1 inicié sesión con el nombre de usuario "root" y quiero tomar una sesión remota de la máquina pc2 usando el mismo nombre de usuario, es decir, "root", entonces podemos usar el siguiente comando.

[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. Cerrar sesión desde la consola remota

Para cerrar sesión en una consola remota ya tomada, use el comando cerrar sesión. Consulte el resultado de muestra a continuación.

[root@pc2 ~]# logout   # Logout from already taken remote console
Connection to 192.168.0.106 closed.

4. Compruebe la versión del paquete ssh instalado

Para verificar la versión del paquete ssh instalado actualmente, use el comando ssh con la opción -V . Consulte el resultado de muestra a continuación.

[root@pc1 ~]# ssh -V   # check the currently installed ssh package version
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

5. Copie datos de un sistema Linux a otro a través de la red usando el comando scp

Para copiar datos de un sistema Linux a otro, podemos usar el comando scp. Aquí estoy copiando datos, es decir, touch.txt archivo de pc1 a pc2. Consulte el resultado de muestra a continuación.

[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. Descargar/Copiar datos del sistema remoto usando el comando SCP

Para copiar datos del sistema remoto al sistema local, puede usar el siguiente comando. Aquí estoy copiando datos de pc2 a 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. Copie datos del sistema remoto al sistema local de forma recursiva

Para copiar un directorio con todo su contenido de forma recursiva, puede usar el comando scp con la opción -r . Consulte la salida de muestra a continuación. Aquí estoy copiando un directorio, es decir, datos del sistema remoto, es decir, pc2, al sistema local, es decir, 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. Copie datos del sistema local al sistema remoto recursivamente usando el comando scp

Para copiar un directorio con todo su contenido de forma recursiva desde un sistema local a un sistema remoto, puede usar el comando scp con la opción -r . Consulte el resultado de muestra a continuación.

[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. Conecte y ejecute un comando simultáneamente en un sistema remoto mediante el comando SSH

Puede tomar la sesión remota de un servidor y ejecutar un comando simultáneamente. Por ejemplo, aquí estoy tomando el control remoto del sistema pc2 y ejecutando un comando, es decir, ifconfig. Consulte el resultado de muestra a continuación.

[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. Tomar control remoto del sistema por un nombre de usuario diferente usando el comando ssh

Para tomar control remoto del sistema con un nombre de usuario diferente, puede usar el comando ssh con la opción -l . Consulte el resultado a continuación.

[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. Copie archivos y directorios ocultos usando el comando scp.

Para copiar archivos y directorios ocultos, puede usar el comando ssh con la opción -rp . una cosa, tenga en cuenta que durante la copia de archivos y directorios ocultos usando el comando scp, siempre coloque . (punto) al final de la ruta, por ejemplo “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. Cómo deshabilitar los comandos de apagado y reinicio en Linux

  2. Aprenda la diferencia entre los comandos "su" y "su -" en Linux

  3. Comandos de Linux:descripción general y ejemplos

  4. Comandos de Linux:trabajos, bg y fg

  5. Diferencia entre los comandos 'ifconfig' e 'ip'

Comandos Pushd y Popd en Linux

Comandos SSH en Linux con ejemplos de uso

Instalar y usar WinSCP

50 comandos dmidecode simples y útiles para Linux

Los 40 comandos útiles del servidor Linux para principiantes y profesionales

40 comandos git útiles para administradores y desarrolladores de Linux