Secure V-Server Setup
Eine Schritt-für-Schritt Anleitung zur sicheren Einrichtung eines Linux V-Servers — von der ersten SSH-Verbindung über gehärtete Authentifizierung bis hin zur Nginx-Konfiguration und GitHub-Integration. Ideal als persönliche Referenz für alle weiteren Server-Setups.
Features
- SSH Key Authentifizierung — Passwort-Login dauerhaft deaktivieren
- User Management — Neuen Benutzer mit sudo-Rechten anlegen
- Nginx — Webserver installieren und eigene HTML-Seite hosten
- Alias Shortcuts — SSH-Verbindung per Kurzbefehl aufrufen
- GitHub SSH Integration — Repo direkt vom Server klonen
Tech Stack
Linux SSH Nginx Bash GitHub
1. SSH Verbindung einrichten
SSH Key erstellen
ssh-keygen -t ed25519
Mit V-Server verbinden
ssh root@SERVER-IP
Neuen Benutzer anlegen
adduser username
usermod -aG sudo username
mkdir -p /home/username/.ssh
chmod 700 /home/username/.ssh
chown -R username:username /home/username/.ssh
SSH Key auf den Server kopieren
Windows:
type C:\Users\username\.ssh\id_ed25519.pub | ssh username@SERVER-IP "cat >> .ssh/authorized_keys"
Linux/Mac:
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@SERVER-IP
Dateiberechtigungen setzen
sudo chown username:username /home/username/.ssh/authorized_keys
sudo chmod 600 /home/username/.ssh/authorized_keys
sudo chmod 700 /home/username/.ssh
Passwort-Login deaktivieren
sudo nano /etc/ssh/sshd_config
PasswordAuthentication yes → PasswordAuthentication no (Zeile auskommentieren entfernen)
sudo systemctl restart ssh.service
warnung
Ab jetzt ist nur noch SSH-Key-Login möglich. Sicherstellen dass der Key funktioniert bevor die Session geschlossen wird.
2. Nginx einrichten
Installation
sudo apt update
sudo apt install nginx -y
systemctl status nginx
IP-Adresse herausfinden
ifconfig
eth0 inet zeigt die Server-IP.
Eigene HTML-Seite hosten
sudo mkdir /var/www/alternatives/
sudo touch /var/www/alternatives/alternate-index.html
sudo nano /etc/nginx/sites-enabled/alternatives
Nginx Konfiguration:
server {
listen 8081;
listen [::]:8081;
root /var/www/alternatives;
index alternate-index.html;
location / {
try_files $uri $uri/ =404;
}
}
sudo service nginx restart
3. Alias Shortcuts anlegen
cd /home/username
sudo nano .bashrc
Alias definieren:
alias dal_connect='ssh -i ~/.ssh/id_ed25519 username@SERVER-IP'
Aktivieren:
. ~/.bashrc
dal_connect # Verbindet sich jetzt direkt
4. GitHub SSH Integration
cat /home/username/.ssh/id_ed25519.pub
Kopierten Key auf GitHub eintragen: Settings → SSH and GPG Keys → New SSH Key
Was ich dabei gelernt habe
- SSH Hardening — Warum Passwort-Login auf Servern ein Sicherheitsrisiko ist und wie man ihn abschaltet
- Linux User Management — Benutzer, Gruppen und Dateiberechtigungen auf einem echten System
- Nginx — Webserver konfigurieren und mehrere Sites auf verschiedenen Ports betreiben
- Bash Aliase — Repetitive Befehle durch Shortcuts produktiver machen