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