{"id":25981,"date":"2020-05-12T05:00:25","date_gmt":"2020-05-12T03:00:25","guid":{"rendered":"https:\/\/eltallerdelbit.com\/?p=25981"},"modified":"2020-08-31T01:43:40","modified_gmt":"2020-08-30T23:43:40","slug":"modo-depuracion-ssh-debug","status":"publish","type":"post","link":"https:\/\/eltallerdelbit.com\/modo-depuracion-ssh-debug\/","title":{"rendered":"Modo de depuraci\u00f3n SSH | Debug"},"content":{"rendered":"
<\/p>\n
Cuando ejecutemos el modo depuraci\u00f3n SSH<\/strong> (modo DEBUG<\/strong><\/em>) veremos realmente lo que est\u00e1 pasando mientras nos conectamos a un servidor Open SSH<\/a>. <\/p>\n Al utilizar el par\u00e1metro -v<\/strong> desde un cliente SSH, ejecutaremos SSH en modo detallado (DEBUG, o “verbose<\/em>“) lo cual nos mostrara info acerca de la progresi\u00f3n de la conexi\u00f3n. <\/br><\/br> <\/br><\/br> <\/p>\n <\/p>\n <\/p>\n Una vuelta de tuerca ser\u00eda registrar toda la info de la conexi\u00f3n SSH en un fichero. <\/p>\n <\/p>\n tee<\/a> es una utilidad que recibe la “entrada estandar” , la escribe en un archivo, y escribe la “salida estandar” Usaremos tee<\/em> de esta forma:<\/p>\n <\/p>\n Nos conectamos por ssh,\u00a0 ejecutamos los comandos necesarios y despu\u00e9s descubrimos el contenido del fichero de log creado por tee<\/em>: Podemos ver que se han registrado todos los comandos ejecutados en la sesi\u00f3n SSH.<\/p>\n <\/p>\n En lugar de registrar la conexi\u00f3n SSH al conectarnos, tambi\u00e9n podemos habilitar el modo depuraci\u00f3n en el servidor SSH<\/strong>, para as\u00ed registrar m\u00e1s info sobre las conexiones SSH que se establezcan.<\/p>\n <\/p>\n A\u00f1adimos <\/p>\n en el fichero \/etc\/ssh\/sshd_config<\/strong><\/em> del servidor SSH<\/p>\n Por defecto nos encontraremos Loglevel INFO<\/em> —> Lo cambiamos por LogLevel DEBUG<\/strong><\/em> para aumentar la depuraci\u00f3n (la verbosidad de los datos que obtendremos). acepta hasta DEBUG 3, seg\u00fan el modo de depuraci\u00f3n que queramos. (DEBUG es igual que DEBUG1) <\/p>\n <\/p>\n A continuaci\u00f3n conoceremos algunos ficheros de Linux que contienen info interesante sobre sesiones e inicio de sesi\u00f3n en m\u00e1quinas Unix. En el caso del fichero wtmp<\/em>, last<\/em> muestra todos los intentos de sesi\u00f3n. No podemos usar por ejemplo el comando cat<\/em>, porque la salida ser\u00e1 ilegible:<\/p>\n <\/p>\n <\/p>\n Veamos pues los siguientes ficheros:<\/p>\n <\/p>\n Para ver el contenido de estos ficheros usaremos el comando last<\/em> :<\/p>\n <\/p>\n <\/p>\n Tambi\u00e9n podemos usar el comando last<\/em> para ver el contenido de los anteriores ficheros : wtmp<\/strong>, utmp<\/strong>, btmp<\/strong>. Veamos c\u00f3mo. <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Ejecutamos la ayuda de Linux para ver la explicaci\u00f3n de las directivas de SSH y sus posibles configuraciones:<\/p>\n <\/p>\n <\/p>\n <\/p>\n\n Cuando ejecutemos el modo depuraci\u00f3n SSH veremos realmente lo que est\u00e1 pasando mientras nos conectamos a un servidor Open SSH.<\/p>\n","protected":false},"author":1,"featured_media":25982,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false},"categories":[1268],"tags":[1119],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/posts\/25981"}],"collection":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/comments?post=25981"}],"version-history":[{"count":0,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/posts\/25981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/media\/25982"}],"wp:attachment":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/media?parent=25981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/categories?post=25981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/tags?post=25981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}
\n <\/p>\n\n
\n
\n
\n <\/br><\/br>
\nEsto es especialmente \u00fatil cuando tengamos problemas y no sepamos en qu\u00e9 punto de la conexi\u00f3n SSH podemos tener un problema; entonces con el modo depuraci\u00f3n SSH veremos d\u00f3nde est\u00e1 el error o los errores.
\n <\/br><\/br>
\n–> Ejecutamos el modo de depuraci\u00f3n SSH<\/strong> de esta forma: <\/p>\nssh -v usuario@maquina<\/pre>\n
\n–> Igualmente cuando cerremos sesi\u00f3n de SSH veremos mensajes de depuraci\u00f3n avanzada en el fichero <\/p>\n\/var\/log\/auth.log<\/pre>\n
\n–> Tambi\u00e9n podemos aumentar incluso el nivel de verbosidad por ejemplo el a nivel 2 y al nivel 3 (definido en el fichero \/etc\/ssh\/sshd_config<\/strong><\/em>)para de esta forma obtener todav\u00eda m\u00e1s mensajes de depuraci\u00f3n:<\/p>\nLogLevel DEBUG2<\/pre>\n
LogLevel DEBUG3<\/pre>\n
\n
\n <\/p>\n\r\nroot@RASP:\/home\/pi# ssh -v pi@192.168.-.-\r\nOpenSSH_7.4p1 Raspbian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019\r\ndebug1: Reading configuration data \/etc\/ssh\/ssh_config\r\ndebug1: \/etc\/ssh\/ssh_config line 19: Applying options for *\r\ndebug1: Connecting to 192.168.8.194 [192.168.-.-] port 22.\r\ndebug1: Connection established.\r\ndebug1: permanently_set_uid: 0\/0\r\ndebug1: identity file \/root\/.ssh\/id_rsa type 1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file \/root\/.ssh\/id_rsa-cert type -1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file \/root\/.ssh\/id_dsa type -1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file \/root\/.ssh\/id_dsa-cert type -1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file \/root\/.ssh\/id_ecdsa type -1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file \/root\/.ssh\/id_ecdsa-cert type -1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file \/root\/.ssh\/id_ed25519 type -1\r\ndebug1: key_load_public: No such file or directory\r\ndebug1: identity file \/root\/.ssh\/id_ed25519-cert type -1\r\ndebug1: Enabling compatibility mode for protocol 2.0\r\ndebug1: Local version string SSH-2.0-OpenSSH_7.4p1 Raspbian-10+deb9u7\r\ndebug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Raspbian-10+deb9u2\r\ndebug1: match: OpenSSH_7.4p1 Raspbian-10+deb9u2 pat OpenSSH* compat 0x04000000\r\ndebug1: Authenticating to 192.168.-.-:22 as 'pi'\r\ndebug1: SSH2_MSG_KEXINIT sent\r\ndebug1: SSH2_MSG_KEXINIT received\r\ndebug1: kex: algorithm: curve25519-sha256\r\ndebug1: kex: host key algorithm: ecdsa-sha2-nistp256\r\ndebug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC:
\n
\n <\/p>\nRegistrar en un log la conexi\u00f3n SSH y los comandos ejecutados<\/h3>\n
\n <\/p>\n\n
ssh -v usuario@IP 2>fichero.txt<\/pre>\n
\n
\n <\/p>\nssh usuario@servidor| tee -a archivo<\/pre>\n
\n <\/p>\n
\n <\/p>\n
\n
\n
\n <\/p>\nHabilitar el modo Debug desde la configuraci\u00f3n de SSH<\/strong><\/h3>\n
LogLevel DEBUG<\/pre>\n
\n <\/p>\n
\n <\/p>\n
\n <\/p>\n
\n <\/p>\nOtros logs donde encontrar info de las conexiones SSH<\/h3>\n
\n <\/p>\n\u00bfC\u00f3mo se usa el comando last<\/em> en Linux?<\/strong><\/h4>\n
\nUtilizaremos el comando last<\/strong><\/em> para leer correctamente la informaci\u00f3n los ficheros wtmp<\/em>,utmp<\/em> y btmp<\/em>.
\nlast<\/em> es un comando de linux que investiga dentro del fichero wtmp,utmp y btmp y muestra una lista con informaci\u00f3n relativa a las sesiones. <\/p>\n
\n <\/p>\n\n
last<\/pre>\n
\n <\/p>\n–> Ver los \u00faltimos inicios de sesi\u00f3n<\/strong> (fichero \/var\/log\/wtmp<\/strong>)<\/h4>\n
\n <\/p>\n–> Ver todas las sesiones actuales<\/strong> (fichero \/var\/log\/utmp<\/strong>)<\/span><\/h4>\n
last\u00a0 \/var\/log\/utmp<\/pre>\n
–> Ver todos los inicios de sesi\u00f3n incorrectos<\/strong> (fichero \/var\/log\/btmp<\/strong>)<\/h4>\n
last -f \/var\/log\/btmp<\/pre>\n
Mostrar la ayuda (man<\/em>) del fichero sshd_config<\/em><\/a><\/span><\/span><\/h3>\n
man sshd_config<\/pre>\n