Testbed for SSH key propagation
| changelogs | ||
| client | ||
| common | ||
| docs | ||
| server | ||
| .gitignore | ||
| bootstrap.sh | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
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
- Linux-based LXC container or VM
- 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
- Linux-based system
- 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