linux – 安全地限制对私有Debian存储库的访问

我一直在寻找一种方法来限制对私有Debian存储库的访问,并能够以非交互方式对其进行身份验证(即使用脚本)

我发现最实用的文章,实际上是Debian administration site,但安全方法使用ssh和公钥/私钥.它运行良好但每个主机的公钥都需要位于远程authorized_keys文件中才能成功进行身份验证.
它没有提到为ssh://提供密码,但我想它应该是可能的.

您是否尝试过其他替代方案(例如ftps)?

提前致谢

解决方法

如果您总是手动在服务器上运行apt-get(没有由crons启动的自动apt-get命令),那么您可以考虑使用ssh代理转发.这样可以避免每个服务器管理一个公钥/私钥对,并且可能比在每台服务器上保留私钥更安全.

初始配置
– 连接到您要管理的服务器,并将这样的内容添加到/etc/apt/sources.list(此示例假定您希望服务器连接到经理帐户):

deb ssh://manager@my.repository.org/path other stuff

>在您自己的计算机上创建一对私钥/公钥,例如您的登录johndoe(假设您的计算机在debian上运行:如果没有,您可以从专用于管理的debian服务器执行此操作):

ssh-keygen

>确保它受强大的密钥短语保护
>将您的公钥复制到/home/manager/.ssh/authorized_keys中的存储库服务器:

ssh-copy-id manager@my.repository.org

每次管理会议一次

>键入以下命令启动计算机上的ssh代理:

eval `ssh-agent`

>将您的密钥添加到代理(这将需要您的密码):

ssh-add

管理服务器

>使用ssh -A连接到要​​管理的服务器(-A激活代理转发):

ssh -A some.server.org

>切换到root(如果你想使用sudo你需要配置/ etc / sudoers,否则sudo会破坏代理转发,read this):

su

>由于代理转发,您现在应该可以使用ssh连接到存储库的经理帐户而无需再次输入密码.因此,apt-get应该可以正常工作:

apt-get udate

结束您的管理会话

>完成管理服务器后,从代理中删除密钥:

ssh-add -D

好处

>不需要太多的初始配置
>只需要一个私钥
>私钥受强密码保护
>如果某人获得了对您的某个服务器的root访问权限,则他们将无法立即访问您的存储库服务器.

>请注意,如果黑客是耐心且合格的,他可以等到您使用代理转发连接到服务器,并且他可以劫持转发机制以获得对存储库服务器的访问权限.>为了防止这种情况发生,您可以使用ssh-ask接受/拒绝每次使用密钥的尝试.>在任何情况下,黑客都无法访问私钥:他只能劫持转发机制才能使用密钥,并且只能在您连接到服务器的时候.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...