LINUX :: SSH :: Uso Básico
Table of contents
DESCRIPCION
En su forma más básica SSH sirve dos propósitos:
- establecer conexiones bidireccionales de un sistem remoto
- move datos de forma bidireccional de un sistema remote
En esta leccion:
- Conexión con SSH
- Mover datos con SSH
DEPENDENCIAS
ninguna
REQUERIMIENTOS
Sistema de linux Ubuntu.
Alguos comandos requieren privilegios elevados.
ADVERTENCIA
ninguna.
Working Environment
En esta leccion usamos el sistema operativo Ubuntu.
Conexión con SSH
Una vez que hemos creado y copiado una llave a un sistem remoto, podemos usar el comando ssh con esta sintaxis:
ssh usuario@<sistema-remoto>
O podemos excluir el nombre del usurio si el id es el mismo en los dos lados
ssh <sistema-remoto>
Claro que hay que sustituir <sistema-remoto>
con el nombre actual del servidor o la ip address.
He aquí un ejemplo: nos conectamos de un sistema Ubuntu an un sistema RedHat.
devuser@ubuntu2204-1-devesp
~
hist:189 -> ssh rhel9-1-devesp
Last failed login: Sat Jul 13 22:57:50 UTC 2024 from 172.44.0.3 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sat Jul 13 22:38:25 2024 from 172.46.0.4
devuser@rhel9-1-devesp
~
hist:47 -> hostnamectl
Static hostname: rhel9-1-devesp
Icon name: computer-container
Chassis: container ☐
Machine ID: 5d4a094e262746bf84e9665dd3f8a430
Boot ID: a74ed0f59ce34aa18d96d871df8eccec
Virtualization: container-other
Operating System: Red Hat Enterprise Linux 9.2 (Plow)
CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos
Kernel: Linux 6.3.13-linuxkit
Architecture: x86-64
En realidad no importa el sistema operativo Ubuntu o RedHat. SSH trabaja igual.
El ejemplo anterior demuestra que simplemente no importa si el origen o destinación son un tipo de Sistema Operativo u otro; SSH no distingue esto puesto que funciona de la misma manera en derivativas de Debian o RedHat.
Mover datos con SSH
Una de las tareas esenciales en un entorno de computación consiste an la abilidad de mover información de manera segura entre sistemas. El comando scp
hace justamente eso.
La sintaxis es asi:
- el comando
scp
datos-a-copiar
son archivos o directorios a trasnmitirusuario
es el id del usuario- símbolo
@
para indicar donde copiar sistema-remoto
es el sistema remoto a donde mover la información- símbolo
:
demarca la instrucción de identifcación del usuario y el destino donde mover la
scp <datos-a-copiar> <usuario>@<sistema-remoto>:<destination>
La tarea de copiar puede occurir entre dos sistemas de manera bidireccional.
- de nuestro sistema local a un sistema remoto
- de un sistema remoto a nuestro sistema local
Aun más, el tipo de información altera ligeramente la sintaxis:
- copiar un solo archivo, o varios archivos
- copiar una carpeta, o grupo de carpetas
- copiar una combinación de archivos y carpetas
Enseguida vemos ejemplos de lo anteriors.
Copiar De Local A Remoto
Copiar un archivo de nuestro sistema local a un sistema remoto con destinación del directorio hogar del usuario.
El doble punto
:
en el comando indica que la destinación es el directorio hogar del usuario.
scp archivo1 usuario@remoto:
Copiar un archivo a un sistema remoto especificando la destinación /directorio/datos
.
scp archivo1 usuario@remoto:/directorio/datos
Copiar una carpeta a un sistema remoto especificando la destinación /directorio/datos
. Debemos pasar la bandera -r
porque estamos copiando una carpeta.
scp r carpetaDatos usuario@remoto:/directorio/datos
Podemos omitir el nombre del usuario si el nombre del usuario es el mismo en local y remoto
scp archivo1 remoto:/directorio/datos
Copiar varios archivos y carpetas de local a remoto.
scp -r archivo* carpetaDatos carpetaInfo remoto:/directorio/datos
Copiar De Remoto a Local
Para copiar de un remoto a local, simplemente revertimos el orden del ejemplo anterior.
Copiar un archivo de nuestro sistema local a un sistema remoto con destinación $HOME
.
El doble punto
:
en el comando indica que la destinación es el directorio hogar del usuario.scp usuario@remoto:archivo1 $HOME
Copiar el archivo desde un sistema remoto especificando la destinación $HOME
en el sistema local.
Debemos pasar la bandera -r
porque estamos copiando una carpeta.
scp -r usuario@remoto:/carpetaDatos $HOME
Copiar varios archivos y carpetas de remoto a local.
scp -r remoto:/home/devuser/{carpetaDatos,carpetaInfo,archivo*} .
En el comando anterior usamos {}
para agrupar una combinación de varias carpetas y archivos y copiarlos en una sola vez.
Conclusion
Al trabajar con dos o más servidores en nuestro entorno, eventualmente no veremos con la necesidad de establecer conexiones remotas o mover datos en una dirección u otra. Por esta razón SSH provee la forma de hacer tareas a travez de la red de manera segura y eficiente. Asi que entender como usar SSH sirve un propósito escensial en ambientes complejos de computación.
Referencias
Glosario De Comandos
Los comandos siguientes son usados frecuentemente en sesiones de Linux.
- ssh
- utilidad que facilita conexiones remotas seguras en un entorno de computación
- scp
- utilidad de SSH para copiar datos de forma segura y bidireccional
- hostnamectl
- comando que provee identificación del sistema y su sistema operativo
Referencias Utiles
DevEsp :: Linux
- https://docs.devesp.com/linux-en-espa%C3%B1ol/
Paginas Manuales