是否可以将web应用程序的登录连接到SSH服务器?我希望能够访问连接到SSH用户组的web控制面板。对于控制面板登录,他们可以使用与正常SSH帐户相同的密码。它不需要给他们SSH访问权限-只需进行用户名/密码身份验证。理想情况下,它可以使用他们的SSH键自动登录,当他们访问控制面板,但我怀疑这是可能的。
发布于 2014-07-12 10:29:26
在很大程度上,您的问题是:我希望我的web应用程序像SSH一样,根据系统用户数据库(/etc/passwd
、/etc/shadow
和/etc/group
)对用户进行身份验证。Linux系统身份验证层的术语是PAM,可插入身份验证模块。
最快的可能是配置Apache以提供PAM支持。一种方法是运行波沃特和国防部_[法]作者_外部,从而使Apache配置看起来类似于:
DefineExternalAuth pwauth pipe /usr/sbin/pwauth
<Directory /var/www/yourapp>
AuthType Basic
AuthName "Your app requires authentication"
AuthBasicProvider external
AuthExternal pwauth
# any valid username/password is allowed access
Require valid-user
## Only bob and sarah allowed
# Require user bob sarah
## Only the members of the group yourappusers are granted access
# Require group yourappusers
</Directory>
在更大的环境中,基于本地文件的用户身份验证通常被替换为中心用户目录,通常是LDAP目录。在系统级别上,这就是更改PAM配置的问题,在此之后,所有需要身份验证的应用程序都会立即意识到LDAP。
还有一个Apache LDAP模块,尽管大多数应用程序通常都支持本地的LDAP身份验证,而不是依赖Apache。这也允许诸如“注销”按钮这样的功能在Apache中不存在。
SSH密钥是特定于SSH协议的,尽管您可能会发现在web应用程序中重新构建该功能是一个有趣的挑战,但是您应该知道,web应用程序中常用的SSH公钥身份验证是部署SSL客户端证书。
发布于 2014-07-12 04:17:56
如果您确实需要SSH提供的加密,可以执行以下操作:
让Apache监听同时运行SSHd的服务器上的本地主机。如果你想让它安全的话就没别的事了。然后,您只需创建一个SSH隧道到服务器,该隧道将重定向到Apache正在监听的端口。
可以这样做:ssh -L 8080:127.0.0.1:80 user@yourserver.com
(这是用于OS的)
建立连接后,您只需转到远程(客户端)机器上浏览器中的localhost:8080并访问网页。
https://serverfault.com/questions/612051
复制相似问题