From 98e758d91f608e3d2a6619306a2995909946d27b Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Wed, 29 Jul 2026 17:37:17 -0400 Subject: [PATCH 01/17] Create SSH-key-management.mdx --- .../organizations/SSH-key-management.mdx | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 accounts-billing/organizations/SSH-key-management.mdx diff --git a/accounts-billing/organizations/SSH-key-management.mdx b/accounts-billing/organizations/SSH-key-management.mdx new file mode 100644 index 000000000..1a91bb287 --- /dev/null +++ b/accounts-billing/organizations/SSH-key-management.mdx @@ -0,0 +1,201 @@ +--- +title: "SSH key management" +sidebarTitle: "SSH key management" +description: "Centrally manage SSH public keys for your organization so members can securely connect to Pods." +--- + +Organization-level SSH key management lets org admins store and manage SSH public keys in one place. When a member launches a Pod, org-managed keys are automatically injected into it — no per-member SSH setup required. + +This is useful for teams that need consistent, auditable SSH access across all Pods, and makes it easy to revoke access org-wide when a member leaves. + +--- + +## Roles and permissions + +SSH key management is controlled by org roles. + + + +| Action | Owner/Admin | Member | Billing | Read-only | +|---|---|---|---|---| +| Add an org SSH key | ✅ | ❌ | ❌ | ❌ | +| Delete an org SSH key | ✅ | ❌ | ❌ | ❌ | +| Rename/manage org keys | ✅ | ❌ | ❌ | ❌ | +| Use org keys to connect to Pods | ✅ | ✅ | ❌ | ❌ | + + +Members can still add personal SSH keys to their own account in addition to org-managed keys. See [Personal vs. org keys](#personal-vs-org-keys) for how these interact. + + +--- + +## Adding an SSH key + +### Step 1: Generate a key pair + +If you don't already have an SSH key pair, generate one on your local machine. Runpod only stores the **public key** — never paste your private key anywhere. + + + + ```bash + ssh-keygen -t ed25519 -C "your-name@yourorg.com" + ``` + + When prompted, accept the default file location (`~/.ssh/id_ed25519`) or specify a custom path. To view your public key: + + ```bash + cat ~/.ssh/id_ed25519.pub + ``` + + + ```powershell + ssh-keygen -t ed25519 -C "your-name@yourorg.com" + ``` + + When prompted, accept the default file location. To view your public key: + + ```powershell + Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" + ``` + + If `ssh-keygen` is not available, install [OpenSSH for Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) or use [PuTTYgen](https://www.puttygen.com/). + + + +Your public key will look like: + +``` +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your-name@yourorg.com +``` + +### Step 2: Add the public key to your org + + + +1. Open the [Runpod console](https://console.runpod.io) and navigate to **Settings → Organization → SSH Keys**. +2. Click **Add SSH key**. +3. Paste your public key into the field. +4. Give the key a name (for example, `alice-macbook` or `ci-deploy-key`) so it's easy to identify later. +5. Click **Save**. + +The key is now available to all Pods launched by members of your org. + +--- + +## Managing keys + +To view, rename, or delete org SSH keys: + + + +1. Navigate to **Settings → Organization → SSH Keys**. +2. Find the key you want to manage. +3. To rename it, click the key name and edit it inline. +4. To delete it, click the three-dot menu next to the key and select **Delete**. + + +Deleting an org SSH key immediately revokes access for all org members using that key. Members connected to a running Pod via that key will be disconnected. New Pods will not have the key injected. + + + + +--- + +## Key scope and membership + +**New Pods** launched after a key is added automatically have all current org SSH keys injected at startup. + +**Existing running Pods** do not receive newly added keys unless they are restarted. + + + +### Personal vs. org keys + +Members can maintain personal SSH keys in their individual account settings in addition to org keys. Both sets of keys are injected into Pods the member launches. Either key can be used to connect. + +If a member is removed from the org, their org key access is revoked, but their personal keys are unaffected. + +--- + +## Connecting to a Pod + +Once an org SSH key is set up, any member whose private key matches an org public key can connect to a Pod. + +### Find the connection details + +1. Open the [Pods page](https://console.runpod.io/pods) and expand the Pod you want to connect to. +2. Click **Connect** to view the SSH connection string. + +### Basic SSH + +```bash +ssh root@ -p -i ~/.ssh/id_ed25519 +``` + +Replace `` and `` with the values shown in the console. + +### SSH over exposed TCP + +If the Pod exposes SSH over a TCP proxy (common for Secure Cloud Pods): + +```bash +ssh root@ -p -i ~/.ssh/id_ed25519 +``` + +The proxy host and port are shown in the **Connect** dialog in the console. + + +To avoid specifying the identity file every time, add an entry to your `~/.ssh/config`: + +``` +Host runpod-mypod + HostName + Port + User root + IdentityFile ~/.ssh/id_ed25519 +``` + +Then connect with: `ssh runpod-mypod` + + +--- + +## Troubleshooting + +**Permission denied (publickey)** + +- Confirm that the private key on your machine matches a public key stored in org settings. +- Verify the key was added before the Pod was launched. Org keys are only injected at Pod startup — restart the Pod if you added the key after it was created. +- Check that you're using the correct private key file with `-i ~/.ssh/id_ed25519`. + +**Connected to wrong Pod / unexpected behavior** + +- Double-check the IP and port from the console. These change each time a Pod is restarted. + +**Key not propagated to Pod** + +- Org SSH keys are injected at Pod creation time. If you added the key to org settings after the Pod launched, you must restart the Pod for the key to take effect. + +**Member cannot connect after joining the org** + +- The member needs to provide the private key for one of the org's public keys. Verify they have the corresponding private key for a key stored in org settings. + +**Access not revoked after removing a member** + +- Removing a member from the org revokes their org key access. However, if the member had a personal SSH key added to a Pod before joining the org, that key remains on the Pod. Audit Pod-level keys if you need to ensure full revocation. + + + +--- + +## Security notes + +**Only store public keys.** Never paste a private key into Runpod. Your private key should remain only on the machine you use to connect. + +**Use strong key types.** Ed25519 (`-t ed25519`) is recommended. RSA keys should be at least 4096 bits (`-t rsa -b 4096`). Avoid DSA and ECDSA with short curves. + +**Rotate keys regularly.** If a key may be compromised, delete it from org settings immediately and generate a new key pair. Affected members will need to add their new public key. + +**Offboarding members.** When a member leaves the org, remove their key from org settings to revoke SSH access. If they shared a key with others, replace it with a fresh key pair distributed only to current members. + +**Audit keys periodically.** Review your org's SSH keys in **Settings → Organization → SSH Keys** and remove any keys that are no longer in active use. From 01398070fd5aa4cdef3503e9d91f88d3b9cb206e Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Wed, 29 Jul 2026 17:38:26 -0400 Subject: [PATCH 02/17] Create overview --- accounts-billing/organizations/overview | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 accounts-billing/organizations/overview diff --git a/accounts-billing/organizations/overview b/accounts-billing/organizations/overview new file mode 100644 index 000000000..12ad2b447 --- /dev/null +++ b/accounts-billing/organizations/overview @@ -0,0 +1,21 @@ +--- +title: "Organizations" +sidebarTitle: "Overview" +description: "Manage teams, access, and resources across your Runpod organization." +--- + +Organizations let you collaborate with your team on Runpod. Members share access to resources, and admins control who can do what through roles and permissions. + +## What you can manage + +**Roles and permissions** — assign roles to org members to control access to pods, endpoints, billing, and org settings. See [Roles and permissions](/organizations/roles-and-permissions). + +**SSH key management** — store SSH public keys at the org level so all members can securely connect to Pods without individual key setup. See [SSH key management](/organizations/ssh-key-management). + +**Resource tagging** — create and apply key/value tags to Pods, Endpoints, Network Volumes, and Clusters to organize resources by team, project, or environment. See [Resource tagging](/organizations/resource-tagging). + +## Managing your organization + +To manage your organization's members and settings, navigate to **Settings → Organization** in the [Runpod console](https://console.runpod.io). + + From d7d1572c470f854e1ae65170619884a5aef9453a Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 10:22:52 -0400 Subject: [PATCH 03/17] Create resource-tagging.mdx --- .../organizations/resource-tagging.mdx | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 accounts-billing/organizations/resource-tagging.mdx diff --git a/accounts-billing/organizations/resource-tagging.mdx b/accounts-billing/organizations/resource-tagging.mdx new file mode 100644 index 000000000..205fac50c --- /dev/null +++ b/accounts-billing/organizations/resource-tagging.mdx @@ -0,0 +1,77 @@ +--- +title: "Resource tags" +description: "Organize, filter, and track usage of Runpod resources across your organization with tags." +tag: "NEW" +--- + +Resource tags are key-value labels you create and apply to your Runpod resources to organize, filter, and track usage across your organization. By tagging resources, you can group them in ways that reflect how your teams, projects, and environments are structured. + +A tag key can be any string except one that begins with the reserved `runpod:` prefix. The tag value is optional and can be left blank. + +Tags are shared across your organization rather than defined per user. Once a tag exists, anyone working in your organization can apply it to supported resources, so the same set of labels stays consistent no matter who created a given resource. + +## Supported resources + +You can apply resource tags to the following resource types: + +| Resource type | Description | +|--------------|-------------|Expand commentComment on line R18 +| Pods | Tag individual Pods to organize compute resources. | +| Serverless endpoints | Tag endpoints to group related Serverless workloads. | +| Network volumes | Tag network volumes to track persistent storage. | +| Instant Clusters | Tag Instant Clusters to organize cluster workloads. | + + +Resource tags and cost centers serve different purposes. Tags help you organize and filter resources, while [cost centers](/accounts-billing/cost-centers) track and attribute billing across your organization. You can use both together. + + +## Why use resource tags + +Tags give you a flexible way to categorize resources so you can find and understand them later. Common uses include: + +- Tracking usage for a specific team, project, or initiative. +- Separating environments, such as production versus staging. +- Organizing resources by team or project. +- Quickly filtering resources to find what you need. + +## Create a tag + +To create a tag, open the resource tags management area in the Runpod console, give it a name, and save it. The new tag then becomes available across your organization for anyone to apply. + + +Because tags are shared across your organization, a tag you create is immediately available for anyone in your organization to apply. Consider agreeing on your tags as a team so everyone uses the same set. + + +## Attach a tag to a resource + +You can apply a tag when you create a supported resource, or add one later from the resource's management view. Attaching an existing tag associates that resource with the tag without changing any other resources. + +## Filter resources by tag + +You can filter or search a resource list by tag to see every resource that shares that tag across your organization. This makes it easy to review all the resources associated with a given team, project, or environment in one place. + +## Update a tag + +You can update a tag to change its name (key) and any associated value. Because tags are shared across your organization, updating a tag changes it for every resource that carries it. + +## Detach a tag from a resource + +You can remove a tag from a single resource without deleting the tag itself. Detaching a tag affects only that resource; the tag remains available and stays applied to any other resources that use it. + +## Delete a tag + + +Deleting a tag removes it entirely from your organization, including from every resource it is applied to. This affects all resources carrying the tag, not just one. + + +## Best practices + +A few habits help keep your tags useful and consistent as your organization grows. + +**Establish consistent naming conventions.** Agree on a naming scheme that reflects your teams, projects, and environments before you create tags. Predictable names make tags easier to apply correctly and to filter on later. + +**Tag resources at creation time.** Apply the appropriate tags when you create a resource rather than after the fact. This keeps your resources organized from the start and reduces cleanup work later. + +**Use tags to separate environments.** Apply distinct tags to production, staging, and other environments so you can quickly distinguish them and avoid acting on the wrong resources. + +**Periodically review and prune unused tags.** Revisit your tags from time to time and remove any that are no longer in use. Keeping the tag list current makes it easier for everyone in your organization to find and apply the right tags. From 51f8484b4b5fb3bc42d885e4d529d04b01bfd80f Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 10:27:15 -0400 Subject: [PATCH 04/17] Create roles-and-permissions.mdx --- .../organizations/roles-and-permissions.mdx | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 accounts-billing/organizations/roles-and-permissions.mdx diff --git a/accounts-billing/organizations/roles-and-permissions.mdx b/accounts-billing/organizations/roles-and-permissions.mdx new file mode 100644 index 000000000..d0030f447 --- /dev/null +++ b/accounts-billing/organizations/roles-and-permissions.mdx @@ -0,0 +1,107 @@ +--- +title: "Roles and permissions" +sidebarTitle: "Roles and permissions" +description: "Understand Runpod's built-in team roles and use them to control what team members can do with Pods, Serverless endpoints, network volumes, and billing." +--- + +Runpod team accounts use built-in roles to control what each member can access and do. Assigning roles lets an admin delegate work without granting full account control. This page is for admins who manage a team account. To create or convert a team and invite members, see [Manage accounts](/accounts-billing/manage-accounts). If you received an invitation and want to join, see [Join a team](/accounts-billing/manage-accounts#join-a-team). + +## Why use roles + +Roles let you apply least privilege by granting each member the minimum role they need for their work. Use the Billing role to separate billing access from technical operations, so finance staff can manage payment methods and invoices without touching compute resources. Use the Dev role to let developers create and manage compute without exposing billing or account settings. Reserve the Admin role for trusted leads who need full control over members, settings, billing, and all compute. + +## Available roles + +### Basic role + +The Basic role provides essential access for users who need to work with existing resources without management capabilities. It allows users to access the team account and connect to already-deployed resources such as [Pods](/pods/overview), [Serverless endpoints](/serverless/overview), and [Instant Clusters](/instant-clusters). Users with this role cannot view billing information, start or stop Pods, or create new resources. + +### Billing role + +The Billing role focuses exclusively on financial management. Users with this role can access billing information, manage payment methods, and view invoices, but they cannot access compute resources. This makes the role ideal for finance staff who need billing access without operational permissions. + +### Dev role + +The Dev role extends the Basic permissions with additional capabilities for active development work. It includes all Basic permissions plus the ability to create, start, and stop Pods and manage [network volumes](/storage/network-volumes). Instant Cluster management (creating, deleting, starting, and stopping Instant Clusters) is reserved for the Admin role. Users with this role remain restricted from billing information and account settings. + +### Admin role + +The Admin role provides full control over the account. Administrators can manage team members, configure account settings, handle billing, and control all compute resources. Reserve this role for trusted leads who need full account access. + +## Permissions matrix + +The following matrix shows which permissions each role grants: + +| Permission | Basic | Billing | Dev | Admin | +|------------|-------|---------|-----|-------| +| Access team account | ✅ | ✅ | ✅ | ✅ | +| Connect to existing Pods | ✅ | ❌ | ✅ | ✅ | +| Create/delete/start/stop Pods | ❌ | ❌ | ✅ | ✅ | +| Create/delete Serverless endpoints | ❌ | ❌ | ✅ | ✅ | +| Send requests to Serverless endpoints | ✅ | ❌ | ✅ | ✅ | +| Connect to existing Instant Clusters | ✅ | ❌ | ✅ | ✅ | +| Create/delete/start/stop Instant Clusters | ❌ | ❌ | ❌ | ✅ | +| Create/update/delete network volumes | ❌ | ❌ | ✅ | ✅ | +| View billing information | ❌ | ✅ | ❌ | ✅ | +| Manage payment methods | ❌ | ✅ | ❌ | ✅ | +| Invite team members | ❌ | ❌ | ❌ | ✅ | +| Manage team permissions | ❌ | ❌ | ❌ | ✅ | +| Modify team account settings | ❌ | ❌ | ❌ | ✅ | +| Access audit logs | ❌ | ❌ | ❌ | ✅ | + +If your assigned role does not grant access you need, contact your team's Admin to request a different role. + +## Assign a role to a team member + +You assign a role when you invite a member to your team. The role you choose at invite time determines the member's permissions. + + + + Navigate to the [Team page](https://www.console.runpod.io/team) in the Runpod console. + + + In the **Members** section, select **Invite New Member**. + + + Choose the appropriate role for the new member. This role determines what the member can access and do. + + + Enter the email address of the person you want to invite and select **Create Invite**. + + + Copy the generated invitation link from the **Pending Invites** section and share it with the person you want to invite. + + + + +Invitation links remain active until used or manually revoked. + + +## Remove access + +You can revoke a pending invitation from the **Pending Invites** section before it is used. As part of general offboarding, review team membership regularly and revoke access that is no longer needed. + +To dissolve an entire team and revert to a personal account, see [Manage accounts](/accounts-billing/manage-accounts#convert-to-a-team-account). + +## Best practices + +Assign roles based on each member's responsibilities, and apply the principle of least privilege by granting the minimum role necessary for each person's work. Isolate billing access from technical operations by using the Billing role for finance staff. + +Review team membership regularly and remove access for members who no longer need it. Review audit logs periodically to ensure compliance with your organization's policies and to identify unusual activity early. + +## Next steps + + + + Create or convert a team and invite members. + + + Set up billing and payment methods. + + + Review audit logs to track actions across your team. + + + Attribute team spend by project or team. + + From 87caf0e26ff834337e15839eb170b2a959373176 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 10:28:43 -0400 Subject: [PATCH 05/17] Update manage-accounts.mdx --- accounts-billing/manage-accounts.mdx | 65 +++++----------------------- 1 file changed, 10 insertions(+), 55 deletions(-) diff --git a/accounts-billing/manage-accounts.mdx b/accounts-billing/manage-accounts.mdx index 8d8726b07..ad1826b8a 100644 --- a/accounts-billing/manage-accounts.mdx +++ b/accounts-billing/manage-accounts.mdx @@ -29,19 +29,11 @@ You can revert your account back to a personal account at any time. To revert, s ## Invite team members -Team accounts can invite new members to collaborate. Each invitation includes a specific role that determines the member's permissions. +Team accounts can invite new members to collaborate, and each invitation includes a specific role that determines the member's permissions. Create Team Invite dialog showing role selection and required email field -To invite a new member: - -1. Navigate to the [Team page](https://www.console.runpod.io/team) in the Runpod console. -2. In the **Members** section, select **Invite New Member**. -3. Choose [the appropriate role](#roles-and-permissions) for the new member. -4. Enter the email address of the person you want to invite and click **Create Invite**. -5. Copy the generated invitation link from the **Pending Invites** section and share it with the person you want to invite. - -Invitation links remain active until used or manually revoked. You can view all pending invitations in the team management interface. +For step-by-step instructions on inviting a member and choosing their role, see [Assign a role to a team member](/accounts-billing/roles-and-permissions#assign-a-role-to-a-team-member). ## Join a team @@ -50,52 +42,17 @@ When invited to join a team, you'll receive an invitation link from a team membe 1. Click the invitation link provided by the team member. 2. Select **Join Team** to accept the invitation. -Your account will gain access to the team's resources based on the role assigned to you. +Your account will gain access to the team's resources based on the role assigned to you. To see what your assigned role allows, see [Roles and permissions](/accounts-billing/roles-and-permissions). ## Roles and permissions -Runpod provides four distinct roles to control access within team accounts. Each role includes specific permissions designed for different responsibilities. - -| Permission | Basic | Billing | Dev | Admin | -|------------|-------|---------|-----|-------| -| Access team account | ✅ | ✅ | ✅ | ✅ | -| Connect to existing Pods | ✅ | ❌ | ✅ | ✅ | -| Create/delete/start/stop Pods | ❌ | ❌ | ✅ | ✅ | -| Create/delete Serverless endpoints | ❌ | ❌ | ✅ | ✅ | -| Send requests to Serverless endpoints | ✅ | ❌ | ✅ | ✅ | -| Connect to existing Instant Clusters | ✅ | ❌ | ✅ | ✅ | -| Create/delete/start/stop Instant Clusters | ❌ | ❌ | ❌ | ✅ | -| Create/update/delete network volumes | ❌ | ❌ | ✅ | ✅ | -| View billing information | ❌ | ✅ | ❌ | ✅ | -| Manage payment methods | ❌ | ✅ | ❌ | ✅ | -| Invite team members | ❌ | ❌ | ❌ | ✅ | -| Manage team permissions | ❌ | ❌ | ❌ | ✅ | -| Modify team account settings | ❌ | ❌ | ❌ | ✅ | -| Access audit logs | ❌ | ❌ | ❌ | ✅ | - -### Basic role - -The basic role provides essential access for users who need to work with existing resources without management capabilities. - -This role allows users to access the team account and connect to already-deployed computing resources (e.g., Pods and Serverless endpoints) for development work. Users with this role cannot view billing information, start or stop Pods, or create new resources. - -### Billing role +Runpod team accounts provide four built-in roles (Basic, Billing, Dev, and Admin) that control access to Pods, Serverless endpoints, network volumes, and billing. Each role grants a different set of permissions. -The billing role focuses exclusively on financial management aspects of the account. +For the full permissions matrix and guidance on assigning and revoking roles, see [Roles and permissions](/accounts-billing/roles-and-permissions). -Users with this role can access all billing information, manage payment methods, and view invoices. They cannot access computing resources, making this role ideal for finance team members who need billing access without operational permissions. - -### Dev role - -The dev role extends basic permissions with additional capabilities for active development work. - -This role includes all basic permissions plus the ability to start, stop, and create Pods. Developers can fully manage computing resources for their work while remaining restricted from billing information and account settings. - -### Admin role - -The admin role provides complete control over all account features and settings. - -Administrators have unrestricted access to manage team members, configure account settings, handle billing, and control all team computing resources. This role should be reserved for team leaders and trusted members who need full account access. + +Apply the principle of least privilege by assigning each member the minimum role necessary for their work. + ## Account spend limits @@ -113,9 +70,7 @@ Regular review of audit logs helps identify unusual activity and ensures team me ## Best practices -When managing team accounts, establish clear role assignments based on each member's responsibilities. Regularly review team membership and remove access for members who no longer need it. - -For enhanced security, use the principle of least privilege by assigning the minimum role necessary for each team member's work. Consider creating separate accounts for billing management to isolate financial access from technical operations. +When managing team accounts, regularly review team membership and remove access for members who no longer need it. Monitor audit logs periodically to ensure compliance with your organization's policies and identify any unauthorized activities early. @@ -126,4 +81,4 @@ After setting up your account and team you can: * [Create API keys](/get-started/api-keys) to enable programmatic access to Runpod services. * [Deploy your first Pod](/get-started) to start using GPU resources. * Configure [Serverless endpoints](/serverless/overview) for scalable AI inference. -* Set up [billing and payment methods](https://console.runpod.io/user/billing) for your team. \ No newline at end of file +* Set up [billing and payment methods](https://console.runpod.io/user/billing) for your team. From de900fcbfe8b25d5cbd1bb6c6902a7424a665e38 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 10:38:11 -0400 Subject: [PATCH 06/17] Update docs.json --- docs.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs.json b/docs.json index e0a2e7388..e0c4b7065 100644 --- a/docs.json +++ b/docs.json @@ -269,6 +269,15 @@ "accounts-billing/cost-centers", "accounts-billing/referrals", "accounts-billing/manage-payment-cards" + { + "group": "Organizations", + "pages": [ + "organizations/overview", + "organizations/roles-and-permissions", + "organizations/ssh-key-management", + "organizations/resource-tagging" + ] + } ] }, { From 7de1a963df16cdae2546f7561c24cc0659240f57 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 11:08:55 -0400 Subject: [PATCH 07/17] Update docs.json --- docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs.json b/docs.json index 9cf7c0b81..7016707e5 100644 --- a/docs.json +++ b/docs.json @@ -268,7 +268,7 @@ "accounts-billing/billing", "accounts-billing/cost-centers", "accounts-billing/referrals", - "accounts-billing/manage-payment-cards" + "accounts-billing/manage-payment-cards", { "group": "Organizations", "pages": [ From a8c665612ddc5d0021f5e88a09a34bed208ea29b Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 11:16:55 -0400 Subject: [PATCH 08/17] Update docs.json --- docs.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs.json b/docs.json index 7016707e5..225a2ff6d 100644 --- a/docs.json +++ b/docs.json @@ -272,10 +272,10 @@ { "group": "Organizations", "pages": [ - "organizations/overview", - "organizations/roles-and-permissions", - "organizations/ssh-key-management", - "organizations/resource-tagging" + "accounts-billing/organizations/overview", + "accounts-billing/organizations/roles-and-permissions", + "accounts-billing/organizations/ssh-key-management", + "accounts-billing/organizations/resource-tagging" ] } ] From 98b529172d2412893a8832a1a8781d666a381a50 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 11:27:15 -0400 Subject: [PATCH 09/17] Rename overview to overview.mdx --- accounts-billing/organizations/{overview => overview.mdx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename accounts-billing/organizations/{overview => overview.mdx} (100%) diff --git a/accounts-billing/organizations/overview b/accounts-billing/organizations/overview.mdx similarity index 100% rename from accounts-billing/organizations/overview rename to accounts-billing/organizations/overview.mdx From 8ef336288e070737c9f6c981e4d4ac3b059bee81 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 11:29:00 -0400 Subject: [PATCH 10/17] Update docs.json --- docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs.json b/docs.json index 225a2ff6d..dac303efc 100644 --- a/docs.json +++ b/docs.json @@ -274,7 +274,7 @@ "pages": [ "accounts-billing/organizations/overview", "accounts-billing/organizations/roles-and-permissions", - "accounts-billing/organizations/ssh-key-management", + "accounts-billing/organizations/SSH-key-management", "accounts-billing/organizations/resource-tagging" ] } From 9fb0482b9b5acfa14121c8ad11f4ae91606ad2c2 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 11:58:06 -0400 Subject: [PATCH 11/17] Update resource-tagging.mdx --- accounts-billing/organizations/resource-tagging.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts-billing/organizations/resource-tagging.mdx b/accounts-billing/organizations/resource-tagging.mdx index 205fac50c..f7bd3cd4b 100644 --- a/accounts-billing/organizations/resource-tagging.mdx +++ b/accounts-billing/organizations/resource-tagging.mdx @@ -15,7 +15,7 @@ Tags are shared across your organization rather than defined per user. Once a ta You can apply resource tags to the following resource types: | Resource type | Description | -|--------------|-------------|Expand commentComment on line R18 +|--------------|-------------| | Pods | Tag individual Pods to organize compute resources. | | Serverless endpoints | Tag endpoints to group related Serverless workloads. | | Network volumes | Tag network volumes to track persistent storage. | From f8101bf5dfb639a057bc42dd830ec3c80b384b6e Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 11:58:57 -0400 Subject: [PATCH 12/17] Update roles-and-permissions.mdx --- accounts-billing/organizations/roles-and-permissions.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/accounts-billing/organizations/roles-and-permissions.mdx b/accounts-billing/organizations/roles-and-permissions.mdx index d0030f447..57e11ef66 100644 --- a/accounts-billing/organizations/roles-and-permissions.mdx +++ b/accounts-billing/organizations/roles-and-permissions.mdx @@ -2,6 +2,7 @@ title: "Roles and permissions" sidebarTitle: "Roles and permissions" description: "Understand Runpod's built-in team roles and use them to control what team members can do with Pods, Serverless endpoints, network volumes, and billing." +tag: "NEW" --- Runpod team accounts use built-in roles to control what each member can access and do. Assigning roles lets an admin delegate work without granting full account control. This page is for admins who manage a team account. To create or convert a team and invite members, see [Manage accounts](/accounts-billing/manage-accounts). If you received an invitation and want to join, see [Join a team](/accounts-billing/manage-accounts#join-a-team). From d61d4f2f50c8693aaae3f444ddea34cbfc7784f9 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 11:59:31 -0400 Subject: [PATCH 13/17] Update SSH-key-management.mdx --- accounts-billing/organizations/SSH-key-management.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/accounts-billing/organizations/SSH-key-management.mdx b/accounts-billing/organizations/SSH-key-management.mdx index 1a91bb287..70be5ab07 100644 --- a/accounts-billing/organizations/SSH-key-management.mdx +++ b/accounts-billing/organizations/SSH-key-management.mdx @@ -2,6 +2,7 @@ title: "SSH key management" sidebarTitle: "SSH key management" description: "Centrally manage SSH public keys for your organization so members can securely connect to Pods." +tag: "NEW" --- Organization-level SSH key management lets org admins store and manage SSH public keys in one place. When a member launches a Pod, org-managed keys are automatically injected into it — no per-member SSH setup required. From 7add49e8f59cae4de8e6f181fdf00f13db673275 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 12:03:59 -0400 Subject: [PATCH 14/17] Update SSH-key-management.mdx --- .../organizations/SSH-key-management.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/accounts-billing/organizations/SSH-key-management.mdx b/accounts-billing/organizations/SSH-key-management.mdx index 70be5ab07..7ef5f181c 100644 --- a/accounts-billing/organizations/SSH-key-management.mdx +++ b/accounts-billing/organizations/SSH-key-management.mdx @@ -15,7 +15,7 @@ This is useful for teams that need consistent, auditable SSH access across all P SSH key management is controlled by org roles. - + Organization > SSH Keys? Please verify.] --> +/* [CONFIRM: Exact navigation path to SSH key management in org settings. E.g., Settings > Organization > SSH Keys? Please verify.] */ 1. Open the [Runpod console](https://console.runpod.io) and navigate to **Settings → Organization → SSH Keys**. 2. Click **Add SSH key**. @@ -87,7 +87,7 @@ The key is now available to all Pods launched by members of your org. To view, rename, or delete org SSH keys: - +/* [CONFIRM: Exact UI path and available actions (rename, delete) for managing org SSH keys.] */ 1. Navigate to **Settings → Organization → SSH Keys**. 2. Find the key you want to manage. @@ -98,7 +98,7 @@ To view, rename, or delete org SSH keys: Deleting an org SSH key immediately revokes access for all org members using that key. Members connected to a running Pod via that key will be disconnected. New Pods will not have the key injected. - +/* [CONFIRM: Does deleting a key affect currently running pods immediately, or only new pods going forward? The above assumes immediate revocation — please verify.] */ --- @@ -108,7 +108,7 @@ Deleting an org SSH key immediately revokes access for all org members using tha **Existing running Pods** do not receive newly added keys unless they are restarted. - +/* [CONFIRM: Confirm whether org keys are injected into existing running pods or only at pod creation time.] */ ### Personal vs. org keys @@ -185,7 +185,7 @@ Then connect with: `ssh runpod-mypod` - Removing a member from the org revokes their org key access. However, if the member had a personal SSH key added to a Pod before joining the org, that key remains on the Pod. Audit Pod-level keys if you need to ensure full revocation. - +/* [CONFIRM: How exactly does member removal interact with key injection? Is org access revoked from running pods immediately, or only for new pods?] */ --- From d142cbd7b5eda5ffda4b5e3b79041048b17060c7 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 12:04:20 -0400 Subject: [PATCH 15/17] Update overview.mdx --- accounts-billing/organizations/overview.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts-billing/organizations/overview.mdx b/accounts-billing/organizations/overview.mdx index 12ad2b447..e5d48f1d3 100644 --- a/accounts-billing/organizations/overview.mdx +++ b/accounts-billing/organizations/overview.mdx @@ -18,4 +18,4 @@ Organizations let you collaborate with your team on Runpod. Members share access To manage your organization's members and settings, navigate to **Settings → Organization** in the [Runpod console](https://console.runpod.io). - +/* [CONFIRM: Is the org settings path Settings → Organization, or something else in the console?] */ From 8e1cb2789dae7e70185df3b02b3d32eb8fb085af Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 14:26:48 -0400 Subject: [PATCH 16/17] Fix MDX comment syntax: replace /* */ and - - ```bash - ssh-keygen -t ed25519 -C "your-name@yourorg.com" - ``` - - When prompted, accept the default file location (`~/.ssh/id_ed25519`) or specify a custom path. To view your public key: - - ```bash - cat ~/.ssh/id_ed25519.pub - ``` - - - ```powershell - ssh-keygen -t ed25519 -C "your-name@yourorg.com" - ``` - - When prompted, accept the default file location. To view your public key: - - ```powershell - Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" - ``` - - If `ssh-keygen` is not available, install [OpenSSH for Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) or use [PuTTYgen](https://www.puttygen.com/). - + +```bash +ssh-keygen -t ed25519 -C "your-name@yourorg.com" +``` + +When prompted, accept the default file location (`~/.ssh/id_ed25519`) or specify a custom path. To view your public key: + +```bash +cat ~/.ssh/id_ed25519.pub +``` + + +```powershell +ssh-keygen -t ed25519 -C "your-name@yourorg.com" +``` + +When prompted, accept the default file location. To view your public key: + +```powershell +Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" +``` + +If `ssh-keygen` is not available, install [OpenSSH for Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) or use [PuTTYgen](https://www.puttygen.com/). + Your public key will look like: @@ -71,7 +71,7 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your-name@yourorg.com ### Step 2: Add the public key to your org -/* [CONFIRM: Exact navigation path to SSH key management in org settings. E.g., Settings > Organization > SSH Keys? Please verify.] */ +{/* [CONFIRM: Exact navigation path to SSH key management in org settings. E.g., Settings > Organization > SSH Keys? Please verify.] */} 1. Open the [Runpod console](https://console.runpod.io) and navigate to **Settings → Organization → SSH Keys**. 2. Click **Add SSH key**. @@ -87,7 +87,7 @@ The key is now available to all Pods launched by members of your org. To view, rename, or delete org SSH keys: -/* [CONFIRM: Exact UI path and available actions (rename, delete) for managing org SSH keys.] */ +{/* [CONFIRM: Exact UI path and available actions (rename, delete) for managing org SSH keys.] */} 1. Navigate to **Settings → Organization → SSH Keys**. 2. Find the key you want to manage. @@ -98,7 +98,7 @@ To view, rename, or delete org SSH keys: Deleting an org SSH key immediately revokes access for all org members using that key. Members connected to a running Pod via that key will be disconnected. New Pods will not have the key injected. -/* [CONFIRM: Does deleting a key affect currently running pods immediately, or only new pods going forward? The above assumes immediate revocation — please verify.] */ +{/* [CONFIRM: Does deleting a key affect currently running pods immediately, or only new pods going forward? The above assumes immediate revocation — please verify.] */} --- @@ -108,7 +108,7 @@ Deleting an org SSH key immediately revokes access for all org members using tha **Existing running Pods** do not receive newly added keys unless they are restarted. -/* [CONFIRM: Confirm whether org keys are injected into existing running pods or only at pod creation time.] */ +{/* [CONFIRM: Confirm whether org keys are injected into existing running pods or only at pod creation time.] */} ### Personal vs. org keys @@ -150,10 +150,10 @@ To avoid specifying the identity file every time, add an entry to your `~/.ssh/c ``` Host runpod-mypod - HostName - Port - User root - IdentityFile ~/.ssh/id_ed25519 +HostName +Port +User root +IdentityFile ~/.ssh/id_ed25519 ``` Then connect with: `ssh runpod-mypod` @@ -166,7 +166,7 @@ Then connect with: `ssh runpod-mypod` **Permission denied (publickey)** - Confirm that the private key on your machine matches a public key stored in org settings. -- Verify the key was added before the Pod was launched. Org keys are only injected at Pod startup — restart the Pod if you added the key after it was created. +- Verify the key was added before the Pod was launched. Org keys are only injected at Pod startup. Restart the Pod if you added the key after it was created. - Check that you're using the correct private key file with `-i ~/.ssh/id_ed25519`. **Connected to wrong Pod / unexpected behavior** @@ -185,7 +185,7 @@ Then connect with: `ssh runpod-mypod` - Removing a member from the org revokes their org key access. However, if the member had a personal SSH key added to a Pod before joining the org, that key remains on the Pod. Audit Pod-level keys if you need to ensure full revocation. -/* [CONFIRM: How exactly does member removal interact with key injection? Is org access revoked from running pods immediately, or only for new pods?] */ +{/* [CONFIRM: How exactly does member removal interact with key injection? Is org access revoked from running pods immediately, or only for new pods?] */} --- From 7f9324b6903ed7bd0eaa5698e34e5da679b858a4 Mon Sep 17 00:00:00 2001 From: lgunreddi Date: Fri, 31 Jul 2026 14:30:18 -0400 Subject: [PATCH 17/17] Update overview.mdx --- accounts-billing/organizations/overview.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts-billing/organizations/overview.mdx b/accounts-billing/organizations/overview.mdx index e5d48f1d3..058355114 100644 --- a/accounts-billing/organizations/overview.mdx +++ b/accounts-billing/organizations/overview.mdx @@ -18,4 +18,4 @@ Organizations let you collaborate with your team on Runpod. Members share access To manage your organization's members and settings, navigate to **Settings → Organization** in the [Runpod console](https://console.runpod.io). -/* [CONFIRM: Is the org settings path Settings → Organization, or something else in the console?] */ +{ /* [CONFIRM: Is the org settings path Settings → Organization, or something else in the console?] */ }