![无密码 SSH(共享主文件夹)](https://linux22.com/image/1338237/%E6%97%A0%E5%AF%86%E7%A0%81%20SSH%EF%BC%88%E5%85%B1%E4%BA%AB%E4%B8%BB%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%89.png)
我对具有一个主文件夹的无密码 ssh 有疑问。
我创建了一个通用的 /home/developers 帐户和多个用户 (developerA、developerB ...)。所有开发人员都被分配了相同的主文件夹 (/home/developers)。
作为开发人员 A,在他的机器上,我做了以下事情:
- ssh-keygen -t rsa -f developerA -C[电子邮件保护]
- (在服务器上)。将 .pub 添加到服务器 /home/developers/.ssh/authorized_keys 文件
- ssh developerA@myServer -i developerA
我认为问题与权限有关,因为 authorized_keys 文件归开发人员所有(-rw------- 1 开发人员 开发人员 2033 11 月 11 日 22:55 authorized_keys )
有谁能解决这个问题,或者如何实现多用户无密码 ssh,而无需为每个用户创建主文件夹。
提前谢谢大家
答案1
您只有一个用户。因此这不是多用户问题。确保 .ssh 目录的模式为 700。
但是,你的做法还是错的。你应该为每个开发人员创建不同的用户,并将他们放在一个共同的组中。如果他们需要处理相同的文件,你可以让他们的共同组可写,并把他们放在一个设置了“设置组 ID”标志的目录中,这样他们写入的任何内容都将属于该组。
答案2
既然他问了,那肯定有他的理由。以下是一些想法:
- 确保您的公钥字符串没有换行。它应该在 authorized_keys 中位于一行中。
- 对于 authorized_keys,权限应为 rw-rr (644)。
- 检查 ~/.ssh 的权限。应为 rwx-- (700)。
- 还要确保 /etc/ssh/sshd_config 包含“PubkeyAuthentication yes”。
答案3
根据我的经验,ssh 对文件和目录权限非常讲究。authorized_keys 文件必须是“rw-r--r--”,并且包含该文件的 .ssh 目录也必须可供所有人访问(但不能由任何人写入)。这意味着 .ssh 目录以及指向它的完整目录路径。
如果您没有正确完成此操作,密钥交换登录将失败。
麦克风
答案4
@joebob 说对了!还有几个细节(注意他最后一句)
从这个帖子您可以看到 SSH 将拒绝使用.ssh
共享主目录中的文件夹。就我而言,查看/var/log/messages
以下内容:
3 月 10 日 09:57:13 sshd[32249]: 身份验证被拒绝:目录 /home/ 的所有权或模式错误
引用的网站对此有两种解决方案:
修复权限
chmod g-w /home/your_user chmod 700 /home/your_user/.ssh chmod 600 /home/your_user/.ssh/authorized_keys
设置(不推荐
StrictModes off
)/etc/ssh/ssh_config
不幸的是我现在处于生产状态,无法测试任何解决方案......我也在寻找第三个选择如果可能的话,由于我们的团队设置,我无法更改主目录权限......(糟糕的模型 - 我知道)