Solapas principales

Nov 24, 2013

Los 25 Comandos más útiles SSH

OpenSSH es la versión gratuita de la herramienta para conectividad SSH que la mayoría de los usuarios utilizan con confianza. Es de los pocos protocolos que encriptan todo el trafico  incluida la autentificacion inicial. Esta pequeña pero potente herramienta se ha ganado el reconocimiento de la comunidad de Internet, incluyendo empresas de seguridad como Trend Micro. En definitiva una herramienta que cualquier administrador de sistemas ha de usar dia a día en las tareas cotidianas, Aquí os dejo una recopilación de los comando que mas me gustan:

1) Copia la clave de ssh a un servidor user@host para evitar meter la contraseña cada vez.

1
ssh-copy-id user@host

ssh-keygen genera las claves de forma local.

2) Abre un túnel para acceder desde un puerto local a uno de un servidor remoto

1
ssh -N -L 2001:localhost:80 somemachine

Ahora puedes entrar al servidor remoto con la direccion http://localhost:2001/

3) Conecta tu micrófono al altavoz de un equipo remoto.

1
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp

La calidad no es del todo optima, pero escucharse, se escucha.

4)Compara un archivo remoto con uno local.

1
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -

Util para comparar diferencias entre los archivos locales y remotos.

5) Monta el directorio/systemadearchivos via SSH

1
sshfs name@server:/path/to/folder /path/to/mount/point

Para instalar SSHFS ir a  http://fuse.sourceforge.net/sshfs.html
Para montar archivos por Internet de forma segura.

6) Conexion SSH a traves de un tercer equipo

1
ssh -t reachable_host ssh unreachable_host

Queremos conectar a un equipo al que no tenemos acceso y tenemos que conectarnos a través del equipo que puede acceder a dicho equipo de forma local. Este comando creaa una conexion al equipo que no tenemos acceso de forma oculta a través del equipo que si tiene acceso.

7) Copia del Host1 al Host2 a traves de nuestro equipo

1
ssh root@host1 "cd /somedir/tocopy/ && tar -cf – ." | ssh root@host2 "cd /samedir/tocopyto/ && tar -xf -"

Útil si tenemos acceso al host1 y host2, pero ellos no tienen acceso entre si, y tampoco tienen acceso a nosotros (ncat no funciona)

8)Ejecuta un programa con interfaz gráfica de forma remota

1
ssh -fX @

La configuración SSH necesita que:

X11Forwarding yes # por defecto en Debian

Aunque también es conveniente dejar activado:
Compression delayed

9) Crear una conexión persistente a un equipo

1
ssh -MNf @

Crea una conexion persistente SSH a un equipo. Combinado con la configuracion en nuestro ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no
Todas las conexiones SSH hacia el equipo irán por la conexion persistente en el Socket. Esto es muy util si estamos usando SSH para sincronizar archivos (usando rsync/sftp/cvs/svn) de forma regular porque no crea un socket nuevo cada vez que abre una conexion SSH.

10) Conectar la pantalla via SSH

1
ssh -t remote_host screen -r

Con este comando podemos ajuntar un monitor local a una conexión remota vía ssh

11) Llamada a puertos!

1
knock  3000 4000 5000 && ssh -p  user@host && knock  5000 4000 3000

Llama a puertos para abrir un servicio (ssh por ejemplo) y llama de nuevo al puerto para cerrar el puerto, hay que tener instalado knockd.
Ejemplo del archivo de configuración:
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12) Elimina una linea en un archivo de texto. Útil para solucionar problemas

1
ssh-keygen -R

En este caso es mejor usar herramientas dedicadas.

13) Ejecuta comando complejos de forma remota vía SSH, sin escapar las comillas

1
ssh host -l user $(

Más sencillo, más exportable: ssh host -l user “cat cmd.txt”

14) Copia una base de datos MySQL a un nuevo servidor via SSH en un solo comando

1
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost "mysql -uUSER -pPASS NEW_DB_NAME"

