Quick start: Generate and add your SSH key to your Vast account
Terminal
Vast CLI
1. Generate a SSH key pair in your terminal
ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-keygen -t ed25519 -C "your_email@example.com"
Creates two files (by default in ~/.ssh/):
id_ed25519 → your private key (keep safe, never share).
id_ed25519.pub → your public key (safe to share, add to servers).
-C “your_email@example.com” is optional. Whatever you put there is stored as a comment in the public key file (e.g., id_ed25519.pub). It’s just for identification (helpful if you use multiple keys), not for security.
When you run ssh-keygen -t ed25519 in Windows PowerShell, the keys are created in your Windows user profile folder:
C:\Users\<YourUsername>\.ssh\
2. Copy your public key.
# Print the public keycat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZ9DdI1NTE5AAAAIHWGYlMT8CxcILI/i3DsRvX74HNChkm4JSNFu0wmcv0a
# Print the public keyGet-Content $env:USERPROFILE\.ssh\id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZ9DdI1NTE5AAAAIHWGYlMT8CxcILI/i3DsRvX74HNChkm4JSNFu0wm
Start a new instance and click the SSH icon to see your connection information.
Terminal Connections
Now you can enter the connection command string into your terminal
Bash
ssh -p 50983 root@154.64.230.50 -L 8080:localhost:8080The authenticity of host '[154.64.230.50]:50983 ([154.64.230.50]:50983)' can't be established.ED25519 key fingerprint is SHA256:WTUphznpN0zikMp+L5EtZpiCH6EeZ2PA/7+DSXDRjT0.This key is not known by any other names.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
You should now see a screen similar to this. You will, by default, be placed into a tmux session.
We connect you to a tmux session by default for reliability and to prevent unintentional termination of foreground processes. You can create a new bash terminal window with ctrl+b + c. Cycle through your windows with ctrl+b + nThere is an excellent guide for getting to grips with tmux at https://tmuxcheatsheet.comIf, however, you would prefer to disable TMUX, you can apply the following either in a terminal or from your template’s on-start section.
An often overlooked feature of SSH is its ability to forward local ports to another machine. When you access a server remotely over SSH, you can make ports from the remote machine available as if they were listening on your own device. This is a secure alternative to opening ports on the public interface as all data is transported over the SSH connection.
This SSH command connects to the remote instance and sets up local port forwarding (SSH tunneling):Connection details:
Connects to IP 180.123.123.123 as user root
Uses port 1234 instead of the default SSH port 22
Port forwarding (the key part):
-L 8080:localhost:8080 - Creates a tunnel so when you access localhost:8080 on your local machine, it forwards to port 8080 on the remote server
-L 5000:localhost:5000 - Same thing for port 5000
You can repeat the -L arguments to forward as many ports as you need.What this means: After connecting, you can open your web browser and go to https://localhost:8080 or http://localhost:5000 on your local computer, and you’ll actually be accessing services running on those ports on the remote server. It’s like creating secure “tunnels” through the SSH connection to reach applications on the remote machine that might not be directly accessible from the internet.
As a simple alternative to SSH, you might like to consider Jupyter Terminal instead. All instances started in Jupyter launch mode will have this enabled. It is a very straightforward web-based terminal with session persistence. It’s great for a quick CLI session.Access the terminal from the Terminal Connections dialog.
Both SCP (Secure Copy Protocol) and SFTP (SSH File Transfer Protocol) are tools for securely transferring files that piggyback on the SSH protocol. They use the same authentication and encryption as SSH.
What it is: Interactive file transfer program with a full command set
Best for: Managing files, browsing directories, multiple operations
Usage: CLI or GUI tools available
Example:
Bash
# Establish connectionsftp -P <ssh_port> root@<instance_ip>Welcome to vast.ai. If authentication fails, try again after a few seconds, and double check your ssh key.Have fun!Connected to 79.116.73.220.sftp> lshasbooted onstart.sh
Note that both scp and sftp take the -P argument in uppercase. This differs from the ssh command which uses lowercase.
Enter your ssh address details in the box that appears at the top of your window
Now simply allow a moment for VS code to configure the instance and you will be able to work with the instance as if it was a local machine.For more information, see the VS Code documentation.
For Windows users who prefer GUI tools, please see our Windows Connection Guide for detailed setup instructions for PuTTY, MobaXterm, and other GUI clients.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Vast.ai Documentation: Affordable GPU Cloud Marketplace","colors":{"primary":"#315FFF","light":"#315FFF","dark":"#315FFF"},"logo":{"light":"https://mintcdn.com/vastai-80aa3a82/lDYZh_6OFg5OOaSN/logo/light.svg?fit=max\u0026auto=format\u0026n=lDYZh_6OFg5OOaSN\u0026q=85\u0026s=7f79454b79a0cfc463ec063cd29faea0","dark":"https://mintcdn.com/vastai-80aa3a82/lDYZh_6OFg5OOaSN/logo/dark.svg?fit=max\u0026auto=format\u0026n=lDYZh_6OFg5OOaSN\u0026q=85\u0026s=a0ab9c5200d0f126bb744a83bc1b1ee2"},"favicon":"https://mintcdn.com/vastai-80aa3a82/1e4lY_zkN1CU9p24/favicon.svg?fit=max\u0026auto=format\u0026n=1e4lY_zkN1CU9p24\u0026q=85\u0026s=0d6a4623043c830bd4703fe39c7c8dc3","navbar":{"links":[{"href":"/guides/reference/faq","label":"FAQ"},{"href":"https://discord.gg/vast","label":"Discord"}],"primary":{"type":"button","label":"Console","href":"https://cloud.vast.ai/"}},"footer":{"socials":{"x":"https://x.com/vast_ai","github":"https://github.com/vast-ai","youtube":"https://www.youtube.com/@vast_ai/videos"}},"seo":{"metatags":{"indexing":"all","author":"Vast.ai Team","robots":"index, follow","googlebot":"index, follow","google":"notranslate","google-site-verification":"WHKqvZxf1snX5HX4y0luN_AnAvAPGoSjUcMv03b_NsI","generator":"Mintlify","theme-color":"#000000","color-scheme":"light dark","format-detection":"telephone=no","referrer":"origin","rating":"general","revisit-after":"7 days","language":"en","copyright":"Copyright 2025","reply-to":"contact@vast.ai","distribution":"global","coverage":"Worldwide","category":"Developer Documentation","target":"all","HandheldFriendly":"True","MobileOptimized":"320","apple-mobile-web-app-capable":"yes","apple-mobile-web-app-status-bar-style":"black","og:locale":"en_US","twitter:card":"summary_large_image","twitter:site":"@vast_ai","twitter:creator":"@vast_ai"}},"integrations":{"ga4":{"measurementId":"G-DG15WC8WXG"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vastai-80aa3a82","hasAudioNarration":false,"actualSubdomain":"vastai-80aa3a82","customDomains":["docs.vast.ai"],"gitSource":{"type":"github","owner":"vast-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adfbe11db56f9a377f1e85d","collectionId":"19df4429-5845-44de-b641-dfaf4afb19cb","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfbe11db56f9a377f1e85d"},"feedback":{"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adfc284cade0989ea623e30","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"CLI \u0026 SDK","count":258},{"language":"default","tag":"CLI","count":148},{"language":"default","tag":"SDK","count":143},{"language":"default","tag":"API","count":108},{"language":"default","tag":"Guides","count":101},{"language":"default","tag":"Endpoints","count":100},{"language":"default","tag":"Instances","count":94},{"language":"default","tag":"Host","count":87},{"language":"default","tag":"Serverless","count":80},{"language":"default","tag":"Accounts","count":58}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (min-width:1024px){div:has(>nav#sidebar){max-width:none!important}#navbar>div{max-width:none!important}#content-area>#content,#content-area>#header{max-width:900px;margin-left:auto;margin-right:auto}}.table-column-dividers td+td,.table-column-dividers th+th{border-left:1px solid color-mix(in srgb,currentColor 20%,transparent)}"}],"page":{"pagePath":"guides/instances/connect/ssh","slug":"/guides/instances/connect/ssh","pageMetadata":{"title":"SSH Connection","description":"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.","canonical":"/guides/instances/connect/ssh","href":"/guides/instances/connect/ssh"},"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: \"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.\"\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={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Columns,Frame,Heading,Note,OptimizedImage,Tab,Tabs,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`about-ssh`,children:`About SSH`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`SSH (Secure Shell)`}),` is a protocol for safely connecting to remote servers. It encrypts your connection so you can:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Log in securely`}),`\n`,_jsx(_components.li,{children:`Run commands remotely`}),`\n`,_jsx(_components.li,{children:`Transfer files without exposing your data`}),`\n`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Vast.ai instances are configured to accept keys only - Password authentication is disabled for improved security.`})}),`\n`,_jsx(Heading,{level:`2`,id:`quick-start-generate-and-add-your-ssh-key-to-your-vast-account`,children:`Quick start: Generate and add your SSH key to your Vast account`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Terminal`,id:`terminal`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`1. Generate a SSH key pair in your terminal`})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Bash`,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-keygen`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -t`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ed25519`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -C`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"your_email@example.com\"`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`PowerShell`,numberOfLines:`1`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ssh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`keygen `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`t ed25519 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`C `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your_email@example.com\"`})]}),`\n`]})})})]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Creates two files (by default in ~/.ssh/):`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`id_ed25519 → your `,_jsx(_components.strong,{children:`private key`}),` (keep safe, never share).`]}),`\n`,_jsxs(_components.li,{children:[`id_ed25519.pub → your `,_jsx(_components.strong,{children:`public key`}),` (safe to share, add to servers).`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`-C “`,_jsx(_components.a,{href:`mailto:your_email@example.com`,children:`your_email@example.com`}),`” is optional. Whatever you put there is stored as a comment in the public key file (e.g., id_ed25519.pub). It’s just for identification (helpful if you use multiple keys), not for security.`]}),`\n`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`When you run ssh-keygen -t ed25519 in `,_jsx(_components.strong,{children:`Windows PowerShell`}),`, the keys are created in your Windows user profile folder:\n`,_jsx(_components.code,{children:`C:\\\\Users\\\\\u003cYourUsername>\\\\.ssh\\\\`})]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`2. Copy your public key.`})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Bash`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Print the public key`})}),`\n`,_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ssh-ed25519`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` AAAAC3NzaC1lZ9DdI1NTE5AAAAIHWGYlMT8CxcILI/i3DsRvX74HNChkm4JSNFu0wmcv0a`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`PowerShell`,numberOfLines:`3`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Print the public key`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`Get-Content`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`env:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`USERPROFILE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\\\\.ssh\\\\id_ed25519.pub`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ssh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ed25519 AAAAC3NzaC1lZ9DdI1NTE5AAAAIHWGYlMT8CxcILI`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`i3DsRvX74HNChkm4JSNFu0wm`})]}),`\n`]})})})]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`3. Add it in your`}),` `,_jsx(_components.a,{href:`https://cloud.vast.ai/manage-keys/`,children:_jsx(_components.strong,{children:`vast account`})})]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp.webp?fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=0c4875e49e2b1250de56ca5d06c8dd8a`,alt:``,\"data-og-width\":`914`,width:`914`,\"data-og-height\":`684`,height:`684`,\"data-path\":`images/instances-sshscp.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp.webp?w=280\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=ce25808c68ef5747ae61afc47e21dbac 280w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp.webp?w=560\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=ad998abfde5ababac4ce81f09fd2d465 560w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp.webp?w=840\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=d02a30b53bd09b1014350478397dece5 840w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=8154e85ec34d201cde1ae4647f334bec 1100w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=6577c4d72389e767fb8ffe14e92167f8 1650w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=7e4c0d56416402102e8e115bc9c481e6 2500w`})]}),_jsxs(Tab,{title:`Vast CLI`,id:`vast-cli`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Add \u0026 Generate SSH Key (using`}),` `,_jsx(_components.a,{href:`/cli/hello-world`,children:_jsx(_components.strong,{children:`Vast CLI`})}),_jsx(_components.strong,{children:`)`})]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Install Vast CLI:`})}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Bash`,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:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -fsSL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://vast.ai/install.sh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` bash`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`PowerShell`,numberOfLines:`3`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`py `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`m pip install vastai`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# or`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`python `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`m pip install vastai`})]}),`\n`]})})})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Generate an API key in your vast account:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.a,{href:`https://cloud.vast.ai/cli/`,children:`CLI page`})]}),`\n`,_jsxs(_components.li,{children:[`Create an API key`,`\n`,_jsx(Frame,{caption:`API Key creation`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-2.webp?fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=b87717158bb150f91e707186ee5e3d0f`,alt:`API Key creation`,\"data-og-width\":`800`,width:`800`,\"data-og-height\":`316`,height:`316`,\"data-path\":`images/instances-sshscp-2.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-2.webp?w=280\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=142b3c9d5f6649159213ffd6808b72dd 280w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-2.webp?w=560\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=00b017024671fc23e9ff633b929ad068 560w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-2.webp?w=840\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=29ff3c6567e5eb5fc92198a007d2cbb8 840w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-2.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=cff4606483c2ce7b077be309ed80af02 1100w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-2.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=b154d75102218364a8a476b999b003dd 1650w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-2.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=5959f2128d22d7794176c4fa391d30dd 2500w`})}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Generate a new SSH key pair`}),` (you will need your vast API key):`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`CLI`,numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`vastai create ssh-key --api-key YOUR_API_KEY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{filename:`CLI`,numberOfLines:`3`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`vastai set api-key YOUR_API_KEY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`vastai create ssh-key`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),`\n`]}),`\n`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Saves keys as ~/.ssh/id_ed25519 (private) and ~/.ssh/id_ed25519.pub (public).`}),`\n`,_jsx(_components.li,{children:`Backs up existing keys as .backup_[timestamp].`}),`\n`,_jsx(_components.li,{children:`Keys are stored in your Vast account and used for new instances.`}),`\n`]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Adding a key to your account keys only applies to `,_jsx(_components.strong,{children:`new instances`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Existing instances will `,_jsx(_components.strong,{children:`not`}),` get the new key automatically. To add a key, use the `,_jsx(_components.strong,{children:`instance-specific SSH interface`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`For `,_jsx(_components.strong,{children:`VM instances`}),`, changing keys requires recreating the VM.`]}),`\n`]})}),`\n`,_jsx(Heading,{level:`2`,id:`connecting-to-your-instance`,children:`Connecting to your Instance`}),`\n`,_jsx(_components.p,{children:`Start a new instance and click the SSH icon to see your connection information.`}),`\n`,_jsx(Frame,{caption:`Terminal Connections`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-3.webp?fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=cff7a730d11c9d2df8f9b59f07ca3060`,alt:`Connection details`,\"data-og-width\":`937`,width:`937`,\"data-og-height\":`683`,height:`683`,\"data-path\":`images/instances-sshscp-3.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-3.webp?w=280\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=916247b8cf8aa51e51cf05786f748a14 280w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-3.webp?w=560\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=3f8625c5e80803440c3e16b6957d2b8e 560w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-3.webp?w=840\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=576bcedd6bc5b865b191f809c21a6213 840w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-3.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=f904032368102bcab412e5c4c0428c15 1100w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-3.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=febc32f00be18e977be07f495e404d8b 1650w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-3.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=e00cd45977e12eced1da461bc5256493 2500w`})}),`\n`,_jsx(_components.p,{children:`Now you can enter the connection command string into your terminal`}),`\n`,_jsx(CodeBlock,{filename:`Bash`,numberOfLines:`6`,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:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ssh`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 50983`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` root@154.64.230.50`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -L`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 8080:localhost:8080`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`The`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` authenticity`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` of`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` host`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '[154.64.230.50]:50983 ([154.64.230.50]:50983)'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` can't be established.`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ED25519 key fingerprint is SHA256:WTUphznpN0zikMp+L5EtZpiCH6EeZ2PA/7+DSXDRjT0.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`This key is not known by any other names.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Are you sure you want to continue connecting (yes/no/[fingerprint])? yes`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You should now see a screen similar to this. You will, by default, be placed into a tmux session.`}),`\n`,_jsx(Frame,{caption:`Connected to Instance`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-4.webp?fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=e3dadd004d54ec00fbe7236860f5adc2`,alt:`Instance SSH session`,\"data-og-width\":`1254`,width:`1254`,\"data-og-height\":`464`,height:`464`,\"data-path\":`images/instances-sshscp-4.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-4.webp?w=280\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=a185fcc096f446ee40f48d6bc58a8871 280w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-4.webp?w=560\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=fabdfe7e040ea540d21dc4c552966358 560w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-4.webp?w=840\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=3d35d7fb1b7d2d5a1bd7731a02d5dff2 840w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-4.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=e259ec3f325fa860ba277948a5481ce8 1100w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-4.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=53eb278140b2d8dd6507121fcaada6ee 1650w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-4.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=29713333a4bf70aac4f71d5d96fb8bee 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`direct-vs-proxy-connections`,children:`Direct vs Proxy Connections`}),`\n`,_jsx(_components.p,{children:`Vast offers both proxy (default) and direct connection methods for SSH:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Proxy SSH`}),`: Works on all machines, slower for data transfer, uses Vast proxy server`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Direct SSH`}),`: Requires machines with open ports, faster and more reliable, preferred method`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`tmux`,children:`Tmux`}),`\n`,_jsxs(_components.p,{children:[`We connect you to a tmux session by default for reliability and to prevent unintentional termination of foreground processes. You can create a new bash terminal window with `,_jsx(_components.code,{children:`ctrl+b`}),` + `,_jsx(_components.code,{children:`c`}),`. Cycle through your windows with `,_jsx(_components.code,{children:`ctrl+b`}),` + `,_jsx(_components.code,{children:`n`})]}),`\n`,_jsxs(_components.p,{children:[`There is an excellent guide for getting to grips with tmux at `,_jsx(_components.a,{href:`https://tmuxcheatsheet.com/`,children:`https://tmuxcheatsheet.com`})]}),`\n`,_jsx(_components.p,{children:`If, however, you would prefer to disable TMUX, you can apply the following either in a terminal or from your template’s on-start section.`}),`\n`,_jsx(CodeBlock,{filename:`Text`,numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`touch ~/.no_auto_tmux`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`ssh-local-port-forwarding`,children:`SSH Local Port Forwarding`}),`\n`,_jsx(_components.p,{children:`An often overlooked feature of SSH is its ability to forward local ports to another machine. When you access a server remotely over SSH, you can make ports from the remote machine available as if they were listening on your own device. This is a secure alternative to opening ports on the public interface as all data is transported over the SSH connection.`}),`\n`,_jsx(CodeBlock,{filename:`Bash`,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:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` root@180.123.123.123`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -L`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 8080:localhost:8080`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -L`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 5000:localhost:5000`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This SSH command connects to the remote instance and sets up `,_jsx(_components.strong,{children:`local port forwarding`}),` (SSH tunneling):`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Connection details:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Connects to IP 180.123.123.123 as user root`}),`\n`,_jsx(_components.li,{children:`Uses port 1234 instead of the default SSH port 22`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Port forwarding (the key part):`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`-L 8080:localhost:8080`}),` - Creates a tunnel so when you access localhost:8080 on your local machine, it forwards to port `,_jsx(_components.code,{children:`8080`}),` on the remote server`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`-L 5000:localhost:5000`}),` - Same thing for port `,_jsx(_components.code,{children:`5000`})]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`You can repeat the `,_jsx(_components.code,{children:`-L`}),` arguments to forward as many ports as you need.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What this means:`}),` After connecting, you can open your web browser and go to `,_jsx(_components.a,{href:`https://localhost:8080`,children:`https://localhost:8080`}),` or `,_jsx(_components.a,{href:`http://localhost:5000`,children:`http://localhost:5000`}),` on your local computer, and you’ll actually be accessing services running on those ports on the remote server. It’s like creating secure “tunnels” through the SSH connection to reach applications on the remote machine that might not be directly accessible from the internet.`]}),`\n`,_jsx(Heading,{level:`2`,id:`ssh-alternative-jupyter-terminal`,children:`SSH Alternative - Jupyter Terminal`}),`\n`,_jsx(_components.p,{children:`As a simple alternative to SSH, you might like to consider Jupyter Terminal instead. All instances started in Jupyter launch mode will have this enabled. It is a very straightforward web-based terminal with session persistence. It’s great for a quick CLI session.`}),`\n`,_jsx(_components.p,{children:`Access the terminal from the Terminal Connections dialog.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-5.webp?fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=8fc6221cae8f0de24f30bd2300fed935`,alt:``,\"data-og-width\":`916`,width:`916`,\"data-og-height\":`107`,height:`107`,\"data-path\":`images/instances-sshscp-5.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-5.webp?w=280\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=0757f590c09b6da58860a8b646b530a2 280w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-5.webp?w=560\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=471a85d5db634fd8a0f3067a9947aba9 560w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-5.webp?w=840\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=e20b26851e5b5ba0a3d2738b8e98bfed 840w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-5.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=69f9b2d0e1a642e4c6d4e7b30c28e566 1100w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-5.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=d5cbb1795805fb94cb9718e2ee3c3e34 1650w, https://mintcdn.com/vastai-80aa3a82/B9jwamTa0hEeFgh2/images/instances-sshscp-5.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=B9jwamTa0hEeFgh2\u0026q=85\u0026s=8c3219a8ae7bab93b14b8a50d129e6ae 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsx(Heading,{level:`3`,id:`permission-denied-publickey`,children:`Permission Denied (publickey)`}),`\n`,_jsx(_components.p,{children:`If you get this error when trying to SSH:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Ensure your SSH key is added to your `,_jsx(_components.a,{href:`https://cloud.vast.ai/manage-keys/`,children:`Vast account`})]}),`\n`,_jsx(_components.li,{children:`Verify you’re using the correct private key`}),`\n`,_jsxs(_components.li,{children:[`Check key file permissions: `,_jsx(_components.code,{children:`chmod 600 ~/.ssh/id_ed25519`})]}),`\n`,_jsxs(_components.li,{children:[`Use `,_jsx(_components.code,{children:`-vv`}),` flag for detailed debug info: `,_jsx(_components.code,{children:`ssh -vv -p PORT root@IP`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`ssh-key-changes`,children:`SSH Key Changes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`New account keys only apply to NEW instances created after adding the key`}),`\n`,_jsx(_components.li,{children:`Existing instances keep their original keys (won’t get new keys automatically)`}),`\n`,_jsx(_components.li,{children:`For VM instances, changing keys requires recreating the VM`}),`\n`,_jsx(_components.li,{children:`To add keys to existing instances, use the instance-specific SSH interface`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`general-connection-issues`,children:`General Connection Issues`}),`\n`,_jsx(_components.p,{children:`You can often determine the exact cause of a connection failure by using the -vv arguments with ssh to get more information.`}),`\n`,_jsx(_components.p,{children:`Common reasons include:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Using the wrong private key`}),`\n`,_jsx(_components.li,{children:`Incorrect permissions for your private key`}),`\n`,_jsx(_components.li,{children:`Public key not added to instance or account`}),`\n`,_jsx(_components.li,{children:`Connecting to the wrong port`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`scp-\u0026-sftp-file-transfer`,children:`SCP \u0026 SFTP File Transfer`}),`\n`,_jsxs(_components.p,{children:[`Both `,_jsx(_components.strong,{children:`SCP`}),` (Secure Copy Protocol) and `,_jsx(_components.strong,{children:`SFTP`}),` (SSH File Transfer Protocol) are tools for securely transferring files that piggyback on the SSH protocol. They use the same authentication and encryption as SSH.`]}),`\n`,_jsx(Heading,{level:`3`,id:`scp-secure-copy-protocol`,children:`SCP (Secure Copy Protocol)`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`What it is:`}),` Simple, command-line tool for copying files between local and remote machines`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Best for:`}),` Quick, one-time file transfers`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Syntax:`}),` `,_jsx(_components.code,{children:`scp -P \u003cport> source destination`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Examples:`})}),`\n`,_jsx(CodeBlock,{filename:`Bash`,numberOfLines:`6`,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:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Copy file TO instance`})}),`\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:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh_por`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my_file.txt`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` root@`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`instance_i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`p`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`:/workspace/`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Copy file FROM remote server`})}),`\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:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh_por`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` root@`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`instance_i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`p`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`:/workspace/my_file.txt`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Copy entire 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:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh_por`}),_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:` -r`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` myfolder/`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` root@`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`instance_i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`p`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`:/workspace/`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`sftp-ssh-file-transfer-protocol`,children:`SFTP (SSH File Transfer Protocol)`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`What it is:`}),` Interactive file transfer program with a full command set`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Best for:`}),` Managing files, browsing directories, multiple operations`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Usage:`}),` CLI or GUI tools available`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example:`})}),`\n`,_jsx(CodeBlock,{filename:`Bash`,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:`# Establish connection`})}),`\n`,_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:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh_por`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` root@`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`instance_i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`p`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`Welcome`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` to`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vast.ai.`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` If`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` authentication`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` fails,`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` try`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` again`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` after`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` a`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` few`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` seconds,`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` and`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` double`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` check`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` your`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ssh`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` key.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`Have`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` fun!`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`Connected`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` to`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 79.116.73.220.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sftp`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`> `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ls`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`hasbooted`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` onstart.sh`})]}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Note that both scp and sftp take the `,_jsx(_components.code,{children:`-P`}),` argument in uppercase. This differs from the ssh command which uses lowercase.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`vs-code-integration`,children:`VS Code Integration`}),`\n`,_jsx(_components.p,{children:`Once you have your ssh keys set up, connecting to VS Code is quite straightforward. We will cover the basics here.`}),`\n`,_jsx(Heading,{level:`3`,id:`install-the-remote-ssh-extension`,children:`Install the Remote SSH extension`}),`\n`,_jsx(_components.p,{children:`You will need to add the remote extension named ‘Remote - SSH’.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-6.webp?fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=17c9e3e3a16d8c26955d3514ae1711e6`,alt:``,\"data-og-width\":`800`,width:`800`,\"data-og-height\":`197`,height:`197`,\"data-path\":`images/instances-sshscp-6.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-6.webp?w=280\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=9714350821d91df6127260d3433f50b3 280w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-6.webp?w=560\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=b7c3b40e2a93fff71c0c308c8d5f0070 560w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-6.webp?w=840\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=04210bc95d585b19614a206dffb5d617 840w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-6.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=518d8f0d739d5d41276570c9d30aa122 1100w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-6.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=6fc23484109e25873900841e94db4f0f 1650w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-6.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=16596074877718ce9ab5d0053dfe01fd 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`open-remote-window`,children:`Open Remote Window`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsxs(`div`,{children:[_jsx(_components.p,{children:`Click the open remote window button.`}),_jsx(Frame,{caption:`Open Remote Window`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-7.webp?fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=1b086f5d4c976f519aa1623f3a613297`,alt:``,\"data-og-width\":`800`,width:`800`,\"data-og-height\":`275`,height:`275`,\"data-path\":`images/instances-sshscp-7.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-7.webp?w=280\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=0637c8e27f36d55cce47ea9bd360417b 280w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-7.webp?w=560\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=eb85b4133b8347ac79300267e480de61 560w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-7.webp?w=840\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=30d674f29c36de381fde6440d600278d 840w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-7.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=c7624f765c2507f9fc26fbb11ac33f61 1100w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-7.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=ab25486608fd22422a7bb031a1e33a89 1650w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-7.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=4eba58f81bfb08aa91466442c288973f 2500w`})})]}),_jsxs(`div`,{children:[_jsx(_components.p,{children:`Enter your ssh address details in the box that appears at the top of your window`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-8.webp?fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=34351926e878b0b59c9a24d4262bbdba`,alt:``,\"data-og-width\":`800`,width:`800`,\"data-og-height\":`64`,height:`64`,\"data-path\":`images/instances-sshscp-8.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-8.webp?w=280\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=7a7c31202f250992d0ecf2f60a7ce0f1 280w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-8.webp?w=560\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=e686d4d9c5c8fd436a5f1c547b3a84ff 560w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-8.webp?w=840\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=460e9dce5de901e9a7010de836b7eead 840w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-8.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=a578db5eb4be54040bd057455814f09c 1100w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-8.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=898a2017185b8f41fa66f6f8eba2d012 1650w, https://mintcdn.com/vastai-80aa3a82/rJSuh7NkZ00k8fzX/images/instances-sshscp-8.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=rJSuh7NkZ00k8fzX\u0026q=85\u0026s=6fdf5538044a44f086057ea94227e7a7 2500w`})]})]}),`\n`,_jsx(_components.p,{children:`Now simply allow a moment for VS code to configure the instance and you will be able to work with the instance as if it was a local machine.`}),`\n`,_jsxs(_components.p,{children:[`For more information, see the `,_jsx(_components.a,{href:`https://code.visualstudio.com/docs/remote/ssh`,children:`VS Code documentation`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`windows-gui-clients`,children:`Windows GUI Clients`}),`\n`,_jsxs(_components.p,{children:[`For Windows users who prefer GUI tools, please see our `,_jsx(_components.a,{href:`/guides/instances/connect/windows-guide`,children:`Windows Connection Guide`}),` for detailed setup instructions for PuTTY, MobaXterm, and other GUI clients.`]})]})}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 Connection","description":"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.","canonical":"/guides/instances/connect/ssh","href":"/guides/instances/connect/ssh"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"About SSH","slug":"about-ssh","depth":2,"children":[]},{"title":"Quick start: Generate and add your SSH key to your Vast account","slug":"quick-start-generate-and-add-your-ssh-key-to-your-vast-account","depth":2,"children":[]},{"title":"Connecting to your Instance","slug":"connecting-to-your-instance","depth":2,"children":[{"title":"Direct vs Proxy Connections","slug":"direct-vs-proxy-connections","depth":3,"children":[]}]},{"title":"Tmux","slug":"tmux","depth":2,"children":[]},{"title":"SSH Local Port Forwarding","slug":"ssh-local-port-forwarding","depth":2,"children":[]},{"title":"SSH Alternative - Jupyter Terminal","slug":"ssh-alternative-jupyter-terminal","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[{"title":"Permission Denied (publickey)","slug":"permission-denied-publickey","depth":3,"children":[]},{"title":"SSH Key Changes","slug":"ssh-key-changes","depth":3,"children":[]},{"title":"General Connection Issues","slug":"general-connection-issues","depth":3,"children":[]}]},{"title":"SCP \u0026 SFTP File Transfer","slug":"scp-\u0026-sftp-file-transfer","depth":2,"children":[{"title":"SCP (Secure Copy Protocol)","slug":"scp-secure-copy-protocol","depth":3,"children":[]},{"title":"SFTP (SSH File Transfer Protocol)","slug":"sftp-ssh-file-transfer-protocol","depth":3,"children":[]}]},{"title":"VS Code Integration","slug":"vs-code-integration","depth":2,"children":[{"title":"Install the Remote SSH extension","slug":"install-the-remote-ssh-extension","depth":3,"children":[]},{"title":"Open Remote Window","slug":"open-remote-window","depth":3,"children":[]}]},{"title":"Windows GUI Clients","slug":"windows-gui-clients","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/vastai-80aa3a82/54e4ee435ab02cb8/structured-data.js"],"subdomain":"vastai-80aa3a82","siteName":"Vast.ai Documentation: Affordable GPU Cloud Marketplace","title":"SSH Connection - Vast.ai Documentation: Affordable GPU Cloud Marketplace","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-15T23:41:37.476Z","originalFileLocation":"guides/instances/connect/ssh.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=\"system\"}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=\"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vast.ai Documentation: Affordable GPU Cloud Marketplace\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"SSH Connection - Vast.ai Documentation: Affordable GPU Cloud Marketplace\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vast.ai Documentation: Affordable GPU Cloud Marketplace\">\u003cmeta data-mint-head property=\"og:url\" content=\"/guides/instances/connect/ssh\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vastai-80aa3a82.mintlify.app/_mintlify/api/og/v2?division=Connect\u0026amp;title=SSH+Connection\u0026amp;description=Learn+how+to+securely+connect+to+Vast.ai+instances+using+SSH.+Generate+keys%2C+establish+connections%2C+use+port+forwarding%2C+and+integrate+with+VS+Code.\u0026amp;theme=bf5e39208aeafab2e44b0496\u0026amp;signature=57a8e00bc0334f087ffcf65488ff0ce98b2641fb1d31065e198126bc3145824d\">\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 Connection - Vast.ai Documentation: Affordable GPU Cloud Marketplace\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vastai-80aa3a82.mintlify.app/_mintlify/api/og/v2?division=Connect\u0026amp;title=SSH+Connection\u0026amp;description=Learn+how+to+securely+connect+to+Vast.ai+instances+using+SSH.+Generate+keys%2C+establish+connections%2C+use+port+forwarding%2C+and+integrate+with+VS+Code.\u0026amp;theme=bf5e39208aeafab2e44b0496\u0026amp;signature=57a8e00bc0334f087ffcf65488ff0ce98b2641fb1d31065e198126bc3145824d\">\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/vastai-80aa3a82/Xpia3h5CJX2PzgYG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vast.ai Documentation: Affordable GPU Cloud Marketplace\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#315FFF\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"indexing\" content=\"all\">\u003cmeta data-mint-head name=\"author\" content=\"Vast.ai Team\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003cmeta data-mint-head name=\"google\" content=\"notranslate\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"WHKqvZxf1snX5HX4y0luN_AnAvAPGoSjUcMv03b_NsI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#000000\">\u003cmeta data-mint-head name=\"color-scheme\" content=\"light dark\">\u003cmeta data-mint-head name=\"format-detection\" content=\"telephone=no\">\u003cmeta data-mint-head name=\"referrer\" content=\"origin\">\u003cmeta data-mint-head name=\"rating\" content=\"general\">\u003cmeta data-mint-head name=\"revisit-after\" content=\"7 days\">\u003cmeta data-mint-head name=\"language\" content=\"en\">\u003cmeta data-mint-head name=\"copyright\" content=\"Copyright 2025\">\u003cmeta data-mint-head name=\"reply-to\" content=\"contact@vast.ai\">\u003cmeta data-mint-head name=\"distribution\" content=\"global\">\u003cmeta data-mint-head name=\"coverage\" content=\"Worldwide\">\u003cmeta data-mint-head name=\"category\" content=\"Developer Documentation\">\u003cmeta data-mint-head name=\"target\" content=\"all\">\u003cmeta data-mint-head name=\"HandheldFriendly\" content=\"True\">\u003cmeta data-mint-head name=\"MobileOptimized\" content=\"320\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-capable\" content=\"yes\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@vast_ai\">\u003clink data-mint-head rel=\"canonical\" href=\"/guides/instances/connect/ssh\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/instances/connect/ssh.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vast.ai/#organization\",\"name\":\"Vast.ai Documentation: Affordable GPU Cloud Marketplace\",\"url\":\"https://docs.vast.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vastai-80aa3a82/lDYZh_6OFg5OOaSN/logo/light.svg?fit=max\u0026auto=format\u0026n=lDYZh_6OFg5OOaSN\u0026q=85\u0026s=7f79454b79a0cfc463ec063cd29faea0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vast.ai#website\",\"name\":\"Vast.ai Documentation: Affordable GPU Cloud Marketplace\",\"url\":\"https://docs.vast.ai\",\"publisher\":{\"@id\":\"https://docs.vast.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vast.ai/guides/instances/connect/ssh#webpage\",\"url\":\"https://docs.vast.ai/guides/instances/connect/ssh\",\"name\":\"SSH Connection\",\"description\":\"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.\",\"dateModified\":\"2026-09-15T23:41:37.476Z\",\"isPartOf\":{\"@id\":\"https://docs.vast.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vast.ai/guides/instances/connect/ssh#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vast.ai/guides/instances/connect/ssh#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Instances\",\"item\":\"https://docs.vast.ai/guides/instances/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connect\",\"item\":\"https://docs.vast.ai/guides/instances/connect/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SSH Connection\",\"item\":\"https://docs.vast.ai/guides/instances/connect/ssh\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.vast.ai/guides/instances/connect/ssh#article\",\"headline\":\"SSH Connection\",\"name\":\"SSH Connection\",\"description\":\"Learn how to securely connect to Vast.ai instances using SSH. Generate keys, establish connections, use port forwarding, and integrate with VS Code.\",\"url\":\"https://docs.vast.ai/guides/instances/connect/ssh\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vast.ai/guides/instances/connect/ssh#webpage\"},\"dateModified\":\"2026-09-15T23:41:37.476Z\",\"publisher\":{\"@id\":\"https://docs.vast.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vast.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vast.ai Documentation: Affordable GPU Cloud Marketplace\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Vast.ai Documentation: Affordable GPU Cloud Marketplace","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","icon":"rocket","pages":[{"title":"Welcome","href":"/guides/get-started"},{"title":"Sign up and rent your first GPU","sidebarTitle":"Quickstart","href":"/guides/get-started/quickstart"},{"title":"Concepts","href":"/guides/concepts"},{"title":"Manage API keys","sidebarTitle":"API keys","href":"/guides/reference/api-keys"},{"title":"Quick Start","sidebarTitle":"Templates","href":"/guides/templates/quickstart"},{"title":"Using Vast.ai with Agents","sidebarTitle":"For Agents","href":"/guides/get-started/agents"},{"title":"Teams Quickstart","sidebarTitle":"For Teams","href":"/guides/teams/teams-quickstart"}]},{"group":"Instances","icon":"server","pages":[{"title":"Overview","href":"/guides/instances/overview"},{"title":"Pricing","href":"/guides/instances/pricing"},{"group":"Find \u0026 rent","pages":[{"title":"Choosing Instances Overview","href":"/guides/instances/choosing/overview"},{"title":"Finding \u0026 Renting Instances","href":"/guides/instances/choosing/find-and-rent"},{"title":"Instance Types","href":"/guides/instances/choosing/instance-types"},{"title":"Choosing a Template","href":"/guides/instances/choosing/templates"},{"title":"Reserved Instances","href":"/guides/instances/choosing/reserved-instances"}]},{"group":"Connect","pages":[{"title":"Overview","description":"Learn about Vast.ai connection methods-SSH, Jupyter, and Entrypoint-and how each controls instance access and workflow.","href":"/guides/instances/connect/overview"},{"title":"SSH Connection","href":"/guides/instances/connect/ssh"},{"title":"Jupyter","description":"Run Jupyter on Vast.ai with proxy or direct HTTPS. Learn setup, TLS certificate installation, and secure connections for smooth AI/ML development.","href":"/guides/instances/connect/jupyter"},{"title":"Windows SSH Guide","href":"/guides/instances/connect/windows-guide"},{"title":"Instance Portal","href":"/guides/instances/connect/instance-portal"},{"title":"Networking \u0026 Ports","href":"/guides/instances/connect/networking"}]},{"group":"Storage \u0026 data","pages":[{"title":"Storage Types","href":"/guides/instances/storage/types"},{"title":"Volumes","href":"/guides/instances/storage/volumes"},{"title":"Data Movement","href":"/guides/instances/storage/data-movement"},{"title":"Cloud Sync","href":"/guides/instances/storage/cloud-sync"},{"title":"Scheduled Cloud Backups","href":"/guides/instances/storage/cloud-backups"}]},{"group":"Manage","pages":[{"title":"Managing Instances","href":"/guides/instances/manage-instances"},{"title":"Docker Execution Environment","sidebarTitle":"Docker Execution Environment","href":"/guides/instances/docker-environment"},{"title":"Virtual Machines","href":"/guides/instances/virtual-machines"}]}]},{"group":"Serverless","icon":"bolt","pages":[{"title":"Serverless","href":"/guides/serverless/index"},{"title":"Quickstart","href":"/guides/serverless/quickstart"},{"title":"Setting Up Endpoints","href":"/guides/serverless/setting-up-endpoints"},{"group":"Architecture","pages":[{"title":"Architecture","href":"/guides/serverless/architecture"},{"title":"The PyWorker","href":"/guides/serverless/overview"},{"title":"The SDK","href":"/guides/serverless/sdk-overview"},{"title":"OpenAI API-compatible Interface","href":"/guides/serverless/openai-compatible-api"},{"title":"Automated Performance Testing","href":"/guides/serverless/automated-performance-testing"}]},{"group":"Deployments","pages":[{"title":"Deployments Overview","href":"/guides/serverless/deployments/index"},{"title":"Architecture Overview","href":"/guides/serverless/deployments/architecture"},{"title":"Configuring Deployments","href":"/guides/serverless/deployments/configuration"},{"title":"@remote Functions","href":"/guides/serverless/deployments/remote-functions"},{"title":"@context Classes","href":"/guides/serverless/deployments/context"},{"group":"Examples","pages":[{"title":"Square Function","href":"/guides/serverless/deployments/examples/square"},{"title":"MNIST Training \u0026 Inference","href":"/guides/serverless/deployments/examples/train-mnist"},{"title":"vLLM Text Generation","href":"/guides/serverless/deployments/examples/vllm"}]}]},{"group":"Scaling Behavior","pages":[{"title":"Endpoint Parameters","href":"/guides/serverless/serverless-parameters"},{"title":"Managing Scale","href":"/guides/serverless/managing-scale"}]},{"title":"Workergroup Parameters","href":"/guides/serverless/workergroup-parameters"},{"title":"Choosing GPUs for Your Workload","href":"/guides/serverless/choosing-gpus"},{"title":"Creating Custom PyWorkers","href":"/guides/serverless/creating-new-pyworkers"},{"title":"Using Worker Sessions","href":"/guides/serverless/sessions"},{"group":"Monitoring and Debug","pages":[{"title":"Worker States","href":"/guides/serverless/worker-states"},{"title":"Zero Downtime Worker Update","href":"/guides/serverless/zero-downtime-worker-update"},{"title":"Endpoint and Worker Logs","href":"/guides/serverless/logging"}]},{"title":"Pricing","href":"/guides/serverless/pricing"},{"group":"Pre-built Templates","pages":[{"title":"vLLM","href":"/guides/serverless/vllm"},{"title":"Text Generation Inference (TGI)","href":"/guides/serverless/text-generation-inference-tgi"},{"title":"Comfy UI","href":"/guides/serverless/comfy-ui"},{"title":"ComfyUI Wan 2.2","href":"/guides/serverless/comfyui-wan-2.2"},{"title":"ComfyUI ACE Step","href":"/guides/serverless/comfyui-acestep"}]}]},{"group":"Templates","icon":"layer-group","pages":[{"title":"Templates","sidebarTitle":"Introduction","href":"/guides/templates/introduction"},{"title":"Creating Templates","sidebarTitle":"Creating Templates","href":"/guides/templates/creating-templates"},{"title":"Managing Templates","href":"/guides/templates/managing-templates"},{"title":"Template Settings","sidebarTitle":"Template Settings","href":"/guides/templates/template-settings"},{"title":"Advanced Setup","sidebarTitle":"Advanced Setup","href":"/guides/templates/advanced-setup"}]},{"group":"Teams","icon":"users","pages":[{"title":"Teams Overview","href":"/guides/teams/teams-overview"},{"title":"Managing Your Team","href":"/guides/teams/managing-teams"},{"title":"Teams Roles","href":"/guides/teams/teams-roles"},{"title":"Legacy Teams","href":"/guides/teams/legacy-teams"}]},{"group":"Account \u0026 billing","icon":"user","pages":[{"title":"Pricing overview","href":"/guides/pricing"},{"title":"Account Settings","href":"/guides/reference/account-settings"},{"title":"Billing","href":"/guides/reference/billing"},{"group":"Notifications","pages":[{"title":"Notifications","sidebarTitle":"Notifications","href":"/guides/reference/notifications"},{"title":"Notification Webhooks","sidebarTitle":"Webhooks","href":"/guides/reference/notification-webhooks"}]},{"title":"Keys","href":"/guides/reference/keys"},{"title":"Two-Factor Authentication","href":"/guides/reference/two-factor-authentication"},{"title":"Referral Program","href":"/guides/reference/referral-program"},{"title":"Troubleshooting","href":"/guides/reference/troubleshooting"}]},{"group":"FAQ","icon":"circle-question","pages":[{"title":"FAQ Overview","sidebarTitle":"Overview","href":"/guides/reference/faq/index"},{"title":"General FAQ","sidebarTitle":"General","href":"/guides/reference/faq/general"},{"title":"Instances FAQ","sidebarTitle":"Instances","href":"/guides/reference/faq/instances"},{"title":"Rental Types FAQ","sidebarTitle":"Rental Types","href":"/guides/reference/faq/rental-types"},{"title":"Jupyter \u0026 SSH FAQ","sidebarTitle":"Jupyter \u0026 SSH","href":"/guides/reference/faq/jupyter-ssh"},{"title":"Billing","href":"/guides/reference/faq/billing"},{"title":"Security FAQ","sidebarTitle":"Security","href":"/guides/reference/faq/security"},{"title":"Technical FAQ","sidebarTitle":"Technical","href":"/guides/reference/faq/technical"},{"title":"Networking","href":"/guides/reference/faq/networking"}]}]},{"tab":"CLI \u0026 SDK","pages":[{"title":"CLI \u0026 SDK","href":"/cli/hello-world"}]},{"tab":"API","pages":[{"title":"API","href":"/api-reference/hello-world"}]},{"tab":"Host","pages":[{"title":"Host","href":"/host/hosting-overview"}]},{"tab":"Examples","pages":[{"title":"Examples","href":"/pytorch"}]}]},"title":"SSH Connection - Vast.ai Documentation: Affordable GPU Cloud Marketplace","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["a74be98ba7","07c022d89b"],"chunks":["zoom-image-lightbox-BNnMwe0F.js","lightbox-handle-r17bVUz3.js","Frame-DYplxqhs.js","DynamicMarkdown-Cc6AuSHS.js"]}