Why disable ssh login with root on a server if I only log in with keys, not password?
Why disable ssh login with root on a server if I only log in with keys, not password?
On a server I have a public key auth only for root account. Is there any point of logging in with a different account?
Its a concept called defense in depth. Without root login now you require the key AND sudo password.
Also, outside of self hosted you will have multiple people logging in. You want them to log in with their own users for logging and permission management.
Doesn't even have to be the key necessarily. Could get in via some exploit first. Either way taking over the machine became a 2-step process.
The sudo password can be easily extracted by modifying the bashrc.
And who is going to edit your .bashrc?
This was downvoted, but is a good question.
If your account is compromised, the shell init code could be modified to install a keylogger to discover the root password. That’s correct.
Still, that capture doesn’t happen instantly. On a personal server, it could be months until the owner logs in next. On a corporate machines, there may be daily scans for signs of intrusion, malware, etc. Either way, the attacker has been slowed down and there is a chance they won’t succeed in a timeframe that’s useful to them.
It’s perhaps like a locking a bike: with right tool and enough time, a thief can steal the bike. Sometimes slowing them down sufficiently is enough to win.