{"id":41630,"date":"2026-08-25T15:42:31","date_gmt":"2026-08-25T15:42:31","guid":{"rendered":"https:\/\/make.wordpress.org\/meta\/?post_type=handbook&#038;p=41630"},"modified":"2026-08-25T15:42:32","modified_gmt":"2026-08-25T15:42:32","slug":"connecting","status":"publish","type":"handbook","link":"https:\/\/make.wordpress.org\/meta\/handbook\/tutorials-guides\/wordpress-org-sandboxes\/connecting\/","title":{"rendered":"Connecting to your sandbox"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Once your <a href=\"https:\/\/make.wordpress.org\/meta\/handbook\/tutorials-guides\/wordpress-org-sandboxes\/requesting-access\/\">access request<\/a> is approved you will have a sandbox hostname and a username.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span tabindex='0' class='glossary-item-container'>SSH<span class='glossary-item-hidden-content'><span class='glossary-item-header'>SSH<\/span> <span class='glossary-item-description'>Secure SHell - a protocol for securely connecting to a remote system in addition to or in place of a password.<\/span><\/span><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Add a <span tabindex='0' class='glossary-item-container'>block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> like this to <code>~\/.ssh\/config<\/code> so you do not have to retype the details:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Host wporgsandbox\n\tHostName &lt;your-sandbox-hostname&gt;\n\tUser &lt;your-sandbox-username&gt;\n\tForwardAgent yes\n\tIdentitiesOnly yes\n\tIdentityFile ~\/.ssh\/id_ed25519<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Replace the placeholders with the values from your access grant, and point <code>IdentityFile<\/code> at the key you supplied when you requested access. Then:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh wporgsandbox<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ForwardAgent yes<\/code> forwards your local SSH agent to the sandbox, which is what lets you push to <span tabindex='0' class='glossary-item-container'>GitHub<span class='glossary-item-hidden-content'><span class='glossary-item-header'>GitHub<\/span> <span class='glossary-item-description'>GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the \u2018pull request\u2019 where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. <a href=\"https:\/\/github.com\/\">https:\/\/github.com\/<\/a><\/span><\/span><\/span> from there without copying a private key onto a shared server. <strong>Do not copy your private key to the sandbox.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where things live<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Path<\/th><th>What it is<\/th><\/tr><\/thead><tbody><tr><td><code>\/home\/&lt;your-username&gt;<\/code><\/td><td>Your sandbox home directory<\/td><\/tr><tr><td><code>\/home\/wporg\/public_html<\/code><\/td><td>The <span tabindex='0' class='glossary-item-container'>WordPress.org<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WordPress.org<\/span> <span class='glossary-item-description'>The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization.  <a href=\"https:\/\/wordpress.org\/\">https:\/\/wordpress.org\/<\/a><\/span><\/span><\/span> web root<\/td><\/tr><tr><td><code>\/home\/wordcamp\/public_html<\/code><\/td><td>The WordCamp.org web root<\/td><\/tr><tr><td><code>\/home\/buddypress\/public_html<\/code><\/td><td>BuddyPress-hosted sites, including profiles.wordpress.org<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Viewing your sandbox in a browser<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You do not need a proxy or a VPN for this. What you do need is for the WordPress.org domains to resolve to your sandbox instead of to production. Requesting the sandbox address directly returns a 403, because nothing tells the server which site you are asking for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add the sandbox address supplied with your access grant to <code>\/etc\/hosts<\/code>, one line per domain you need:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;your-sandbox-address&gt;\twordpress.org\n&lt;your-sandbox-address&gt;\twww.wordpress.org\n&lt;your-sandbox-address&gt;\tplugins.wordpress.org\n&lt;your-sandbox-address&gt;\tthemes.wordpress.org\n&lt;your-sandbox-address&gt;\ttranslate.wordpress.org\n&lt;your-sandbox-address&gt;\tmake.wordpress.org<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add only the domains you are actually working on. Every line you add is a domain your browser can no longer reach in production.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These entries stay active until you remove them. If WordPress.org starts behaving strangely in your browser days later, check <code>\/etc\/hosts<\/code> before you check anything else.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testing from the command line<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>curl<\/code> can override <span tabindex='0' class='glossary-item-container'>DNS<span class='glossary-item-hidden-content'><span class='glossary-item-header'>DNS<\/span> <span class='glossary-item-description'>DNS is an acronym for Domain Name System - how you assign a human readable address to a website\u2019s exact numeric coded location (ie. wordpress.org uses the actual IP address 198.143.164.252).<\/span><\/span><\/span> for a single request, which avoids editing <code>\/etc\/hosts<\/code> at all:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --resolve wordpress.org:443:&lt;your-sandbox-address&gt; https:\/\/wordpress.org\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add <code>--insecure<\/code> if the sandbox presents a certificate that does not match the domain.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">De-sandboxing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Some operations must not run against a sandbox \u2014 most notably anything that uploads media. When you need to act as a normal user again, de-sandbox yourself before continuing. See <a href=\"https:\/\/make.wordpress.org\/meta\/handbook\/tutorials-guides\/wordpress-org-sandboxes\/working-on-a-sandbox\/\">Working on a sandbox<\/a>.<\/p>\n<nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"author":15256814,"featured_media":0,"parent":41626,"menu_order":0,"template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","footnotes":""},"class_list":["post-41630","handbook","type-handbook","status-publish","hentry","author-bor0","make-connecting"],"revision_note":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/handbook\/41630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/handbook"}],"about":[{"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/types\/handbook"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/users\/15256814"}],"version-history":[{"count":1,"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/handbook\/41630\/revisions"}],"predecessor-version":[{"id":41637,"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/handbook\/41630\/revisions\/41637"}],"up":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/handbook\/41626"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/meta\/wp-json\/wp\/v2\/media?parent=41630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}