我有一个用例,我的程序需要读取文件id_rsa.pub
夹下的文件/root/.ssh
。
id_rsa.pub 的默认权限为 ( -rw-r--r--
),.ssh 文件夹的默认权限为 ( drwx------
)
这符合官方 SSH 手册页。
问题:
任何组或用户都无法读取该id_rsa.pub
文件,因为父文件夹(.ssh)没有组或用户的执行权限。
- 这样的权限组合有什么意义?
id_rsa.pub
没有适当的文件夹权限,任何用户或组都无法读取该文件.ssh
。 - 将文件夹的权限从 700 更改为 710 会有什么问题吗
.ssh
?(以使我的程序能够读取id_rsa.pub
文件)。这也符合上面的手册页建议。
答案1
这些权限在 OpenSSH 中是硬编码的。请记住,您可以ssh-keygen
从任何地方运行,将密钥保存到任何可写位置。通过使用这些权限,ssh-keygen
可以确保私钥在任何地方都受到保护。
如果您正在运行的程序需要您的公共 SSH 密钥,那么最好将其公钥复制到其他地方。
答案2
值得一提的是,对文件拥有 644/664 访问权限的目的.ssh/id_rsa.pub
是为了便于从那里(其创建和引用点)共享。此访问权限基于用户umask
设置。
您通常会制作一份交接副本,将其交给需要的地方。为了方便起见,一般来说,ssh-copy-id
应尽可能使用该脚本将您的公钥交给对方。