teleport
teleport copied to clipboard
Add option to open SSH sessions in external terminal or VSCode from Teleport Connect or Web UI
Desired Functionality
Users should have the option to initiate SSH sessions from the Teleport Web UI or Teleport Connect using their preferred external terminal application (e.g., iTerm2) or IDE (e.g., VS Code with the Remote SSH extension). This allows users to leverage the advanced features and customizations of their chosen tools.
What problem does this solve?
SSH sessions initiated from the Teleport Web UI or Teleport Connect open in the built-in terminal emulator. There is no option to open the SSH connection in an external terminal application or IDE. The built-in terminal emulator is functional, but isn't as feature-complete as the primary terminal emulator that users may be accustomed to.
Feature Details
Use Case
Providing the ability to open SSH sessions in external applications enhances user productivity by allowing them to use tools they are more comfortable with, which may offer better usability, feature sets, or integrations (such as VS Code's development features or iTerm2's terminal capabilities).
Proposed Implementation
- Add buttons or options in the Teleport Web UI and Teleport Connect next to SSH nodes, enabling users to open SSH connections in external applications.
- Utilize custom URI schemes to initiate connections:
- For VS Code:
vscode://vscode-remote/ssh-remote+<hostname>/
- For iTerm2:
iterm2://command?c=ssh%20<hostname>
- For VS Code:
- Options could be configurable in user settings to enable or disable specific external application options to avoid cluttering the interface.
Considerations
- Ensure that hostnames and parameters are correctly encoded in the URIs.
- Handle cases where the external application or required extensions (e.g., VS Code Remote SSH) are not installed, possibly by displaying an informative message or prompt.
- Maintain security considerations when generating external URIs.
- Provide flexibility for users to specify additional SSH options, such as username or initial directory.
Teleport Version
Feature request applicable to the current version. (16.4.2 at time of writing)