feat: implement comprehensive SSH credentials management system

- Add complete SSH credentials CRUD operations with AES-256 encryption
- Implement database migration system for schema versioning
- Create modern UI with Zinc theme for credentials management
- Add credential viewer and editor with responsive design
- Support password and SSH key authentication methods
- Include usage tracking and folder organization
- Enhance sidebar width and improve page spacing
- Add comprehensive i18n support (EN/ZH)
- Integrate with existing SSH host management

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ZacharyZcR
2025-09-06 16:21:18 +08:00
parent fee5961482
commit 81fca5b074
17 changed files with 3464 additions and 19 deletions
+100
View File
@@ -1,4 +1,103 @@
{
"credentials": {
"credentialsManager": "Credentials Manager",
"manageYourSSHCredentials": "Manage your SSH credentials securely",
"addCredential": "Add Credential",
"createCredential": "Create Credential",
"editCredential": "Edit Credential",
"viewCredential": "View Credential",
"duplicateCredential": "Duplicate Credential",
"deleteCredential": "Delete Credential",
"updateCredential": "Update Credential",
"credentialName": "Credential Name",
"credentialDescription": "Description",
"searchCredentials": "Search credentials...",
"selectFolder": "Select Folder",
"selectAuthType": "Select Auth Type",
"allFolders": "All Folders",
"allAuthTypes": "All Auth Types",
"uncategorized": "Uncategorized",
"totalCredentials": "Total",
"keyBased": "Key-based",
"passwordBased": "Password-based",
"folders": "Folders",
"noCredentialsMatchFilters": "No credentials match your filters",
"noCredentialsYet": "No credentials created yet",
"createFirstCredential": "Create your first credential",
"failedToFetchCredentials": "Failed to fetch credentials",
"credentialDeletedSuccessfully": "Credential deleted successfully",
"failedToDeleteCredential": "Failed to delete credential",
"confirmDeleteCredential": "Are you sure you want to delete credential \"{{name}}\"?",
"credentialCreatedSuccessfully": "Credential created successfully",
"credentialUpdatedSuccessfully": "Credential updated successfully",
"failedToSaveCredential": "Failed to save credential",
"failedToFetchCredentialDetails": "Failed to fetch credential details",
"failedToFetchHostsUsing": "Failed to fetch hosts using this credential",
"basicInfo": "Basic Info",
"authentication": "Authentication",
"organization": "Organization",
"basicInformation": "Basic Information",
"basicInformationDescription": "Enter the basic information for this credential",
"authenticationMethod": "Authentication Method",
"authenticationMethodDescription": "Choose how you want to authenticate with SSH servers",
"organizationDescription": "Organize your credentials with folders and tags",
"enterCredentialName": "Enter credential name",
"enterCredentialDescription": "Enter description (optional)",
"enterUsername": "Enter username",
"nameIsRequired": "Credential name is required",
"usernameIsRequired": "Username is required",
"authenticationType": "Authentication Type",
"passwordAuthDescription": "Use password authentication",
"sshKeyAuthDescription": "Use SSH key authentication",
"passwordIsRequired": "Password is required",
"sshKeyIsRequired": "SSH key is required",
"sshKeyType": "SSH Key Type",
"privateKey": "Private Key",
"enterPassword": "Enter password",
"enterPrivateKey": "Enter private key",
"keyPassphrase": "Key Passphrase",
"enterKeyPassphrase": "Enter key passphrase (optional)",
"keyPassphraseOptional": "Optional: leave empty if your key has no passphrase",
"leaveEmptyToKeepCurrent": "Leave empty to keep current value",
"uploadKeyFile": "Upload Key File",
"generateKeyPair": "Generate Key Pair",
"sshKeyGenerationNotImplemented": "SSH key generation feature coming soon",
"connectionTestingNotImplemented": "Connection testing feature coming soon",
"testConnection": "Test Connection",
"selectOrCreateFolder": "Select or create folder",
"noFolder": "No folder",
"orCreateNewFolder": "Or create new folder",
"addTag": "Add tag",
"saving": "Saving...",
"overview": "Overview",
"security": "Security",
"usage": "Usage",
"securityDetails": "Security Details",
"securityDetailsDescription": "View encrypted credential information",
"credentialSecured": "Credential Secured",
"credentialSecuredDescription": "All sensitive data is encrypted with AES-256",
"passwordAuthentication": "Password Authentication",
"keyAuthentication": "Key Authentication",
"keyType": "Key Type",
"securityReminder": "Security Reminder",
"securityReminderText": "Never share your credentials. All data is encrypted at rest.",
"hostsUsingCredential": "Hosts Using This Credential",
"noHostsUsingCredential": "No hosts are currently using this credential",
"timesUsed": "Times Used",
"lastUsed": "Last Used",
"connectedHosts": "Connected Hosts",
"created": "Created",
"lastModified": "Last Modified",
"usageStatistics": "Usage Statistics",
"copiedToClipboard": "{{field}} copied to clipboard",
"failedToCopy": "Failed to copy to clipboard",
"sshKey": "SSH Key",
"createCredentialDescription": "Create a new SSH credential for secure access",
"editCredentialDescription": "Update the credential information",
"listView": "List",
"folderView": "Folders",
"unknown": "Unknown"
},
"sshTools": {
"title": "SSH Tools",
"closeTools": "Close SSH Tools",
@@ -120,6 +219,7 @@
"nav": {
"home": "Home",
"hosts": "Hosts",
"credentials": "Credentials",
"terminal": "Terminal",
"tunnels": "Tunnels",
"fileManager": "File Manager",
+100
View File
@@ -1,4 +1,103 @@
{
"credentials": {
"credentialsManager": "凭据管理器",
"manageYourSSHCredentials": "安全管理您的SSH凭据",
"addCredential": "添加凭据",
"createCredential": "创建凭据",
"editCredential": "编辑凭据",
"viewCredential": "查看凭据",
"duplicateCredential": "复制凭据",
"deleteCredential": "删除凭据",
"updateCredential": "更新凭据",
"credentialName": "凭据名称",
"credentialDescription": "描述",
"searchCredentials": "搜索凭据...",
"selectFolder": "选择文件夹",
"selectAuthType": "选择认证类型",
"allFolders": "所有文件夹",
"allAuthTypes": "所有认证类型",
"uncategorized": "未分类",
"totalCredentials": "总计",
"keyBased": "密钥认证",
"passwordBased": "密码认证",
"folders": "文件夹",
"noCredentialsMatchFilters": "没有符合筛选条件的凭据",
"noCredentialsYet": "还未创建凭据",
"createFirstCredential": "创建您的第一个凭据",
"failedToFetchCredentials": "获取凭据失败",
"credentialDeletedSuccessfully": "凭据删除成功",
"failedToDeleteCredential": "删除凭据失败",
"confirmDeleteCredential": "确定要删除凭据「{{name}}」吗?",
"credentialCreatedSuccessfully": "凭据创建成功",
"credentialUpdatedSuccessfully": "凭据更新成功",
"failedToSaveCredential": "保存凭据失败",
"failedToFetchCredentialDetails": "获取凭据详情失败",
"failedToFetchHostsUsing": "获取使用此凭据的主机失败",
"basicInfo": "基本信息",
"authentication": "认证方式",
"organization": "组织管理",
"basicInformation": "基本信息",
"basicInformationDescription": "输入此凭据的基本信息",
"authenticationMethod": "认证方式",
"authenticationMethodDescription": "选择如何与SSH服务器进行认证",
"organizationDescription": "使用文件夹和标签来组织您的凭据",
"enterCredentialName": "输入凭据名称",
"enterCredentialDescription": "输入描述(可选)",
"enterUsername": "输入用户名",
"nameIsRequired": "凭据名称是必需的",
"usernameIsRequired": "用户名是必需的",
"authenticationType": "认证类型",
"passwordAuthDescription": "使用密码认证",
"sshKeyAuthDescription": "使用SSH密钥认证",
"passwordIsRequired": "密码是必需的",
"sshKeyIsRequired": "SSH密钥是必需的",
"sshKeyType": "SSH密钥类型",
"privateKey": "私钥",
"enterPassword": "输入密码",
"enterPrivateKey": "输入私钥",
"keyPassphrase": "密钥密码",
"enterKeyPassphrase": "输入密钥密码(可选)",
"keyPassphraseOptional": "可选:如果您的密钥没有密码,请留空",
"leaveEmptyToKeepCurrent": "留空以保持当前值",
"uploadKeyFile": "上传密钥文件",
"generateKeyPair": "生成密钥对",
"sshKeyGenerationNotImplemented": "SSH密钥生成功能即将推出",
"connectionTestingNotImplemented": "连接测试功能即将推出",
"testConnection": "测试连接",
"selectOrCreateFolder": "选择或创建文件夹",
"noFolder": "无文件夹",
"orCreateNewFolder": "或创建新文件夹",
"addTag": "添加标签",
"saving": "保存中...",
"overview": "概览",
"security": "安全",
"usage": "使用情况",
"securityDetails": "安全详情",
"securityDetailsDescription": "查看加密的凭据信息",
"credentialSecured": "凭据已加密",
"credentialSecuredDescription": "所有敏感数据均使用AES-256加密",
"passwordAuthentication": "密码认证",
"keyAuthentication": "密钥认证",
"keyType": "密钥类型",
"securityReminder": "安全提醒",
"securityReminderText": "请勿分享您的凭据。所有数据均已静态加密。",
"hostsUsingCredential": "使用此凭据的主机",
"noHostsUsingCredential": "当前没有主机使用此凭据",
"timesUsed": "使用次数",
"lastUsed": "最后使用",
"connectedHosts": "连接的主机",
"created": "创建时间",
"lastModified": "最后修改",
"usageStatistics": "使用统计",
"copiedToClipboard": "{{field}}已复制到剪贴板",
"failedToCopy": "复制到剪贴板失败",
"sshKey": "SSH密钥",
"createCredentialDescription": "创建新的SSH凭据以进行安全访问",
"editCredentialDescription": "更新凭据信息",
"listView": "列表",
"folderView": "文件夹",
"unknown": "未知"
},
"sshTools": {
"title": "SSH 工具",
"closeTools": "关闭 SSH 工具",
@@ -120,6 +219,7 @@
"nav": {
"home": "首页",
"hosts": "主机",
"credentials": "凭据",
"terminal": "终端",
"tunnels": "隧道",
"fileManager": "文件管理器",