{"id":546,"date":"2021-06-03T01:05:11","date_gmt":"2021-06-03T01:05:11","guid":{"rendered":"http:\/\/dsantana.uas.edu.mx\/?p=546"},"modified":"2025-09-23T19:02:21","modified_gmt":"2025-09-23T19:02:21","slug":"scp","status":"publish","type":"post","link":"https:\/\/dsantana.uas.edu.mx\/index.php\/2021\/06\/03\/scp\/","title":{"rendered":"SCP"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\ud83d\udd10 Transferencia Segura de Archivos con SCP<\/h2>\n\n\n\n<p>El comando&nbsp;<strong>SCP (Secure Copy Protocol)<\/strong>&nbsp;permite transferir archivos de forma segura entre equipos locales y remotos en sistemas Linux. Utiliza el protocolo SSH para garantizar la confidencialidad e integridad de los datos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udce6 \u00bfPara qu\u00e9 sirve SCP?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Copiar archivos desde tu m\u00e1quina local a un servidor remoto.<\/li>\n\n\n\n<li>Descargar archivos desde un servidor remoto a tu m\u00e1quina local.<\/li>\n\n\n\n<li>Transferir archivos entre dos servidores remotos sin intervenci\u00f3n local.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Ventajas de SCP<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udd12 Seguridad mediante cifrado SSH.<\/li>\n\n\n\n<li>\u26a1 Transferencia r\u00e1pida y directa.<\/li>\n\n\n\n<li>\ud83e\udde9 F\u00e1cil integraci\u00f3n en scripts y automatizaciones.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd04 Actualizaci\u00f3n del Servidor<\/h2>\n\n\n\n<p>Antes de comenzar con la configuraci\u00f3n de SCP y la automatizaci\u00f3n de respaldos, es fundamental asegurarse de que el servidor est\u00e9 actualizado. Esto garantiza estabilidad, seguridad y compatibilidad con las herramientas que se utilizar\u00e1n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y<\/code><\/pre>\n\n\n\n<p>\ud83d\udca1&nbsp;<strong>Consejo:<\/strong>&nbsp;Puedes agregar&nbsp;<code>apt dist-upgrade<\/code>&nbsp;si deseas actualizar tambi\u00e9n los paquetes que cambian dependencias o eliminan otros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd10 Instalaci\u00f3n de Herramientas de Seguridad<\/h2>\n\n\n\n<p>Para facilitar la autenticaci\u00f3n sin intervenci\u00f3n manual durante las transferencias, instala&nbsp;<code>sshpass<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install sshpass -y<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Generaci\u00f3n de Claves SSH<\/h2>\n\n\n\n<p>Genera un par de claves p\u00fablica\/privada para establecer una conexi\u00f3n segura entre el servidor local y el remoto:<\/p>\n\n\n\n<p>ssh-keygen<\/p>\n\n\n\n<p>Presiona Enter en cada paso para aceptar los valores por defecto. Luego, copia la clave p\u00fablica al servidor remoto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Generating public\/private rsa key pair.\nEnter file in which to save the key (\/home\/debian\/.ssh\/id_rsa):&#91;Pulse Intro aqu\u00ed]\nEnter passphrase (empty for no passphrase): &#91;Pulse Intro aqu\u00ed]\nEnter same passphrase again: &#91;Pulse Intro aqu\u00ed]\nYour identification has been saved in \/home\/debian\/.ssh\/id_rsa.\nYour public key has been saved in \/home\/debian\/.ssh\/id_rsa.pub.\nThe key fingerprint is:\n33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 debian@local-host<\/code><\/pre>\n\n\n\n<p>Copie la clave p\u00fablica al host remoto usando ssh-copy-id:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-copy-id -i ~\/.ssh\/id_rsa.pub 192.168.1.200\n\ndebian@remote-host's password:\nNow try logging into the machine, with \"ssh 'remote-host'\", and check in:\n.ssh\/authorized_keys\nto make sure we haven't added extra keys that you weren't expecting.\n\n\u2705 Esto permitir\u00e1 conectarte sin necesidad de ingresar la contrase\u00f1a cada vez.\n\n<strong>Nota<\/strong>: ssh-copy-id a\u00f1ade las claves para el control remoto ssh-anfitri\u00f3n \/ authorized_key.<\/code><\/pre>\n\n\n\n<p>Entrar al host remoto sin introducir la contrase\u00f1a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh 192.168.1.200\n\nLast login: Sun Nov 16 17:22:33 2012 from 192.168.1.2\n\n&#91;Note: SSH no preguntar\u00e1 por el password.]<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"675\" height=\"425\" src=\"https:\/\/dsantana.uas.edu.mx\/wp-content\/uploads\/2021\/06\/image-6.png\" alt=\"\" class=\"wp-image-566\"\/><\/figure>\n\n\n\n<p>Si ha cargado llaves del ssh-agent con el ssh-add, entonces ssh-copy-id recibir\u00e1 las llaves del ssh-agent para copiar en el host remoto, es decir, que copia las claves proporcionadas por el comando&nbsp;<em><strong>ssh-add -L<\/strong><\/em>&nbsp;para el host remoto, cuando no pasa la opci\u00f3n -i para el ssh-copy-id.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt; Si al escribir, obtenemos un resultado similar a este:\ndebian@debian:~$ ssh-add -L\nThe agent has no identities.\n\n&gt;&gt; Escribimos lo siguiente para pasar la \"shell al sistema remoto\".\ndebian@debian:~$ ssh-agent $SHELL  \n\n&gt;&gt; Introducimos la clave (si procede, vac\u00eda, para no pedirla)\ndebian@debian:~$ ssh-add \nIdentity added: \/home\/debian\/.ssh\/id_rsa (\/home\/debian\/.ssh\/id_rsa) \n\n&gt;&gt; Lo verificamos\ndebian@debian:~$ ssh-add -L \nssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV\naHrtPhTYpq7kIEMUNzApnyxsHpH1tQ\/Ow== \/home\/debian\/.ssh\/id_rsa\n\n&gt;&gt; (En princpio, podr\u00eda no hacer falta, pero si quieres puedes copiar la Id al host remoto.)\ndebian@local-host$ ssh-copy-id -i remote-host \ndebian@remote-host's password: \nNow try logging into the machine, with \"ssh 'remote-host'\", \nand check in: .ssh\/authorized_keys to make sure we haven't added extra keys that you weren't expecting. \n\n&#91;Nota: Esto ha a\u00f1adido la clave mostrado por ssh-add -L]<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Crear la relaci\u00f3n entre los servidores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sshpass -p \"debian\" scp -o UserKnownHostsFile=\/dev\/null -o StrictHostKeyChecking=no -r debian@192.168.1.200:\/home\/debian \/home\/debian\/<\/code><\/pre>\n\n\n\n<p>Crear un archivo de nombre scp.sh<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano scp.sh<\/code><\/pre>\n\n\n\n<p>Incrustar el siguiente c\u00f3digo: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\ndate\n\n# Shell script que es ejecutado por medio de crontab, el\n# cual contiene c\u00f3digo que servir\u00e1 para eliminar carpetas\n# de respaldo que no hayan sido modificados en 90 d\u00edas.\n# ------------------------------------------------------\n\nfind \/home\/debian\/backups\/* -type f -ctime +18 | xargs rm -rf\nsshpass -p \"debian\" ssh debian@192.168.1.200 \"find backups\/debian\/* -type f -ctime +18 | xargs rm -rf\"\n\n# Scrip Basico de Respaldo de MySQL\n\n# Directorio de Trabajo\nbackup_parent_dir=\"\/home\/debian\/backups\"\n\n\n# MySQL - Ingresar las credenciales de un usuario con permisos para usar mysqldump para exportar las BDs\nmysql_user=\"root\"\nmysql_password=\"debian\"\n\n\n# Verificacion de MySQL password\necho exit | mysql --user=${mysql_user} --password=${mysql_password} -B 2&gt;\/dev\/null\nif &#91; \"$?\" -gt 0 ]; then\n  echo \"Contrase\u00f1a del usuario ${mysql_user} incorrecto\"\n  exit 1\nfi\n\n\n# Creando Respaldo y Configurando los Permisos\nbackup_date=`date +%d-%m-%Y_%H%M`\nbackup_dir=\"${backup_parent_dir}\/${backup_date}\"\necho \"Directorio de respaldo: ${backup_dir}\"\nmkdir -p \"${backup_dir}\"\nchmod 700 \"${backup_dir}\"\n\n# Capturar la Base de Datos de MySQL\nmysql_databases=`echo 'show databases' | mysql --user=${mysql_user} --password=${mysql_password} -B | sed \/^Database$\/d`\n\n# Respaldando y Comprimiendo las Bases de Datos\nfor database in $mysql_databases\ndo\n  if &#91; \"${database}\" == \"information_schema\" ] || &#91; \"${database}\" == \"performance_schema\" ]; then\n        additional_mysqldump_params=\"--skip-lock-tables\"\n  else\n        additional_mysqldump_params=\"\"\n  fi\n  echo \"Creando respaldo de base de datos \\\"${database}\\\".\"\n  mysqldump ${additional_mysqldump_params} --user=${mysql_user} --password=${mysql_password} ${database} | gzip &gt; \"${backup_dir}\/${database}.gz\"\n  chmod 600 \"${backup_dir}\/${database}.gz\"\ndone\n\necho \"Copiando archivos\"\ncp -R \/home\/debian \"${backup_dir}\/debian\"\necho \"Copia finalizada\"\n\necho \"Se hara compresion\"\ntar -C backups\/ -zcf backups\/\"${backup_date}\".tar.gz \"${backup_date}\" --remove-files\necho \"Compresi\u00f3n finalizada\"\n\n\n# Mandar carpeta a servidor remoto (se necesita el equipo ya\n# est\u00e9 autorizado para ssh con el fin de evitar autenticaci\u00f3n\necho \"Iniciando subida de archivo a servidor\"\nsshpass -p \"debian\" scp -r \"${backup_dir}.tar.gz\" debian@192.168.1.200:\/home\/debian\/backups\/\n\necho \"Terminada la subida de respaldo a servidor\"\n\necho \"Fin del script\"\n\ndate<\/code><\/pre>\n\n\n\n<p>Ejecutar el archivo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo bash scp.sh<\/code><\/pre>\n\n\n\n<p>Pasando el tiempo de espera de la transferencia de archivos el resultado sera el siguiente en el servidor remoto:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" width=\"675\" height=\"425\" src=\"https:\/\/dsantana.uas.edu.mx\/wp-content\/uploads\/2021\/06\/image-3.png\" alt=\"\" class=\"wp-image-547\"\/><\/figure>\n\n\n\n<p>Tres peque\u00f1as molestias de ssh-copy-id<br><br>A continuaci\u00f3n se presentan algunas molestias menores del ssh-copy-id.<br><br><strong>Default public key<\/strong>: ssh-copy-id utiliza&nbsp;<strong>~\/.ssh\/ identity.pub<\/strong>&nbsp;como el archivo predeterminado de clave p\u00fablica (es decir, cuando no hay valor se pasa a la opci\u00f3n -i). En su lugar, me gustar\u00eda utilizar id_dsa.pub o id_rsa.pub o identity.pub como claves predeterminadas. es decir, si cualquiera de ellos existe, se debe copiar para el host remoto. Si dos o tres de ellos existen, se debe copiar identity.pub como predeterminado.<br><br><strong>El agente no tiene identidad<\/strong>:&nbsp;<strong>Cuando el ssh-agent se est\u00e1 ejecutando y ssh-add -L devuelve \u00abEl agente no tiene identidad\u00bb<\/strong>&nbsp;(es decir, no hay claves que se agregan al ssh-agent), el ssh-copy-id todav\u00eda copiar\u00e1 el mensaje \u00abEl agente no tiene identidad\u00bb para la entrada de la m\u00e1quina remota de authorized_keys.<\/p>\n\n\n\n<p><strong>Duplicar entrada en authorized_keys<\/strong>: Deseo ssh-copy-id valida la entrada duplicada en authorized_keys del host remoto. Si ejecuta ssh-copy-id varias veces en el host local, se mantendr\u00e1 anexar la misma clave en el archivo de authorized_keys del host remoto sin comprobaci\u00f3n de duplicados. Incluso con las entradas duplicadas, todo funciona como se esperaba.&nbsp;<\/p>\n\n\n\n<p><strong>Archivo de ejemplo funcionando:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\ndate\n\n# Shell script que es ejecutado por medio de crontab, el\n# cual contiene c\u00f3digo que servir\u00e1 para eliminar carpetas\n# de respaldo que no hayan sido modificados en 90 d\u00edas.\n# ------------------------------------------------------\n\nfind \/home\/debian\/backups\/* -type f -ctime +18 | xargs rm -rf\nsshpass -p \"debian\" ssh debian@192.168.1.11 \"find \/home\/debian\/backups\/* -type f -ctime +18 | xargs rm -rf\"\n\n# Scrip Basico de Respaldo de MySQL\n\n# Directorio de Trabajo\nbackup_parent_dir=\"\/home\/debian\/backups\"\n\n\n# MySQL - Ingresar las credenciales de un usuario con permisos para usar mysqldump para exportar las BDs\nmysql_user=\"root\"\nmysql_password=\"debian\"\n\n\n# Verificacion de MySQL password\necho exit | mysql --user=${mysql_user} --password=${mysql_password} -B 2&gt;\/dev\/null\nif &#91; \"$?\" -gt 0 ]; then\n  echo \"Contrase\u00f1a del usuario ${mysql_user} incorrecto\"\n  exit 1\nfi\n\n\n# Creando Respaldo y Configurando los Permisos\nbackup_date=`date +%d-%m-%Y_%H%M`\nbackup_dir=\"${backup_parent_dir}\/${backup_date}\"\necho \"Directorio de respaldo: ${backup_dir}\"\nmkdir -p \"${backup_dir}\"\nchmod 700 \"${backup_dir}\"\n\n# Capturar la Base de Datos de MySQL\nmysql_databases=`echo 'show databases' | mysql --user=${mysql_user} --password=${mysql_password} -B | sed \/^Database$\/d`\n\n# Respaldando y Comprimiendo las Bases de Datos\nfor database in $mysql_databases\ndo\n  if &#91; \"${database}\" == \"information_schema\" ] || &#91; \"${database}\" == \"performance_schema\" ]; then\n        additional_mysqldump_params=\"--skip-lock-tables\"\n  else\n        additional_mysqldump_params=\"\"\n  fi\n  echo \"Creando respaldo de base de datos \\\"${database}\\\".\"\n  mysqldump ${additional_mysqldump_params} --user=${mysql_user} --password=${mysql_password} ${database} | gzip &gt; \"${backup_dir}\/${database}.gz\"\n  chmod 600 \"${backup_dir}\/${database}.gz\"\ndone\n\necho \"Copiando archivos\"\ncp -R \/home\/debian \"${backup_dir}\/debian\"\necho \"Copia finalizada\"\n\necho \"Se hara compresion\"\ntar -C backups\/ -zcf backups\/\"${backup_date}\".tar.gz \"${backup_date}\" --remove-files\necho \"Compresi\u00f3n finalizada\"\n\n\n# Mandar carpeta a servidor remoto (se necesita el equipo ya\n# est\u00e9 autorizado para ssh con el fin de evitar autenticaci\u00f3n\necho \"Iniciando subida de archivo a servidor\"\nsshpass -p \"debian\" scp -r \"${backup_dir}.tar.gz\" debian@192.168.1.11:\/home\/debian\/backups\/\n\necho \"Terminada la subida de respaldo a servidor\"\n\necho \"Fin del script\"\n\ndate\n<\/code><\/pre>\n\n\n\n<p><strong>Videos:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"20210603 - Seguridad en Redes - Creaci\u00f3n de claves p\u00fablicas y privadas\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/O_9ElPhB68Y?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><strong>Referencias:<\/strong><\/p>\n\n\n\n<p>linuxize.com (2020). <em>How to Use SCP Command to Securely Transfer Files<\/em>. Recuperado Julio 12, 2021 de <a href=\"https:\/\/linuxize.com\/post\/how-to-use-scp-command-to-securely-transfer-files\/\">https:\/\/linuxize.com\/post\/how-to-use-scp-command-to-securely-transfer-files\/<\/a><\/p>\n\n\n\n<p>haydenjames.io (2020). <em>SCP Linux \u2013 Securely Copy Files Using SCP examples<\/em>. Recuperado Julio 12, 2021 de <a href=\"https:\/\/haydenjames.io\/linux-securely-copy-files-using-scp\/\">https:\/\/haydenjames.io\/linux-securely-copy-files-using-scp\/<\/a><\/p>\n\n\n\n<p>hypexr.org (2021). <em>Example syntax for Secure Copy (<strong>scp<\/strong>)<\/em>. Recuperado Julio 12, 2021 de <a href=\"http:\/\/www.hypexr.org\/linux_scp_help.php\">http:\/\/www.hypexr.org\/linux_scp_help.php<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udd10 Transferencia Segura de Archivos con SCP El comando&nbsp;SCP (Secure Copy Protocol)&nbsp;permite transferir archivos de forma segura entre equipos locales y remotos en sistemas Linux. Utiliza el protocolo SSH para garantizar la confidencialidad e integridad de los datos. \ud83d\udce6 \u00bfPara qu\u00e9 sirve SCP? \u2705 Ventajas de SCP \ud83d\udd04 Actualizaci\u00f3n del Servidor Antes de comenzar con la configuraci\u00f3n de SCP y la automatizaci\u00f3n de respaldos, es fundamental asegurarse de que el servidor est\u00e9 actualizado. Esto garantiza estabilidad, seguridad y compatibilidad con las herramientas que se utilizar\u00e1n. \ud83d\udca1&nbsp;Consejo:&nbsp;Puedes agregar&nbsp;apt dist-upgrade&nbsp;si deseas actualizar tambi\u00e9n los paquetes que cambian dependencias o eliminan otros. \ud83d\udd10 Instalaci\u00f3n de Herramientas de Seguridad Para facilitar la autenticaci\u00f3n sin intervenci\u00f3n manual durante las transferencias, instala&nbsp;sshpass: \ud83d\udd11 Generaci\u00f3n de Claves SSH Genera un par de claves p\u00fablica\/privada para establecer una conexi\u00f3n segura entre el servidor local y el remoto: ssh-keygen Presiona Enter en cada paso para aceptar los valores por defecto. Luego, copia la clave p\u00fablica al servidor remoto: Copie la clave p\u00fablica al host remoto usando ssh-copy-id: Entrar al host remoto sin introducir la contrase\u00f1a: Si ha cargado llaves del ssh-agent con el ssh-add, entonces ssh-copy-id recibir\u00e1 las llaves del ssh-agent para copiar en el host remoto, es decir, que copia las claves proporcionadas por el comando&nbsp;ssh-add -L&nbsp;para el host remoto, cuando no pasa la opci\u00f3n -i para el ssh-copy-id. Crear la relaci\u00f3n entre los servidores: Crear un archivo de nombre scp.sh Incrustar el siguiente c\u00f3digo: Ejecutar el archivo Pasando el tiempo de espera de la transferencia de archivos el resultado sera el siguiente en el servidor remoto: Tres peque\u00f1as molestias de ssh-copy-id A continuaci\u00f3n se presentan algunas molestias menores del ssh-copy-id. Default public key: ssh-copy-id utiliza&nbsp;~\/.ssh\/ identity.pub&nbsp;como el archivo predeterminado de clave p\u00fablica (es decir, cuando no hay valor se pasa a la opci\u00f3n -i). En su lugar, me gustar\u00eda utilizar id_dsa.pub o id_rsa.pub o identity.pub como claves predeterminadas. es decir, si cualquiera de ellos existe, se debe copiar para el host remoto. Si dos o tres de ellos existen, se debe copiar identity.pub como predeterminado. El agente no tiene identidad:&nbsp;Cuando el ssh-agent se est\u00e1 ejecutando y ssh-add -L devuelve \u00abEl agente no tiene identidad\u00bb&nbsp;(es decir, no hay claves que se agregan al ssh-agent), el ssh-copy-id todav\u00eda copiar\u00e1 el mensaje \u00abEl agente no tiene identidad\u00bb para la entrada de la m\u00e1quina remota de authorized_keys. Duplicar entrada en authorized_keys: Deseo ssh-copy-id valida la entrada duplicada en authorized_keys del host remoto. Si ejecuta ssh-copy-id varias veces en el host local, se mantendr\u00e1 anexar la misma clave en el archivo de authorized_keys del host remoto sin comprobaci\u00f3n de duplicados. Incluso con las entradas duplicadas, todo funciona como se esperaba.&nbsp; Archivo de ejemplo funcionando: Videos: Referencias: linuxize.com (2020). How to Use SCP Command to Securely Transfer Files. Recuperado Julio 12, 2021 de https:\/\/linuxize.com\/post\/how-to-use-scp-command-to-securely-transfer-files\/ haydenjames.io (2020). SCP Linux \u2013 Securely Copy Files Using SCP examples. Recuperado Julio 12, 2021 de https:\/\/haydenjames.io\/linux-securely-copy-files-using-scp\/ hypexr.org (2021). Example syntax for Secure Copy (scp). Recuperado Julio 12, 2021 de http:\/\/www.hypexr.org\/linux_scp_help.php<\/p>\n","protected":false},"author":1,"featured_media":566,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[58,16,5,12,10,6],"tags":[],"class_list":["post-546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatizacion","category-debian","category-docencia","category-linux","category-sistemas-operativos","category-talleres"],"_links":{"self":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/comments?post=546"}],"version-history":[{"count":14,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/546\/revisions"}],"predecessor-version":[{"id":2304,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/546\/revisions\/2304"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media\/566"}],"wp:attachment":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media?parent=546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/categories?post=546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/tags?post=546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}