SSH
- Copiar con
scp
- sshfs
- SSH key
- Raspberry Pi
Flag | Descripción |
---|---|
-t |
Permite ejecutar sudo cuando se envía un comando |
Tanto SFTP como SSH utilizan el puerto 22, que se puede especificar con -p 22. También se puede especificar un puerto concreto.
Para activar o desactivar la capacidad de introducirse en otro ordenador usando SSH hay que utilizar systemctl
con enable
o disable
:
sudo systemctl enable ssh
Para hacer tu ordenador accesible a SSH, se utiliza start
o stop
:
sudo systemctl start ssh
Confirmar que está en el estado en el que quieres; es posible hacer brute force a SSH… para eso lo ideal es utilizar una llave para entrar en SSH.
Para conectarse: ssh usuarioremoto@direcciiónip/DNS
(igual que con SFTP).
Cuando uno se conecta dentro de un router también puede uno conectarse utilizando el hostname.local
- por ejemplo
$ ssh pi@raspberrypi.local
Enviar un comando aislado
$ ssh pi@raspberrypi.local echo "Hello, world!" >> hello.txt
-t
permite que la orden pasada contenga sudo.
Copiar cosas del servidor a local
Desde la terminal del cliente (no desde SSH) se utiliza scp
(siempre que esté instalado en servidor y cliente):
$ scp user@server:/home/username/Desktop/testfile.txt ~/Desktop/
Esto no es buena idea; scp
no es seguro porque permite ejecutar cosas en el destino utilizando ` `
.
Montar una carpeta del servidor en local
A través de sshfs
(secure shell file system) es posible montar una carpeta del servidor como un disco.
El proceso sería
$ mkdir ~/Desktop/raspi
$ sshfs pi@raspberrypi.local:/home/pi/Desktop ~/Desktop/raspi
para desmontarlo se usa umount
- ver montar discos.
SSH Keys
Para hacer el login a través de llaves, hay que generarlas en el client machine - es decir, en el ordenador desde el cuál se va a acceder al servidor (referencia).
El primer paso es generar las llaves:
$ ssh-keygen -t rsa -b 4096
Para cambiar la contraseña de la llave sin generar una nueva se puede utilizar ssh-keygen -p
y seguir los prompts.
En este caso, -t rsa
indica el tipo de encriptación que se va a utilizar.
Esto devuelve el sitio en el que se van a guardar las llaves (/home/username/.ssh/id_rsa
) y da la opción para introducir un passphrase
. Se genera una llave pública (id_rsa.pub
) y una llave privada o identificatión (id_rsa
) en ese directorio.
Después hay que copiar la llave pública al servidor. Se puede utilizarlo
$ ssh-copy-id user@server
o copiarla directamente en el servidor en ~/.ssh/authorized_keys
con permiso 700
.
Ahora al logearse no pedirá la contraseña de usuario, pero sí el passphrase
generado con la llave (en caso de haber hecho uno).
Para evitar un login con SSH se puede editar /etc/ssh/sshd_config
y cambiar lo siguiente:
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
KbdInteractiveAuthentication no
UsePAM no
y luego sudo systemctl restart ssh
.
Raspberry Pi
Una vez conectado a la red, para activar SSH hay que abrir el acceso SSH - hay varias formas:
- Desde la configuración de escritorio
- desde
raspi-config
(un menú contextual) - a través de
sudo systemctl enable ssh; sudo systemctl start ssh
- en caso de utilizarlo ‘headless’, se puede colocar un archivo con el nombre
ssh
en la partición de boot.
Para conectarse a SSH hay que conocer la dirección IP (se hace a través de ifconfig
o hostname -I
).
IMPORTANTE: CAMBIAR LA CONTRASEÑA DEFAULT PARA EVITAR INTRUSIONES (passwd
).