Einrichtung eines sicheren SSH-Zugangs für Proxmox und LXC
TheDas goalZiel isist toes, establishein aeinheitliches, consistent,schlüsselbasiertes key-basedAuthentifizierungsmodell authenticationsowohl modelfür acrossden bothProxmox-Host theals Proxmoxauch hostfür andseine itsContainer containers:aufzubauen:
nokeineSSH root loginSSH-Root-Anmeldungnokeinepassword authenticationPasswortauthentifizierungaccessZugriffonlynurthroughüberaneinenadmin-Benutzerusermitwitheineman SSH keySSH-SchlüsselconvenientbequemeraccessZugriffviaüberSSHdieconfigurationSSH-Konfiguration
ThisDieser approachAnsatz reducesreduziert attackdie surfaceAngriffsfläche andund improvesmacht manageability.alles deutlich einfacher zu verwalten.
PartTeil 1: PrepareBereite Yourdeinen Locallokalen MachineRechner vor
GenerateGeneriere anein SSH key pairSSH-Schlüsselpaar
IfFalls notdu alreadynoch available:keins hast:
ssh-keygen -t ed25519 -C "admin"
StoreSpeichere ites securely,sicher, forzum example:Beispiel hier:
/home/username/deinname/.ssh/admin_key
Optional: AddFüge theden keySchlüssel tozum theAgenten agenthinzu
IfWenn theder keySchlüssel haseine aPassphrase passphrase:hat:
ssh-add /home/username/deinname/.ssh/admin_key
PartTeil 2: SecureSichere theden Proxmox Proxmox-Host
CreateErstelle aneinen administrative userAdministratorbenutzer
OnAuf thedem Proxmox hostProxmox-Host (webüber shellWeb-Shell oroder SSH):
adduser admin
usermod -aG sudo admin
DeployStelle yourden SSHSSH-Schlüssel keybereit
ssh-copy-id -i /home/username/deinname/.ssh/admin_key.pub admin@<Proxmox-hostnameHostname>
TestTeste access:den Zugriff:
ssh -i /home/username/deinname/.ssh/admin_key admin@<Proxmox-hostnameHostname>
DisableDeaktiviere insecuredie authenticationunsicheren Authentifizierungsmethoden
EditBearbeite /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
ApplyWende changes:die Änderungen an:
systemctl restart sshd
TheDer hostHost nowakzeptiert acceptsjetzt onlynur key-basednoch loginsschlüsselbasierte forAnmeldungen für den admin.-Benutzer.
PartTeil 3: SecureSichere LXCdeine ContainersLXC-Container
ManyViele templatesVorlagen allowerlauben SSHSSH-Zugriff accessals asRoot root,– sometimesteilweise withsogar passwords.mit ApplyPasswort. theWende samedieselben hardeningSicherheitsmaßnahmen insidein eachjedem container.Container an.
CreateErstelle aneinen administrative userAdministratorbenutzer
AccessGehe thein container:den Container:
pct enter <CTID>
CreateLege theden userBenutzer andan grantund sudogib access:ihm sudo-Rechte:
adduser admin
usermod -aG sudo admin
DeployStelle yourdeinen keySchlüssel toim theContainer containerbereit
OnAuf yourdeinem locallokalen machine:Rechner:
ssh-copy-id -i /home/username/deinname/.ssh/admin_key.pub admin@<lxc-ip-or-oder-hostname>
Test:Teste:
ssh admin@<lxc-ip-or-oder-hostname>
DisableDeaktiviere insecuredie authenticationunsicheren insideMethoden theim containerContainer
EditBearbeite /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
Restart:Starte neu:
sudo systemctl restart sshd
TheDer containerContainer nowhat mirrorsjetzt theexakt securitydieselbe postureSicherheitsstufe ofwie theder host.Host.
PartTeil 4: LocalMach SSHdir Conveniencedas ConfigurationLeben mit der lokalen SSH-Konfiguration leichter
ToErstelle simplifyoder access,bearbeite createdie or edit:Datei:
~/.ssh/config
Example:Beispiel-Inhalt:
Host proxmox
HostName <Proxmox-hostnameHostname>
User admin
IdentityFile /home/username/deinname/.ssh/admin_key
Host lxc-admin
HostName <lxc-ip-or-oder-hostname>
User admin
IdentityFile /home/username/deinname/.ssh/admin_key
ProtectSchütze thedie file:Datei:
chmod 600 ~/.ssh/config
NowAb youjetzt can connect with:reicht:
ssh proxmox
ssh lxc-admin
ResultErgebnis
ProxmoxProxmox-HosthostundandallecontainersContainerusenutzenthedieselbesamesicheresecure login methodAnmeldemethode.rootRoot-Loginloginistdisabledüberalleverywheredeaktiviert.passwordPasswort-Authentifizierungauthenticationistdisabledüberall aus.oneEinkeyeinzigerandSchlüsselone+usereinforeinzigeradministrativeBenutzeraccess(admin) für den administrativen Zugriff.simpleSuperhosteinfacheselectionVerbindungthroughüberSSHsprechendeconfigurationHost-Namen in der SSH-Konfiguration.