目前我已经购买了与ssh访问的虚拟主机。
我创build了一个git仓库,如果我在~/.ssh/authorized_keys文件中设置我的~/.ssh/authorized_keys ,我可以访问这个仓库,我可以推/拉数据等等。
这个解决scheme允许每个用户拥有在authorized_keys文件中的公钥。
但是我想避免一件事情。 每个用户也可以login到服务器,并有权访问整个ssh帐户。
是否有可能创build一个用户的密钥黑名单,将无法访问SSH?
我这样看:
~/.profile文件被挂钩并调用一个自定义脚本:
~/.ssh/blacklist_keys调用bash exit / logout 有可能吗?
不要只使用普通的git,你应该考虑使用gitolite 。 Gitolite旨在执行这种基于SSH的身份validation,而不会授予对计算机的真正SSH访问权限。 它还带有一些额外的好处,例如强大的ACL和每个标记以及每个分支的权限。
您也可以使用更广泛的使用Gitosis ,但作者build议使用Gitolite的其他function。
您可以禁用特定用户的shelllogin。
chsh -s /sbin/nologin {username}
不要混淆configuration文件(.profile,.bash_profile,.bashrc等)。 他们不是限制login。