{"id":1621,"date":"2026-04-14T17:50:45","date_gmt":"2026-04-14T17:50:45","guid":{"rendered":"https:\/\/orpot.com\/blog\/?p=1621"},"modified":"2026-04-14T17:50:45","modified_gmt":"2026-04-14T17:50:45","slug":"como-hacer-deploy-de-un-sitio-astro-a-cpanel-usando-ssh-desde-linux-sin-github","status":"publish","type":"post","link":"https:\/\/orpot.com\/blog\/como-hacer-deploy-de-un-sitio-astro-a-cpanel-usando-ssh-desde-linux-sin-github\/","title":{"rendered":"C\u00f3mo hacer deploy de un sitio Astro a cPanel usando SSH desde Linux (sin GitHub)"},"content":{"rendered":"<p>Migrar un sitio a una arquitectura m\u00e1s moderna como Astro es una gran decisi\u00f3n, pero cuando trabajas con hosting tradicional como cPanel, surge una duda com\u00fan:<\/p>\n<h3>\u00bfC\u00f3mo hacer deploy sin depender de GitHub o pipelines externos?<\/h3>\n<p>En este art\u00edculo te explico c\u00f3mo hacer un deploy directo desde tu m\u00e1quina Linux a cPanel usando SSH + rsync, de forma r\u00e1pida, segura y profesional.<\/p>\n<h3>\u00bfPor qu\u00e9 usar SSH en lugar de FTP?<\/h3>\n<p>Aunque FTP sigue siendo com\u00fan, tiene varias desventajas:<\/p>\n<ul>\n<li>Transferencias m\u00e1s lentas<\/li>\n<li>Menor control sobre archivos<\/li>\n<li>No hay sincronizaci\u00f3n inteligente<\/li>\n<\/ul>\n<p><strong>Con SSH y rsync obtienes:<\/strong><\/p>\n<ul>\n<li>Transferencias r\u00e1pidas (solo sube cambios)<\/li>\n<li>Sincronizaci\u00f3n autom\u00e1tica<\/li>\n<li>Control total del servidor<\/li>\n<li>Flujo de trabajo profesional<\/li>\n<\/ul>\n<h3>Requisitos<\/h3>\n<p>Antes de empezar necesitas:<\/p>\n<ul>\n<li>Acceso a cPanel<\/li>\n<li>SSH habilitado en tu hosting<\/li>\n<li>Una m\u00e1quina Linux (ej. Linux Mint, Ubuntu)<\/li>\n<li>Proyecto Astro funcionando<\/li>\n<\/ul>\n<h3>Paso 1: generar una llave SSH<\/h3>\n<p>En tu terminal ejecuta:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">ssh-keygen -t ed25519 -C \"cpanel-deploy\" -f ~\/.ssh\/cpanel_astro<\/pre>\n<p>Esto generar\u00e1:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">~\/.ssh\/cpanel_astro\r\n~\/.ssh\/cpanel_astro.pub<\/pre>\n<p>&nbsp;<\/p>\n<p>Paso 2: subir la llave a cPanel<\/p>\n<ul>\n<li>Entra a cPanel<\/li>\n<li>Ve a SSH Access<\/li>\n<li>Entra a Manage SSH Keys<\/li>\n<li>Click en Import Key<\/li>\n<li>Pega el contenido de:<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">cat ~\/.ssh\/cpanel_astro.pub<\/pre>\n<ul>\n<li>Guarda<\/li>\n<li>Haz clic en Authorize<\/li>\n<\/ul>\n<p>Este paso es clave: si no autorizas la llave, no podr\u00e1s conectarte.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">ssh -i ~\/.ssh\/cpanel_astro usuario@tudominio.com<\/pre>\n<p>Si usas puerto personalizado:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">ssh -i ~\/.ssh\/cpanel_astro -p 2222 usuario@tudominio.com<\/pre>\n<h3>Paso 4: ubicar la carpeta del sitio<\/h3>\n<p>Dentro del servidor:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">cd public_html\r\npwd\r\nls<\/pre>\n<p>Normalmente ser\u00e1:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">\/home\/usuario\/public_html<\/pre>\n<h3>Paso 5: compilar el proyecto Astro<\/h3>\n<p>En tu m\u00e1quina local:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">npm run build<\/pre>\n<p>Esto genera la carpeta:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">dist\/<\/pre>\n<h3>Paso 6: subir el sitio con rsync<\/h3>\n<p>Primer deploy (sin borrar nada):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">rsync -avz -e \"ssh -i ~\/.ssh\/cpanel_astro\" dist\/ usuario@tudominio.com:\/home\/usuario\/public_html\/<\/pre>\n<p>Esto sube todos los archivos de Astro al servidor.<\/p>\n<p>Paso 7: verificar el sitio<\/p>\n<p>Abre tu dominio y revisa:<\/p>\n<ul>\n<li>Que cargue correctamente<\/li>\n<li>Estilos y JS funcionando<\/li>\n<li>Im\u00e1genes visibles<\/li>\n<\/ul>\n<h3>Paso 8: deploy profesional con sincronizaci\u00f3n<\/h3>\n<p>Una vez validado, puedes usar:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bat\">rsync -avz --delete -e \"ssh -i ~\/.ssh\/cpanel_astro\" dist\/ usuario@tudominio.com:\/home\/usuario\/public_html\/<\/pre>\n<p>Esto:<\/p>\n<ul>\n<li>Actualiza archivos<\/li>\n<li>Elimina archivos viejos<\/li>\n<li>Mantiene el servidor limpio<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2 data-section-id=\"1rrd8jc\" data-start=\"2865\" data-end=\"2919\">\u00bfQu\u00e9 pasa si tienes archivos que no quieres borrar?<\/h2>\n<p data-start=\"2921\" data-end=\"2950\">En ese caso, usa exclusiones.<\/p>\n<h3 data-section-id=\"1ta7ao2\" data-start=\"2952\" data-end=\"2984\">Crear archivo de exclusiones<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">.well-known\/\r\ncgi-bin\/\r\narchivo-especial.php\r\ncarpeta-importante\/<\/pre>\n<p>Gu\u00e1rdalo como:<\/p>\n<p>deploy-exclude.txt<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">rsync -avz --delete \\\r\n-e \"ssh -i ~\/.ssh\/cpanel_astro\" \\\r\n--exclude-from=\"deploy-exclude.txt\" \\\r\ndist\/ usuario@tudominio.com:\/home\/usuario\/public_html\/<\/pre>\n<h2 data-section-id=\"1xd6ycg\" data-start=\"3320\" data-end=\"3346\">Flujo final recomendado<\/h2>\n<p data-start=\"3348\" data-end=\"3381\">Cada vez que actualices tu sitio:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\">npm run build &amp;&amp; rsync -avz --delete \\\r\n-e \"ssh -i ~\/.ssh\/cpanel_astro\" \\\r\n--exclude-from=\"deploy-exclude.txt\" \\\r\ndist\/ usuario@tudominio.com:\/home\/usuario\/public_html\/<\/pre>\n<h2 data-section-id=\"er3h74\" data-start=\"3567\" data-end=\"3594\">Ventajas de este enfoque<\/h2>\n<ul data-start=\"3596\" data-end=\"3752\">\n<li data-section-id=\"1wvo1z9\" data-start=\"3596\" data-end=\"3619\">No dependes de GitHub<\/li>\n<li data-section-id=\"h6huwp\" data-start=\"3620\" data-end=\"3645\">Deploy r\u00e1pido y directo<\/li>\n<li data-section-id=\"m321du\" data-start=\"3646\" data-end=\"3674\">Control total del servidor<\/li>\n<li data-section-id=\"1qzy9h4\" data-start=\"3675\" data-end=\"3710\">Ideal para proyectos con clientes<\/li>\n<li data-section-id=\"dcv6ns\" data-start=\"3711\" data-end=\"3752\">Compatible con cualquier hosting cPanel<\/li>\n<\/ul>\n<p data-start=\"3774\" data-end=\"3886\">Migrar de WordPress a Astro no solo mejora rendimiento, tambi\u00e9n cambia la forma en que despliegas tus proyectos.<\/p>\n<p data-start=\"3888\" data-end=\"3903\">Con este flujo:<\/p>\n<ul data-start=\"3905\" data-end=\"4003\">\n<li data-section-id=\"1e9fp1\" data-start=\"3905\" data-end=\"3922\">Reduces errores<\/li>\n<li data-section-id=\"3jc2hq\" data-start=\"3923\" data-end=\"3947\">Automatizas tu trabajo<\/li>\n<li data-section-id=\"6s18hl\" data-start=\"3948\" data-end=\"4003\">y te acercas a un nivel m\u00e1s profesional en desarrollo<\/li>\n<\/ul>\n<p data-start=\"4005\" data-end=\"4106\">Si trabajas con m\u00faltiples sitios o clientes, este m\u00e9todo se vuelve una herramienta clave en tu stack.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Migrar un sitio a una arquitectura m\u00e1s moderna como Astro es una gran decisi\u00f3n, pero&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1622,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47,216,100],"tags":[214,213,217],"_links":{"self":[{"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/posts\/1621"}],"collection":[{"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/comments?post=1621"}],"version-history":[{"count":1,"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/posts\/1621\/revisions"}],"predecessor-version":[{"id":1623,"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/posts\/1621\/revisions\/1623"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/media\/1622"}],"wp:attachment":[{"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/media?parent=1621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/categories?post=1621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orpot.com\/blog\/wp-json\/wp\/v2\/tags?post=1621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}