Skip to content

Project Overview

dh00mk3tu edited this page Aug 20, 2025 · 2 revisions

This is a desktop application built with NUXT for frontend and Rust - Tauri for backend that provides a user-friendly interface for managing SSH keys on your system. The application allows users to view, create, and remove SSH keys while providing real-time status information about loaded keys in the SSH agent.

Architecture

Backend (Rust/Tauri)

  • Framework: Tauri with Rust
  • Purpose: System-level SSH operations and file management
  • Key Functions:
    • SSH key discovery and parsing
    • Key creation and removal
    • SSH agent status monitoring
    • File system operations

Frontend (Nuxt)

  • Framework: Nuxt with Composition API
  • Styling: Tailwind CSS with custom CSS variables
  • State Management: Nuxt reactive system with custom composables
  • Components: Modular, reusable components for different UI elements

Core Features

1. SSH Key Discovery

  • Function: get_ssh_keys()
  • Purpose: Scans ~/.ssh/ directory for public key files
  • Output: Returns structured data including:
    • Filename (for key removal)
    • Key information (type, size, email, fingerprint)
    • Error handling for corrupted or invalid keys

2. SSH Agent Monitoring

  • Function: is_ssh_agent_running()
  • Purpose: Checks if SSH agent is active
  • Function: get_loaded_ssh_agent_keys()
  • Purpose: Lists currently loaded keys in SSH agent
  • Output: Shows which keys are actively available for SSH connections

3. SSH Key Creation

  • Function: create_ssh_key()
  • Parameters:
    • Email address
    • Key type (RSA, ED25519, etc.)
    • Key size (bits)
    • Optional passphrase
  • Features:
    • Automatic filename generation
    • Duplicate key prevention
    • Directory creation if needed

4. SSH Key Removal

  • Function: remove_ssh_key()
  • Parameters: Filename (without extension)
  • Safety: Removes both private and public key files
  • Confirmation: User confirmation modal before deletion

Clone this wiki locally