Importing SSH Keys
Import existing SSH keys from GitHub, GitLab, or other services
If you already have SSH keys that you use for other services (GitHub, GitLab, other cloud providers), you can import the public key to use with your virtual machines on our platform.
SSH Key Import Process
To import an existing SSH public key:
Navigate to SSH Keys
Navigate to the SSH Keys page from the sidebar
Initiate Import
Click “Import Key” button
Name Your Key
Enter a descriptive name for the key (maximum 50 characters):
- Names must contain only letters, numbers, underscores, hyphens, and periods
- Use descriptive names like “github-key” or “laptop-ssh-key”
- Choose names that identify the key’s source or purpose
Paste Public Key
Paste your public key content in the text area:
- Key must begin with ssh-rsa, ssh-ed25519, or similar
- Include the entire public key on a single line
- Include optional comment if desired
Import Key
Click “Import Key” to add it to your account:
- System validates key format automatically
- Key is added to your account immediately
- Available for VM deployment right away
Finding Your Public Key
Locate your existing public key on your system:
Common Public Key Locations
Your public key is typically located at:
Display and copy your public key:
Common Public Key Locations
Your public key is typically located at:
Display and copy your public key:
Windows Key Locations
With Git Bash or WSL:
Display with Git Bash:
With PowerShell:
Common Windows locations:
C:\Users\YourUsername\.ssh\id_rsa.pub
C:\Users\YourUsername\.ssh\id_ed25519.pub
Public Key Format Requirements
Understanding the correct format for import:
Valid Key Formats
Format Validation
Public Key Requirements:
A valid public key must:
- Begin with a key type:
ssh-rsa
,ssh-ed25519
, orssh-dss
- Contain a long base64-encoded string of characters
- Be on a single line with no line breaks
- Optionally end with a comment (usually email address or description)
Supported Key Types
The platform supports industry-standard SSH key types:
RSA Key Support
- Format: ssh-rsa
- Recommended Size: 2048+ bits (4096 bits preferred)
- Compatibility: Universal compatibility with all SSH clients
- Security: Mature, well-tested algorithm
- Use Case: Most common, works everywhere
RSA Key Support
- Format: ssh-rsa
- Recommended Size: 2048+ bits (4096 bits preferred)
- Compatibility: Universal compatibility with all SSH clients
- Security: Mature, well-tested algorithm
- Use Case: Most common, works everywhere
Ed25519 Key Support
- Format: ssh-ed25519
- Security: Modern, highly secure elliptic curve cryptography
- Performance: Faster than RSA with equivalent security
- Recommended: Best choice for new key generation
- Use Case: Modern applications requiring high security
ECDSA Key Support
- Formats: ecdsa-sha2-nistp256/384/521
- Curves: NIST P-256, P-384, P-521
- Compatibility: Supported by modern SSH clients
- Performance: Good balance of security and performance
- Use Case: Alternative to RSA with smaller key sizes
Importing from Popular Services
GitHub SSH Keys
Access GitHub SSH Keys
Go to GitHub → Settings → SSH and GPG keys
Copy Public Key
Copy the public key content from GitHub
Import to Platform
Paste the key in the import dialog
Use Descriptive Name
Name it something like “github-personal-key”
GitLab SSH Keys
Access GitLab SSH Keys
Go to GitLab → User Settings → SSH Keys
Copy Public Key
Copy the public key content from GitLab
Import to Platform
Paste the key in the import dialog
Use Descriptive Name
Name it something like “gitlab-work-key”
Import Validation and Errors
Common Import Issues
Format Errors
Format Errors
Invalid Key Format
- Symptoms: “Invalid key format” error message
- Causes: Line breaks, missing key type, corrupted key
- Solutions:
- Ensure key is on single line
- Verify key type prefix (ssh-rsa, ssh-ed25519)
- Copy key again from source
- Check for extra whitespace or characters
Key Type Issues
Key Type Issues
Unsupported Key Types
- Symptoms: “Unsupported key type” error
- Causes: Very old key formats, custom key types
- Solutions:
- Use supported key types (RSA, Ed25519, ECDSA)
- Generate new key with supported algorithm
- Convert key to supported format if possible
Duplicate Keys
Duplicate Keys
Key Already Exists
- Symptoms: “Key already exists” error
- Causes: Same public key already imported
- Solutions:
- Check existing keys in account
- Use different key if available
- Delete old key if no longer needed
Name Conflicts
Name Conflicts
Duplicate Key Names
- Symptoms: “Name already in use” error
- Causes: Key name already used in account
- Solutions:
- Choose different, unique name
- Check existing key names
- Use more specific naming convention
Best Practices for Key Import
Key Selection
Choose Strong Keys
Security Considerations
- Prefer Ed25519 keys for new imports
- Use RSA keys with 2048+ bits minimum
- Avoid old or deprecated key formats
- Verify key source and integrity
Organize by Purpose
Key Organization
- Import separate keys for different purposes
- Use descriptive names indicating source/purpose
- Group related keys with consistent naming
- Document key purposes for team usage
Naming Strategy
Identify Source
Include the source service or system in the name
Specify Purpose
Indicate what the key will be used for
Add Context
Include environment or project information
Use Consistent Format
Develop naming convention for consistency
Example naming patterns:
github-personal-2024
gitlab-work-project-alpha
laptop-development-key
ci-cd-deployment-key
Security Considerations
Key Reuse Benefits
Simplified Management
Simplified Management
Key Management Advantages
- Fewer keys to manage and secure
- Consistent access across platforms
- Reduced risk of key loss or confusion
- Easier team collaboration
Proven Security
Proven Security
Using Existing Keys
- Keys already tested and validated
- Established security procedures
- Known key strength and format
- Existing backup and recovery procedures
Security Precautions
Security Reminders:
- Only import keys you control and trust
- Verify key integrity before import
- Use keys from secure, trusted sources
- Keep private keys secure and never share them
- Monitor key usage across all platforms
Troubleshooting Import Issues
Validation Problems
Key Format Problems
Common Problems:
- Line breaks in the middle of key
- Missing key type prefix
- Extra whitespace or characters
- Truncated or incomplete key
Solutions:
- Copy key again from original source
- Verify entire key is selected
- Check for line wrapping issues
- Use text editor to verify format
Key Format Problems
Common Problems:
- Line breaks in the middle of key
- Missing key type prefix
- Extra whitespace or characters
- Truncated or incomplete key
Solutions:
- Copy key again from original source
- Verify entire key is selected
- Check for line wrapping issues
- Use text editor to verify format
Copy-Paste Problems
Common Problems:
- Partial key copying
- Added formatting from rich text
- Character encoding issues
- Browser copy-paste problems
Solutions:
- Use plain text editor for copying
- Copy from command line output
- Verify complete key selection
- Try different browser or method
Testing Imported Keys
Verify Import Success
Check that key appears in SSH keys list
Test with VM Deployment
Use imported key for new VM deployment
Test SSH Connection
Connect to VM using imported key
Validate Functionality
Confirm normal SSH operations work correctly
Import vs. Creation Comparison
Import Existing Keys When:
- You already have secure, trusted keys
- You want consistent access across platforms
- You have established key management procedures
- You’re migrating from another platform
Import Existing Keys When:
- You already have secure, trusted keys
- You want consistent access across platforms
- You have established key management procedures
- You’re migrating from another platform
Create New Keys When:
- You don’t have existing SSH keys
- You want platform-specific keys
- Your existing keys are old or weak
- You need fresh keys for security reasons
Importing existing SSH keys allows you to use your established keys while keeping your private key secure on your local machine. This is often the preferred method for users who already have a key management system in place.
When importing keys from services like GitHub or GitLab, use descriptive names that indicate both the source and purpose. This makes it easier to manage multiple keys and understand their intended use.