Dumps una base de datos MySQL a través de un túnel ssh comprimido y lo usa como entrada a mysql – i tener en cuenta que es el método más rápido de migrar una base de datos a un nuevo servidor.

15) Elimina una liea en un archivo de texto. Útil para arreglar advertencias de cambios de claves ssh

1
sed -i 8d ~/.ssh/known_hosts

16) Comando para copiar nuestra clave pública ssh a un nuevo servidor y no tenemos el comando ssh-copy-id

1
cat ~/.ssh/id_rsa.pub | ssh user@machine "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

Si usamos Mac OS X o cualquier otra variante *nix que no posee el comando ssh-copy-id, en una sola linea escribimos nuestra clave pública a un equipo remoto para no tener que meter la contraseña para logearnos.

17) Prueba de red para ver las condiciones de una conexion ssh

1
yes | pv | ssh $host "cat > /dev/null"

Conecta al equipo vía ssh y muestra la velocidad de transferencia, redirigiendo todos los datos transferidos a /dev/null
necesita tener pv instalado
Debian: ‘apt-get install pv’
Fedora: ‘yum install pv’ (puede que necesite los repos ‘extras’ habilitados)

18) Como establecer una conexion gáfica a la cual podamos conectarnos

1
ssh -t user@some.domain.com /usr/bin/screen -xRR

Mucho antes de que las terminales tabbed, la gente ha estado usando esto para abrir múltiples shells a través de un mismo terminal de texto. Combinado con ssh, nos da la posibilidad para abrir tantos shells como queramos en las opciones anteriores. Si nos deconectamos con “Ctrl-a d” o se cierra por accidente nuestra sesión ssh, todos los procesos que estemos ejecutando permanecen activos. otros comando gráficos útiles son “Ctrl-a c” (abre nuevo shell) y “Ctrl-a a” (alternar entre shells). Más comando gráficos aquí: http://aperiodic.net/screen/quick_reference

19) Resumir una copia via scp de un arvhivo de gran tamaño

1
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file

Puede resumir una copia fallida ( útil cuando se transfieren archivos grandes como db dumps a través de vpn ) usando rsync.
Necesita rsync instalado en ambos equipos.
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local > remote
or
rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote > local

20) Analizar el tráfico remoto via ssh con wireshark

1
ssh root@server.com 'tshark -f "port !22" -w -' | wireshark -k -i -

Así capturamos trafico en un equipo remoto con tshark, envía los datos raw pcap a través del enlace ssh, y lo muestra en wireshark. Con ctrl+C paramos la captura pero tambien nos cierra la ventana de wireshark. Esto podemos evitarlo usando el comando -c # en tshark para solo capturar un número # de paquetes, o redirigiendo los datos a través de una named pipe en vez de directamente de ssh a wireshark. Recomiendo filtrar tanto como se pueda en el comando a tshark para preservar en ancho de banda. tshark puede ser substituido con tcpdump usando:

1
ssh root@server.com tcpdump -w – 'port !22' | wireshark -k -i -

21) Tener una conexión ssh abierta de forma permanente

1
autossh -M50000 -t server.example.com 'screen -raAd mysession'

Abre una sesión ssh de forma permanente, fantástico para portátiles que pierden conectividad a Internet cuando se cambian de puntos de acceso inhalámbricos.

22) Clientes SSH más fuertes, rápidos y seguros

1
ssh -4 -C -c blowfish-cbc

Con esto forzamos la compresion IPv4, especificamos el cifrado con Blowfish. Dejamos cosas como el master control sessions porque no es compatible con la mayoría de los shells y ademas acelera el proceso.

23) Ahorrar ancho de banda con cstream

1
tar -cj /backup | cstream -t 777k | ssh host 'tar -xj -C /backup'

Con esto comprimimos con bzips una carpeta y la transferimos a una conexion de 777k bit/s.
cstream hace mucho más, si quereis mas informacion podeis ir a:http://www.cons.org/cracauer/cstream.html#usage
por ejemplo:

1
echo w00t, i’m 733+ | cstream -b1 -t2

24) Transferir nuestra clave SSH publica a otro equipo en uno solo paso

