Hum*_*ber 9 linux ubuntu debian apt
我正在寻找一种方法来限制对私有 Debian 存储库的访问,并能够以非交互方式对其进行身份验证(即使用脚本)
我发现的最有用的文章实际上来自Debian 管理站点,但安全方法使用 ssh 和公钥/私钥。它工作得很好,但每个主机的公钥都需要在远程 authorized_keys 文件中才能成功进行身份验证。它并没有说明为 ssh:// 提供密码,但我认为这应该是可能的。
您是否尝试过其他替代方案(例如 ftps)?
提前致谢
如果您总是apt-get手动在服务器上运行(没有apt-get由 crons 启动的自动命令),那么您可以考虑使用ssh 代理转发。这避免了必须为您管理的每台服务器管理一个公钥/私钥对,并且这可能比将私钥留在每台服务器上更安全。
初始配置
- 连接到您要管理的服务器,并添加如下内容/etc/apt/sources.list(此示例假设您希望您的服务器连接到manager帐户):
deb ssh://manager@my.repository.org/path other stuff
Run Code Online (Sandbox Code Playgroud)
在您自己的计算机上创建一对私钥/公钥johndoe,例如您的登录名(假设您的计算机在 debian 上运行:如果不是,您可以从专用于管理的 debian 服务器执行此操作):
ssh-keygen
Run Code Online (Sandbox Code Playgroud)将您的公钥复制到存储库服务器/home/manager/.ssh/authorized_keys:
ssh-copy-id manager@my.repository.org
Run Code Online (Sandbox Code Playgroud)每个管理会话一次
通过键入以下内容在您的计算机上启动 ssh 代理:
eval `ssh-agent`
Run Code Online (Sandbox Code Playgroud)将您的密钥添加到代理(这将需要您的密码):
ssh-add
Run Code Online (Sandbox Code Playgroud)管理服务器
使用ssh -A(-A激活代理转发)连接到您要管理的服务器:
ssh -A some.server.org
Run Code Online (Sandbox Code Playgroud)切换到 root(如果你想使用sudo你需要配置/etc/sudoers,否则sudo会中断代理转发,阅读这个):
su
Run Code Online (Sandbox Code Playgroud)由于代理转发,您现在应该能够使用 ssh 连接到存储库的管理员帐户,而无需再次输入密码。因此,apt-get应该可以正常工作:
apt-get udate
Run Code Online (Sandbox Code Playgroud)结束您的管理会话
完成服务器管理后,从代理中删除密钥:
ssh-add -D
Run Code Online (Sandbox Code Playgroud)好处
ssh-ask来接受/拒绝每次使用您的密钥的尝试。| 归档时间: |
|
| 查看次数: |
9035 次 |
| 最近记录: |