A modern tool for automated server initialization with SSH key management. Available both as a GUI and CLI tool.
-
User-Friendly GUI
- Modern, intuitive user interface
- Real-time status updates and progress bars
- File browser for SSH keys and identity files
- Clear grouping of settings
-
Powerful CLI
- Full command-line support
- Automatable processes
- Verbose mode for detailed output
- Dry-run option for safe testing
-
SSH Key Management
- Automatic public key management
- Secure storage in AppData directory
- Duplicate prevention
- Automatic permission setting
-
Security Features
- Password or key-based authentication
- Secure default permissions
- Encrypted connections
- Timeout settings
- Clone the repository:
git clone https://github.com/yourusername/AutoServerInit.git
cd AutoServerInit
- Run the installer:
python installer.py
The installer:
- Creates the necessary directory structure
- Sets up the AppData directory
- Installs all dependencies
- Registers the
serverinit
command
Start the graphical interface with:
serverinit
The GUI offers:
- Server connection settings
- Authentication options
- Additional configuration options
- Real-time status updates
Basic usage:
serverinit -ip SERVER_IP -u USERNAME [-p PASSWORD | -i IDENTITY_FILE]
Important parameters:
-ip
: Target server IP address-u, --user
: Username (default: root)-p
: SSH password-i, --identity-file
: Path to private key file--pubkeys
: Path to public keys file-c, --command
: Additional command to execute after initialization-v, --verbose
: Detailed output--dry-run
: Simulation without changes-t, --timeout
: Connection timeout in seconds
Public keys are stored by default in the following directory:
%APPDATA%\AutoServerInit\pubkeys
Public keys file format:
# One key per line
ssh-rsa AAAAB3NzaC1... user@host
ssh-ed25519 AAAAC3... user@host
- Python 3.6 or higher
- Windows 10/11
- Internet connection for dependency installation
- paramiko >= 3.4.0 (SSH connections)
- PyQt6 >= 6.6.1 (GUI)
The project uses a modular structure:
main.py
: Main entry pointgui.py
: GUI implementationssh_client.py
: SSH connection logiclogger.py
: Logging functionalityarg_parser.py
: Command-line arguments
MIT License - See LICENSE file for details.
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
For questions or issues:
- Check the Issues
- Create a new issue
- Contact the developers
- Initial release with GUI and CLI
- AppData integration for public keys
- Modern, user-friendly interface
- Complete SSH key management
- Installer for easy setup