1
ssh-keygen; ssh-copy-id user@host; ssh user@host

Este comando nos permite transferir en un sencillo paso nuestra clave publica ssh para acceder al equipo sin necesidad de contraseña. Tened cuidado si ya tenemos tenemos la clave publica en el directorio ~/.ssh directory, porque puede ser que ssh-keygen la sobrescriba. ssh-copy-id copia la clave y la introduce en el equipo remoto en el archivo ~/.ssh/authorized_keys.

25) Copiar stdin al bufer de X11

1
ssh user@host cat /path/to/some/file | xclip

Si has tenido que scp un archivo al equipo de trabajo para enviarlo por mail como adjunto, xclip nos puede ayudar porque copia su stdin al buffer de x11, con ello solo tenemos que pulsar el botón central para pegar el contenido de ese archivo gigante.

Fuente Original: http://kikoseijo.com/25-de-los-comandos-mas-utiles-de-ssh/

Otros post SSH en fruteroloco.es:

http://fruteroloco.es/content/copiar-archivos-remoto-desde-terminal-y-viceversa-comando-scp

http://fruteroloco.es/content/comandos-poco-usados

Contenido por etiquetas

Linux Linux Tips Solución Linux Help Drupal Arch-Linux Media Front Hacking Terminal Linux-Distro Shell Mac OSX Videos Linux seguridad Manjaro Windows Servers Consola Linux Guías Comandos Android Ubuntu MacOS Drush Screencast Joomla Cracking Debian PHP Backtrack Command Line Virtualmin Xampp Compiz Fusion Media Youtube Server Drupal 7 Skype mysql Instalación Seguridad Telefonía ROOT Servidor Local ClamAv hacking-windows php7 Windows 10 MS-SQL Antergos Sysmonitor CyanogenMod PDF Libros ownCloud KDE Samba Kali Linux Joomla Seguridad Setup Webmin Grub Views Elastix Drush_Make Escritorio Descargar Nivo Slider error Virtual Wine Whatsapp SCP SSH Unix servidor web Noticias Rootear SQL dd Python google Covid19 sars-cov2 apache Líder Kali red Boot Drush Windows url Limpias ROM Top 500 Metasploit SEO url canonica Katana Asterisk Iphone Chrome Youtube Distros Xampp 1.8.1 XFCE Joomla 3.0 Centos Galaxy S (bootstrap) DARKY´S ROM .make dselect Xwinwrap Views Horizontal Slider Webform GCP grep Triple-Boot exec: 90: : Permission denied Webform_Layout Driver r8168 Open DNS CryptKeeper Kingsoft Office WPS 1and1 VMplayer Inyection SQL Viber Recovery Galaxy S4 Wake On Lan Wol Drupal 8 Real Estate Java6 Alsi Atraci Tails Telegram Sigram duff Fish ncdu PBX g729 Códec Imagesloaded String Streaming htaccess Mounty Django C++ C XP ReacOS MITM Ettercap Wireshark Postfix eXtern OS google-athenticator.app WayBackMachine web.archive.org Homebrew 2-FACTOR 2 factores gmail python3 facturas FOCA mpdf Vaio Sony fruteroloco scanner bmon pipenv authenticator Rarcrack SA-CORE-2013-003 Prestashop LAMP Supercomputadoras sniffing Script Google-Earth Arranque compartir firewall sistema bitacora fallo firestarter Aircrack-ng Galaxy S3 vs Iphone 5 Horizontal Slider Media Vimeo MediaFront Acquia Tilt 3D Cain & Abel Office winAUTOPWN gh22ns50 Metasploitable LPS Conky Webform Layout Gimp Munich Ahorra Papá FINK youtube-dl Sox Redgum Archserver Secure Copy Shutter Encriptar Enlaces Externos Nube Joomla 2.5 Migrar FTP Redes Fing Overlook Fing PhpMyadmin internal server error 500 Cerebro FDesktopRecorder Piropos Geek Texto Sustituir Jdownloader 10 Millones Line Open Source