无密码 SSH(共享主文件夹)

无密码 SSH(共享主文件夹)

我对具有一个主文件夹的无密码 ssh 有疑问。

我创建了一个通用的 /home/developers 帐户和多个用户 (developerA、developerB ...)。所有开发人员都被分配了相同的主文件夹 (/home/developers)。

作为开发人员 A,在他的机器上,我做了以下事情:

  1. ssh-keygen -t rsa -f developerA -C[电子邮件保护]
  2. (在服务器上)。将 .pub 添加到服务器 /home/developers/.ssh/authorized_keys 文件
  3. ssh developerA@myServer -i developerA

我认为问题与权限有关,因为 authorized_keys 文件归开发人员所有(-rw------- 1 开发人员 开发人员 2033 11 月 11 日 22:55 authorized_keys )

有谁能解决这个问题,或者如何实现多用户无密码 ssh,而无需为每个用户创建主文件夹。

提前谢谢大家

答案1

您只有一个用户。因此这不是多用户问题。确保 .ssh 目录的模式为 700。

但是,你的做法还是错的。你应该为每个开发人员创建不同的用户,并将他们放在一个共同的组中。如果他们需要处理相同的文件,你可以让他们的共同组可写,并把他们放在一个设置了“设置组 ID”标志的目录中,这样他们写入的任何内容都将属于该组。

答案2

既然他问了,那肯定有他的理由。以下是一些想法:

  1. 确保您的公钥字符串没有换行。它应该在 authorized_keys 中位于一行中。
  2. 对于 authorized_keys,权限应为 rw-rr (644)。
  3. 检查 ~/.ssh 的权限。应为 rwx-- (700)。
  4. 还要确保 /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/ 的所有权或模式错误

引用的网站对此有两种解决方案:

  1. 修复权限

    chmod g-w /home/your_user
    chmod 700 /home/your_user/.ssh
    chmod 600 /home/your_user/.ssh/authorized_keys
    
  2. 设置(不推荐StrictModes off/etc/ssh/ssh_config

不幸的是我现在处于生产状态,无法测试任何解决方案......我也在寻找第三个选择如果可能的话,由于我们的团队设置,我无法更改主目录权限......(糟糕的模型 - 我知道)

相关内容