Find your pod’s SSH details on the SSH tab of the pod detail page. It shows the exact ssh command for your pod, plus ready-made scp and sftp commands.The SSH connection format is:
# Add your default key (~/.ssh/id_ed25519.pub or ~/.ssh/id_rsa.pub)instapods ssh-keys add my-app# Add a specific keyinstapods ssh-keys add my-app --key ~/.ssh/work_key.pub
Paste the contents of your .pub file: one line that starts with ssh-ed25519, ssh-rsa, ecdsa-sha2- or sk-ssh-. A key fingerprint (SHA256:...) is not a key and is rejected, and so is more than one key in a single paste - add them one at a time.
Each pod gets a unique SSH port in the range 2200–3200. Ports are assigned automatically at pod creation. To prevent host key conflicts, deleted pods’ ports are not reused for 7 days.
SCP and SFTP use the same host, port and key as SSH. The only difference is the port flag: ssh takes a lowercase -p, while scp and sftp take a capital -P. The SSH tab shows both commands ready to copy.
Don’t copy the -p PORT from the ssh command into scp. To scp, lowercase -p means “preserve file times”, so it fails with stat local "2201": No such file or directory. Leaving the port out fails too: scp connects to the server’s port 22 instead of your pod and gets Permission denied (publickey).
# Upload a filescp -P 2201 ./app.js instapod@203.0.113.10:/home/instapod/app/# Download a filescp -P 2201 instapod@203.0.113.10:/home/instapod/app/config.json ./# Upload a directoryscp -P 2201 -r ./project/ instapod@203.0.113.10:/home/instapod/app/
Or use SFTP for interactive file management:
sftp -P 2201 instapod@203.0.113.10
For large or repeated transfers, tar over SSH is faster than copying many small files one by one:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"InstaPods","colors":{"primary":"#22C55E","light":"#4ADE80","dark":"#16A34A"},"logo":{"light":"https://mintcdn.com/instapods/Eo_UebmFKktn__Oo/logo/light.svg?fit=max\u0026auto=format\u0026n=Eo_UebmFKktn__Oo\u0026q=85\u0026s=656c06357db1c2920070d105fcd54372","dark":"https://mintcdn.com/instapods/Eo_UebmFKktn__Oo/logo/dark.svg?fit=max\u0026auto=format\u0026n=Eo_UebmFKktn__Oo\u0026q=85\u0026s=7faaa1a7ebdd870f6e17ad2fea85c2ea"},"favicon":"https://mintcdn.com/instapods/Eo_UebmFKktn__Oo/logo/favicon.svg?fit=max\u0026auto=format\u0026n=Eo_UebmFKktn__Oo\u0026q=85\u0026s=d791be1fb3e40fb9d83d93e1a2bb5ac0","api":{"openapi":"api-reference/openapi.yaml"},"appearance":{"default":"dark"},"footer":{"socials":{"github":"https://github.com/instapods","x":"https://x.com/instapods"}},"fonts":{"family":"Outfit"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"instapods","hasAudioNarration":false,"actualSubdomain":"instapods","customDomains":["docs.instapods.com"],"gitSource":{"type":"github","owner":"instapods","repo":"instapods","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af2b9e3b8835b0cc325a53c","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Documentation","count":41},{"language":"default","tag":"API Reference","count":24},{"language":"default","tag":"CLI Reference","count":22},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"Dashboard","count":9},{"language":"default","tag":"MCP Reference","count":8},{"language":"default","tag":"Presets","count":6},{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"Services","count":4},{"language":"default","tag":"SSH \u0026 Files","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"ssh-and-files/ssh-access","slug":"/ssh-and-files/ssh-access","pageMetadata":{"title":"SSH Access","description":"Connect to your pod via SSH and manage SSH keys.","href":"/ssh-and-files/ssh-access"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect to your pod via SSH and manage SSH keys.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Every pod has a dedicated SSH port, allowing you to connect directly to your container with any SSH client.`}),`\n`,_jsx(Heading,{level:`2`,id:`connection-details`,children:`Connection Details`}),`\n`,_jsxs(_components.p,{children:[`Find your pod’s SSH details on the `,_jsx(_components.strong,{children:`SSH`}),` tab of the pod detail page. It shows the exact `,_jsx(_components.code,{children:`ssh`}),` command for your pod, plus ready-made `,_jsx(_components.code,{children:`scp`}),` and `,_jsx(_components.code,{children:`sftp`}),` commands.`]}),`\n`,_jsx(_components.p,{children:`The SSH connection format is:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ssh`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` instapod@`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`server-hos`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`t`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`por`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`t`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`For example:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ssh`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` instapod@203.0.113.10`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2201`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`adding-ssh-keys`,children:`Adding SSH Keys`}),`\n`,_jsx(Heading,{level:`3`,id:`via-cli`,children:`Via CLI`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Add your default key (~/.ssh/id_ed25519.pub or ~/.ssh/id_rsa.pub)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`instapods`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ssh-keys`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-app`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Add a specific key`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`instapods`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ssh-keys`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-app`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --key`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/.ssh/work_key.pub`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`via-dashboard`,children:`Via Dashboard`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to your pod’s `,_jsx(_components.strong,{children:`SSH`}),` tab`]}),`\n`,_jsx(_components.li,{children:`Paste your public key in the text field`}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add Key`})]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Paste the contents of your `,_jsx(_components.code,{children:`.pub`}),` file: one line that starts with `,_jsx(_components.code,{children:`ssh-ed25519`}),`, `,_jsx(_components.code,{children:`ssh-rsa`}),`, `,_jsx(_components.code,{children:`ecdsa-sha2-`}),` or `,_jsx(_components.code,{children:`sk-ssh-`}),`. A key fingerprint (`,_jsx(_components.code,{children:`SHA256:...`}),`) is not a key and is rejected, and so is more than one key in a single paste - add them one at a time.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/.ssh/id_ed25519.pub`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`via-api`,children:`Via API`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://app.instapods.com/api/pods/my-app/ssh/keys`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_TOKEN\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"key\": \"ssh-ed25519 AAAA... user@host\"}'`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`at-pod-creation`,children:`At Pod Creation`}),`\n`,_jsx(_components.p,{children:`You can also include an SSH key when creating a pod:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`instapods`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pods`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` create`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-app`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --preset`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nodejs`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --ssh-key`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/.ssh/id_ed25519.pub`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`host-key-verification`,children:`Host Key Verification`}),`\n`,_jsxs(_components.p,{children:[`InstaPods uses `,_jsx(_components.strong,{children:`Trust On First Use (TOFU)`}),` for SSH security:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`First connection`}),`: The host key is automatically accepted and saved to `,_jsx(_components.code,{children:`~/.ssh/known_hosts`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Subsequent connections`}),`: The saved key is verified. If it matches, you connect normally`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Key mismatch`}),`: You’ll see a warning. This shouldn’t happen for a running pod`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`When you delete a pod, the CLI automatically removes the old host key from your `,_jsx(_components.code,{children:`known_hosts`}),` file to prevent conflicts when the SSH port is reused.`]}),`\n`,_jsx(Heading,{level:`2`,id:`ssh-port-allocation`,children:`SSH Port Allocation`}),`\n`,_jsx(_components.p,{children:`Each pod gets a unique SSH port in the range 2200–3200. Ports are assigned automatically at pod creation. To prevent host key conflicts, deleted pods’ ports are not reused for 7 days.`}),`\n`,_jsx(Heading,{level:`2`,id:`scp-/-sftp`,children:`SCP / SFTP`}),`\n`,_jsxs(_components.p,{children:[`SCP and SFTP use the same host, port and key as SSH. The only difference is the port flag: `,_jsx(_components.code,{children:`ssh`}),` takes a lowercase `,_jsx(_components.code,{children:`-p`}),`, while `,_jsx(_components.code,{children:`scp`}),` and `,_jsx(_components.code,{children:`sftp`}),` take a capital `,_jsx(_components.code,{children:`-P`}),`. The `,_jsx(_components.strong,{children:`SSH`}),` tab shows both commands ready to copy.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Don’t copy the `,_jsx(_components.code,{children:`-p PORT`}),` from the ssh command into scp. To scp, lowercase `,_jsx(_components.code,{children:`-p`}),` means “preserve file times”, so it fails with `,_jsx(_components.code,{children:`stat local \"2201\": No such file or directory`}),`. Leaving the port out fails too: scp connects to the server’s port 22 instead of your pod and gets `,_jsx(_components.code,{children:`Permission denied (publickey)`}),`.`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Upload a file`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`scp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -P`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2201`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./app.js`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` instapod@203.0.113.10:/home/instapod/app/`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Download a file`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`scp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -P`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2201`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` instapod@203.0.113.10:/home/instapod/app/config.json`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Upload a directory`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`scp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -P`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2201`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -r`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./project/`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` instapod@203.0.113.10:/home/instapod/app/`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Or use SFTP for interactive file management:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sftp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -P`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2201`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` instapod@203.0.113.10`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`For large or repeated transfers, `,_jsx(_components.code,{children:`tar`}),` over SSH is faster than copying many small files one by one:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`tar`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` czf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` -`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./project`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` ssh`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` instapod@203.0.113.10`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2201`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'tar xzf - -C /home/instapod/app'`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"SSH Access","description":"Connect to your pod via SSH and manage SSH keys.","href":"/ssh-and-files/ssh-access"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Connection Details","slug":"connection-details","depth":2,"children":[]},{"title":"Adding SSH Keys","slug":"adding-ssh-keys","depth":2,"children":[{"title":"Via CLI","slug":"via-cli","depth":3,"children":[]},{"title":"Via Dashboard","slug":"via-dashboard","depth":3,"children":[]},{"title":"Via API","slug":"via-api","depth":3,"children":[]},{"title":"At Pod Creation","slug":"at-pod-creation","depth":3,"children":[]}]},{"title":"Host Key Verification","slug":"host-key-verification","depth":2,"children":[]},{"title":"SSH Port Allocation","slug":"ssh-port-allocation","depth":2,"children":[]},{"title":"SCP / SFTP","slug":"scp-/-sftp","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"instapods","siteName":"InstaPods","title":"SSH Access - InstaPods","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T06:14:10.241Z","originalFileLocation":"ssh-and-files/ssh-access.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect to your pod via SSH and manage SSH keys.\">\u003cmeta data-mint-head name=\"application-name\" content=\"InstaPods\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"SSH Access - InstaPods\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect to your pod via SSH and manage SSH keys.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"InstaPods\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.instapods.com/ssh-and-files/ssh-access\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://instapods.mintlify.site/_mintlify/api/og/v2?division=SSH+%26+Files\u0026amp;title=SSH+Access\u0026amp;description=Connect+to+your+pod+via+SSH+and+manage+SSH+keys.\u0026amp;theme=35486980542f3316af81148a\u0026amp;signature=3ee9ddcc11e99970f3e6cce5db5dd43391973950a0265f73831f265c5e6e497d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"SSH Access - InstaPods\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect to your pod via SSH and manage SSH keys.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://instapods.mintlify.site/_mintlify/api/og/v2?division=SSH+%26+Files\u0026amp;title=SSH+Access\u0026amp;description=Connect+to+your+pod+via+SSH+and+manage+SSH+keys.\u0026amp;theme=35486980542f3316af81148a\u0026amp;signature=3ee9ddcc11e99970f3e6cce5db5dd43391973950a0265f73831f265c5e6e497d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/instapods/iSf5azwbd99lVhXv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"InstaPods\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#22C55E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.instapods.com/ssh-and-files/ssh-access\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ssh-and-files/ssh-access.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.instapods.com/#organization\",\"name\":\"InstaPods\",\"url\":\"https://docs.instapods.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/instapods/Eo_UebmFKktn__Oo/logo/light.svg?fit=max\u0026auto=format\u0026n=Eo_UebmFKktn__Oo\u0026q=85\u0026s=656c06357db1c2920070d105fcd54372\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.instapods.com#website\",\"name\":\"InstaPods\",\"url\":\"https://docs.instapods.com\",\"publisher\":{\"@id\":\"https://docs.instapods.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.instapods.com/ssh-and-files/ssh-access#webpage\",\"url\":\"https://docs.instapods.com/ssh-and-files/ssh-access\",\"name\":\"SSH Access\",\"description\":\"Connect to your pod via SSH and manage SSH keys.\",\"dateModified\":\"2026-11-10T06:14:10.241Z\",\"isPartOf\":{\"@id\":\"https://docs.instapods.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.instapods.com/ssh-and-files/ssh-access#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.instapods.com/ssh-and-files/ssh-access#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"InstaPods\",\"item\":\"https://docs.instapods.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SSH Access\",\"item\":\"https://docs.instapods.com/ssh-and-files/ssh-access\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.instapods.com/ssh-and-files/ssh-access#article\",\"headline\":\"SSH Access\",\"name\":\"SSH Access\",\"description\":\"Connect to your pod via SSH and manage SSH keys.\",\"url\":\"https://docs.instapods.com/ssh-and-files/ssh-access\",\"mainEntityOfPage\":{\"@id\":\"https://docs.instapods.com/ssh-and-files/ssh-access#webpage\"},\"dateModified\":\"2026-11-10T06:14:10.241Z\",\"publisher\":{\"@id\":\"https://docs.instapods.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.instapods.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"InstaPods\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"InstaPods\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/ssh-and-files/ssh-access.md","siteName":"InstaPods","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to InstaPods","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Core Concepts","href":"/getting-started/concepts"},{"title":"Creating a Pod","href":"/getting-started/creating-a-pod"},{"title":"Managing Pods","href":"/getting-started/managing-pods"}]},{"group":"Dashboard","pages":[{"title":"Dashboard Overview","href":"/dashboard/overview"},{"title":"Pod Detail","href":"/dashboard/pod-detail"},{"title":"Web IDE","href":"/dashboard/web-ide"},{"title":"Web Terminal","href":"/dashboard/web-terminal"},{"title":"Backups","href":"/dashboard/backups"},{"title":"Custom Domains","href":"/dashboard/custom-domains"},{"title":"Teams","href":"/dashboard/teams"},{"title":"Billing","href":"/dashboard/billing"},{"title":"Account Settings","href":"/dashboard/account-settings"}]},{"group":"Presets","pages":[{"title":"Presets Overview","href":"/presets/overview"},{"title":"Static Site","href":"/presets/static"},{"title":"PHP","href":"/presets/php"},{"title":"Node.js","href":"/presets/nodejs"},{"title":"Python","href":"/presets/python"},{"title":"Go","href":"/presets/go"}]},{"group":"Services","pages":[{"title":"Services Overview","href":"/services/overview"},{"title":"MySQL","href":"/services/mysql"},{"title":"PostgreSQL","href":"/services/postgresql"},{"title":"Redis","description":"Install and use Redis 7 in your pod.","href":"/services/redis"}]},{"group":"SSH \u0026 Files","pages":[{"title":"SSH Access","href":"/ssh-and-files/ssh-access"},{"title":"File Management","description":"Upload, sync, and manage files in your pods.","href":"/ssh-and-files/file-management"}]},{"group":"Guides","pages":[{"title":"Build with AI in your browser","href":"/guides/ai-builder"},{"title":"Deploy a Lovable app","href":"/guides/deploy-lovable-app"},{"title":"Git Deployment","href":"/guides/git-deployment"},{"title":"Add a \"Deploy to InstaPods\" button","href":"/guides/deploy-button"},{"title":"Deploy a Docker image","href":"/guides/deploy-docker-image"},{"title":"1-Click Apps","href":"/guides/one-click-apps"},{"title":"Worker Pods","href":"/guides/worker-pods"},{"title":"Transfer a Pod","href":"/guides/transfer-a-pod"},{"title":"Deploy, Reload, Restart","href":"/guides/operations"},{"title":"Environment Variables","href":"/guides/environment-variables"},{"title":"Import an existing app","href":"/guides/import-existing-app"},{"title":"Import from AI builders","href":"/guides/import-artifacts"}]},{"group":"Partners","pages":[{"title":"Hosting Partnership","href":"/partners/hosting-partnership"}]},{"group":"Support","pages":[{"title":"FAQ","href":"/support/faq"},{"title":"Troubleshooting","href":"/support/troubleshooting"}]}]},{"tab":"CLI Reference","pages":[{"title":"CLI Reference","href":"/cli/installation"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"MCP Reference","pages":[{"title":"MCP Reference","href":"/mcp/overview"}]}]},"basePath":"","title":"SSH Access - InstaPods","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}