我想允许一些受信任的用户将 scp 文件发送到我的服务器(到特定用户),但我不想给这些用户一个家,也不想 ssh 登录。
我在理解用户/组的正确设置时遇到了问题,我必须创建以允许这种情况发生。
我举个例子;
拥有:
MyUser@MyServer
MyUser
属于该组 MyGroup
/home/MyUser
SFTPGuy1@OtherBox1
SFTPGuy2@OtherBox2
他们给了我他们id_dsa.pub
的,我把它加到我的authorized_keys
我想,我会在我的服务器上做类似的事情
useradd -d /home/MyUser -s /bin/false SFTPGuy1
(另一个也一样..)
最后,useradd -G MyGroup SFTPGuy1
(然后,对于另一个人)
我希望 SFTPGuys 能够sftp -o IdentityFile=id_dsa MyServer
并被带到 MyUser 的家中......
好吧,事实并非如此... SFTP 只是不断要求我输入密码。
有人能指出我错过了什么吗?
感谢一百万,
F。
[编辑:StackOverflow 中的Messa询问我是否已授权密钥文件对其他用户(MyGroup 的成员)可读。这是一个有趣的观点,这是我的回答:
好吧,它不是(它是 700),但后来我将 .ssh 目录和 auth 文件的权限更改为 750,但仍然没有效果。猜猜值得一提的是,我的家目录(/home/MyUser
)对于组也是可读的;大多数目录是 750,他们放置文件的特定文件夹是 770。
尽管如此,关于 auth 文件,我认为身份验证将由本地用户在 上执行MyServer
,不是吗?如果是这样,我不明白其他用户需要阅读它......好吧......只是想知道。]
在尝试此操作之前,请先阅读全文。
您可以通过创建 2 个用户并将他们放在同一组中并为他们提供相同的主目录来完成您想做的事情。然后在共享主目录中创建 ~/.ssh/authorized_keys 文件并包含密钥。
这些帐户必须有一个 shell,因此使用它来锁定它们usermod -L LOGIN
将阻止交互式登录。
~/.ssh 目录的权限需要是 g:rx 并且 ~/.ssh/authorized_keys 需要是 g:r--
chmod g+rx ~/.ssh
chmod g+r ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
这会导致 sshd 感到痛苦,因为它期望目录最多为 g:r-- 并且文件最多为 g:-- 您会收到错误消息
Authentication refused: bad ownership or modes for file /home/test/.ssh/authorized_keys
为了使这个方案发挥作用,您现在必须通过编辑
和设置默认值来打破 sshd 的内置检查。重新启动 sshd 以使更改生效。/etc/sshd_config
StrictModes no
StrictModes yes
它应该按照你想要的方式工作。不幸的是,您已经取消了 sshd 的安全性,并且可能在以后进行更改,从而使您的系统完全开放。
为了更安全地执行此操作,请勿进行上述任何更改
在同一组中创建 2 个用户帐户并设置他们的 ~/.ssh/authorized_keys 创建从每个主目录到您希望他们放置内容的位置的链接。
ln -s -n /path/to/stuff content
Run Code Online (Sandbox Code Playgroud)
锁定主目录的权限以防止用户对其进行写入。
停止帐户交互登录
usermod -L LOGIN
Run Code Online (Sandbox Code Playgroud)
更改 /path/to/stuff 的权限以允许组访问。
归档时间: |
|
查看次数: |
6072 次 |
最近记录: |