Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Linux ssh:允许公钥验证,而不赋予用户对私钥的读取权限大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在我的 Linux服务器上登录的用户应该能够使用默认帐户ssh到特定的远程计算机. 远程计算机上的身份验证使用公钥,因此在服务器上可以使用相应的私钥. 我不希望服务器用户实际上能够读取私钥.基本上,他们可以访问服务器的事实允许他们正确的ssh,并且从服务器中删除它们也应该禁止连接到远程机器. 如何允许用户打开ssh连接而不授予他们对私钥的读取权限? 到目前为止我的想法:显然ssh可执行文件必须能够
在我的 Linux服务器上登录用户应该能够使用认帐户ssh到特定的远程计算机.
远程计算机上的身份验证使用公钥,因此在服务器上可以使用相应的私钥.

我不希望服务器用户实际上能够读取私钥.基本上,他们可以访问服务器的事实允许他们正确的ssh,并且从服务器中删除它们也应该禁止连接到远程机器.

如何允许用户打开ssh连接而不授予他们对私钥的读取权限?

到目前为止我的想法:显然ssh可执行文件必须能够读取私钥,因此它必须在具有这些权限的服务器上的另一个用户下运行.一旦建立了ssh连接,我就可以将它“转发”给用户,这样他就可以输入命令并与远程机器交互.

>这是一个方法吗?
>我应该如何实施前进?
>用户如何启动连接(即,具有读取权限的用户执行ssh)?
>是否存在安全漏洞? – 如果用户可以将ssh作为另一个用户执行,那么他们可以执行其他用户可以执行的所有操作(包括读取私钥)吗?

解决方法

这是sudo存在的原因之一.只需允许您的用户运行1个单一命令,只使用预先授权的命令行选项,并解决最明显的规避.例如
#/etc/sudoers
%users ALL = (some_uid) NOPASSWD: /usr/bin/ssh -i /home/some_uid/.ssh/remote-host.key username@remotehost

设置sudo,以便用户的所有成员都可以以用户some_uid的身份运行ssh命令,而无需在运行时输入自己的密码(或some_uid帐户的密码):

sudo -u some_uid /usr/bin/ssh -i /home/some_uid/.ssh/remote-host.key username@remotehost

删除NOPASSWD:选项以强制用户登录远程主机之前输入自己的密码.可能会设置别名或包装脚本以方便用户,因为Sudo对使用正确的参数非常挑剔.

大佬总结

以上是大佬教程为你收集整理的Linux ssh:允许公钥验证,而不赋予用户对私钥的读取权限全部内容,希望文章能够帮你解决Linux ssh:允许公钥验证,而不赋予用户对私钥的读取权限所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。