this post was submitted on 12 Apr 2025
100 points (96.3% liked)

Linux

53032 readers
401 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

On a server I have a public key auth only for root account. Is there any point of logging in with a different account?

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 12 hours ago

It's rarely a good idea to log in as root, doubly so if it's a system with sensitive data or services that could easily be disrupted accidentally. And even more important if multiple users log in. How will you know who broke things to teach them if they don't log in first. The only time I log in to any system as root other than a test system is when I need to sftp to access files or some other system that doesn't have a way to elevate permissions.

[–] [email protected] 9 points 1 day ago

It's a bad practice to log in as root even for administrative tasks. You need to run numerous commands, some of hem can be potentially dangerous while not requiring root privileges. So normally you have an admin user in the sudo/wheel group and need to login to this account. Also, this adds some protection in case your key has leaked.

[–] [email protected] 18 points 1 day ago* (last edited 1 day ago)

A door with the best lock possible is still not as secure as no door at all

[–] [email protected] 4 points 1 day ago (1 children)

Is there any point of logging in with a different account?

When you edit & save a file as root, root takes ownership of that file. I personally don’t like having to run chmod or chown every time I make minor changes to something.

[–] [email protected] 6 points 15 hours ago

No, that's not correct. If you create a new file as root, it will own that file. But editing an existing file doesn't change the owner or group of that file.

[–] [email protected] 74 points 2 days ago
  1. Swiss cheese slices: make them holes too tight.
  2. When you run everything as root, if you fuck your shit, your shit's fucked.

"Best practices" tend to come from other people's whoopsies. But it's always good to question things, too.

[–] [email protected] 28 points 1 day ago

Zero-day exploits are security holes that exist and are used by bad actors, but aren't yet known to you, or anyone capable of closing the hole. The clock to patch the hole doesn't start running until the exploit is known: it stands at zero days until the good guys know it exists.

What zero-day exploits exist for ssh?

By definition, you don't know. So, you block root login, and hope the bad actor doesn't also know a zero-day for sudo.

[–] [email protected] 12 points 1 day ago (1 children)

It's just another way of minimizing your attack surface. It's pretty much the same as hiding behind a barrier when being shot at, you stick yourself out as little as possible.

In the same way it also helps to change your SSH port to somewhere in the high numbers like 38265. This is anecdotal of course, but the amount of attacks on SSH went down by literally 99% by just changing the port like that

Then you accept only keys, you lock down root (so the username must be guessed as well) and yeah, you're safe.

[–] [email protected] 5 points 1 day ago

This is anecdotal

Not just anecdotal. The default SSH port gets hit by ridiculous numbers of bots because a lot of people don't bother to change it. This will be true no matter what machine you're on. Hell, your desktop at home has probably been scanned quite a few times even if all you do is watch porn on it

[–] [email protected] 20 points 1 day ago (6 children)

That server's root access is now vulnerable to a compromise of the systems that have the private key.

load more comments (6 replies)
[–] [email protected] 47 points 2 days ago (39 children)

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.

[–] [email protected] 5 points 2 days ago (1 children)

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.

[–] [email protected] 1 points 1 day ago* (last edited 1 day ago) (1 children)

you would need 2 different exploits for 2 different types of attack though.

its always good to have an extra layer of "oh shit i need another exploit". unless your threat modelling includes nation-states, that is.

[–] [email protected] 2 points 1 day ago

Unless your threat modelling includes nation-states

At which point you should have a handful of extra layers

load more comments (38 replies)
[–] [email protected] 14 points 2 days ago

One always minimises attack surfaces and the possibility of fat fingered mistakes. The lower privileges that you grant yourself the better.

You'd think that Dave Cutler who, I believe, designed Windows NT coming from a Unix style background would have followed these principles but no. I discovered *nix late sadly.

[–] [email protected] 21 points 2 days ago (2 children)

Yes it's always better to login with a user and sudo so your commands are logged also having disable passwords for ssh but still using passwords for sudo gives you the best protection

[–] [email protected] 7 points 2 days ago

Sudo also allows for granular permissions of which commands are allowed and which aren't.

[–] [email protected] 5 points 2 days ago* (last edited 2 days ago) (4 children)

Also double check that sudo is the right command, by doing which sudo. Something I just learned to be paranoid of in this thread.

Unless which is also compromised, my god…

load more comments (4 replies)
[–] [email protected] 15 points 2 days ago* (last edited 2 days ago)

It's another slice of Swiss cheese. If the user has a strong enough password or other authentication method through PAM, it might stop or hinder an attacker who might only have a compromised private key, for example. If multiple users have access to the same server and one of them is compromised, the account can be disabled without completely crippling the system.

Using sudo can also help you avoid mistakes (like accidentally rebooting a production server) by restricting which commands are available to the user.

[–] [email protected] 9 points 2 days ago

If ssh has a security issue and you permit root logins then hostiles likely have an easier time getting access to root on the machine than if they only get access to your user account—then they need multiple exploits.

Generally you also want to be root as little as possible. Hence sudo, run0, etc.

[–] [email protected] 8 points 2 days ago

I never login with the root account. Not even on the console. You don't want everything you do running as root unless it is required. Otherwise it is much easier for a little mistake to become a big mess.

[–] [email protected] 5 points 2 days ago (2 children)

You can disasble passwords so ONLY keys work, and you can firewall ssh to ONLY IPs you originate from.

load more comments (2 replies)
[–] [email protected] 5 points 2 days ago

Audit trails

load more comments
view more: next ›