ssh permet connectar-se de forma segura a màquines
remotes xifrant tota la comunicació.
ssh usuari@host
ssh usuari@host -p 2222 # port diferent
ssh host # usa l'usuari local actual| Opció | Efecte |
|---|---|
-p PORT |
Port de connexió (per defecte: 22) |
-i fitxer |
Clau privada a usar |
-l usuari |
Usuari (alternatiu a usuari@host) |
-X |
Reenviament X11 (executa apps gràfiques remotes) |
-Y |
Reenviament X11 de confiança (menys restriccions) |
-A |
Reenviament de l’agent SSH (útil per saltar màquines) |
-N |
No executa cap ordre (útil per túnels) |
-f |
Va a segon pla abans de l’execució |
-v |
Mode verbose (diagnòstic); -vv o -vvv per més detall |
-q |
Mode silenciós |
-C |
Comprimeix les dades transmeses |
-T |
Desactiva la pseudo-terminal (útil per scripts) |
-t |
Força la pseudo-terminal (útil per sudo remot) |
-o opció=valor |
Passa opcions de configuració directament |
ssh usuari@host "ls /var/log"
ssh usuari@host "df -h"
ssh usuari@host "sudo systemctl restart apache2"
# Execució d'script local en màquina remota
ssh usuari@host 'bash -s' < script_local.sh
# Múltiples ordres
ssh usuari@host "git pull && systemctl restart apache2"# Ara http://localhost:8080 accedeix al port 80 del servidor remot
ssh -L 8080:localhost:80 usuari@host# El port 9090 del servidor apunta al port 3000 de la teva màquina
ssh -R 9090:localhost:3000 usuari@host# Configura el navegador per usar SOCKS5 en localhost:1080
ssh -D 1080 -N usuari@host# Connecta a 'destinacio' passant per la màquina 'bastio'
ssh -J usuari@bastio usuari@destinacio# Generar parell de claus
ssh-keygen -t ed25519 -C "comentari"
ssh-keygen -t rsa -b 4096
# Copiar la clau pública al servidor
ssh-copy-id usuari@host
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuari@host
# Equivalent manual
cat ~/.ssh/id_ed25519.pub | ssh usuari@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"Evita haver d’escriure opcions llargues cada vegada:
Host servidor
HostName 192.168.1.100
User admin
Port 2222
IdentityFile ~/.ssh/clau_privada
ForwardAgent yes
Host bastio
HostName bastio.exemple.com
User deploy
Host intern
HostName 10.0.0.5
User root
ProxyJump bastio
Després n’hi ha prou amb:
ssh servidor
ssh intern # salta automàticament per 'bastio'scp copia fitxers entre màquines usant SSH com a
transport. La sintaxi és similar a cp.
scp [opcions] origen destinació# Local → Remot
scp fitxer.txt usuari@host:/ruta/destí/
scp fitxer.txt usuari@host:~
# Remot → Local
scp usuari@host:/ruta/fitxer.txt .
scp usuari@host:~/documents/informe.pdf /home/local/
# Remot → Remot
scp usuari1@host1:/fitxer usuari2@host2:/destí/| Opció | Efecte |
|---|---|
-r |
Còpia recursiva de directoris |
-P PORT |
Port (majúscula, diferent de ssh) |
-i fitxer |
Clau privada |
-p |
Preserva permisos i marques de temps |
-C |
Comprimeix durant la transferència |
-q |
Mode silenciós (sense barra de progrés) |
-v |
Mode verbose |
-l KBITS |
Limita l’amplada de banda (en Kbits/s) |
-o opció |
Passa opcions SSH |
# Còpia recursiva
scp -r directori/ usuari@host:/destí/
# Port alternatiu
scp -P 2222 fitxer.txt usuari@host:/tmp/
# Preservant permisos
scp -p fitxer.sh usuari@host:~/scripts/
# Usant configuració de ~/.ssh/config
scp fitxer.txt servidor:/tmp/
# Limitant amplada de banda (útil per no saturar la xarxa)
scp -l 1000 fitxer.iso usuari@host:/backup/rsync sobre SSHPer transferències grans o sincronització, rsync és
sovint millor que scp:
rsync -avz fitxer.txt usuari@host:/destí/
rsync -avz --progress directori/ usuari@host:/destí/
# sincronitza (esborra el que no hi és)
rsync -avz --delete origen/ usuari@host:/destí/
rsync -avz -e "ssh -p 2222" fitxer usuari@host:/destí/| Opció rsync | Efecte |
|---|---|
-a |
Mode arxiu (recursiu + ho preserva tot) |
-v |
Verbose |
-z |
Compressió |
--progress |
Mostra progrés |
--delete |
Esborra al destí el que no és a l’origen |
--exclude |
Exclou patrons |
-n |
Simulació (dry-run, no fa res) |
Més informació sobre rsync i grsync