我的系统上有一个名为 的系统用户sshd
,以及一个名为 的组ssh
:
$ cat /etc/passwd | grep ssh
sshd:x:120:65534::/var/run/sshd:/usr/sbin/nologin
$ cat /etc/group | grep ssh
ssh:x:117:
我的猜测是用户sshd
允许 OpenSSH 使用 port 22
,并且/etc/ssh
无需以 root 身份运行即可访问。
我假设该ssh
组也是由 OpenSSH 创建的,但我找不到任何提及它的内容在文档中。
这个新用户的目的是什么?
答案1
只有 root 用户才能在特权端口(例如端口 < 1024)中创建套接字。
openSSH 中用户ssh
/组的使用是权限分离的。
该守护进程正在以 user 身份运行进程root
,并且当接收连接时,chroot
以非特权用户身份在环境中运行sshd
。
或者换句话说,它运行需要权限的部分操作root
,以及他们可以作为非特权用户隔离的部分。
我将在此处留下该项目的链接,其中还有有关该主题的论文的链接。
http://www.citi.umich.edu/u/provos/ssh/privsep.html
论文:
答案2
用户ssh
是由 openssh-client 创建的。它被设置为 ssh-agent 二进制文件的组,该组已设置 setgid。最近该组已重命名为_ssh
,表示它仅供内部使用。