Testbed for SSH key propagation
Find a file
Julien Ducharme 23730d0a54 Version 1.1.0
2025-09-20 10:01:05 -04:00
changelogs Version 1.1.0 2025-09-20 10:01:05 -04:00
client Version 1.1.0 2025-09-20 10:01:05 -04:00
common Version 1.1.0 2025-09-20 10:01:05 -04:00
docs Version 1.1.0 2025-09-20 10:01:05 -04:00
server Version 1.1.0 2025-09-20 10:01:05 -04:00
.gitignore Version 1.0.0 2025-09-19 12:49:41 -04:00
bootstrap.sh Version 1.1.0 2025-09-20 10:01:05 -04:00
install.sh Version 1.1.0 2025-09-20 10:01:05 -04:00
LICENSE Version 1.0.0 2025-09-19 12:49:41 -04:00
README.md Version 1.1.0 2025-09-20 10:01:05 -04:00

Proxmox User Management

This is intended as a script for user management for SSH clients and remote access into Proxmox nodes. It's designed to be used as a centralized tool for secure distribution and deployment of SSH keys to authorized clients.

Current version (1.1.0)

  • User credentials management and propagation
    • This is not a password manager!
  • Lightweight Python architecture

Repo Structure

proxmox-usermgr/
├── bootstrap.sh               # Simple installation script
├── install.sh                 # Main installation script
├── README.md                  # Documentation
├── LICENSE                    # License file
├── server/                    # Server (master) components
│   ├── usermgr.py             # CLI management tool
│   └── config/                # Server configuration templates
│       └── default.json       # Default configuration
├── changelogs/                # Changelogs
│       └── vX.X.X             # Version
├── client/                    # Client components
│   ├── client-sync.py         # Client sync script (Python)
│   └── config/                # Client configuration templates
│       └── client.conf        # Client configuration
├── common/                    # Shared components
│   ├── updater.sh             # Application updater script
│   ├── schemas/               # JSON schemas for validation
│   │   └── users.schema.json  # User database schema
│   └── scripts/               # Utility scripts
│       ├── backup.sh          # Backup script
│       └── health-check.sh    # Health monitoring
└── docs/                      # Documentation
    ├── installation.md        # Installation guide
    ├── usage.md               # Usage examples
    └── troubleshooting.md     # Troubleshooting guide

Key files

  • install.sh: Main installation script.
  • server/usrmgr.py: Main server-side CLI tool.
  • client/client-sync.py: Main client-side syncing script.
  • common/schemas/user.schema.json: JSON validation scheme.

Requirements

The requirements for this script are minimal.

  • Server
    • Linux-based LXC container or VM
      • LXC is recommended
    • 512MB RAM (1GB ideal for stability with large deployments)
    • Python 3.6+
    • SSH client and server packages
    • Git for installation
    • 10GB for log storage
  • Client
    • Linux-based system
      • Bare-metal, PVE node, LXC and VM supported
    • Runs alongside allocated resources
    • Python 3.6+
    • SSH server for remote access
    • Systemd for service management
  • Network
    • SSH connectivity over port 22
    • Private network recommended
    • Firewall rules allowing SSH between instances

Installation and usage

View dedicated files in docs/ for installation instructions and usage.

Final notes

This script is, as of now, untested. It's NOT meant for the production environment just yet. Testing is in progress on non-production virtual machine.

Contribution

To contribute, fork the repo and create a feature branch.

Planned features

  • Authentik integration for admin-group users
  • Multi-main setup for HA
  • Advanced audit logging
  • Notification framework
  • Creation of custom password and hashing