是否有可能为谷歌计算引擎启用双因素身份验证(或谷歌术语中的两步验证)?我对保护我的虚拟机、云存储和开发人员控制台很感兴趣。
我尝试过使用Google Authenticator(libapm),参考了这篇文章,在虚拟机上使用Google Authenticater通过双因素身份验证来保护SSH,但没有成功(我成功地使用gcloud计算外壳登录,没有额外的代码)。
【1月12日】一些更新:谷歌开发者控制台运行完美。谢谢
对于使用计算引擎SSH访问的两步验证,我重新尝试了所有操作。遵循所提供链接中提到的说明,并执行以下操作:
- 我创建了一个新的谷歌云项目
- 我使用了两个不同的操作系统实例-Debian 8.2和Ubuntu 15.10
所有这些测试都失败了——没有提示输入验证码。我查阅了谷歌计算引擎文档,他们明确提到他们只支持证书身份验证(而不是用户名/密码),所以我无法验证这是否是根本原因。
有人使用谷歌计算引擎进行两步验证吗?
感谢
终于是一个解决方案(感谢谷歌云支持)。
我提到的文件顶部有几个更新:
除了在/etc/pam.d/shd中添加一行之外,还应该注释掉@include-commonauth行。所以它应该是这样的:
auth required pam_google_authenticator.so # from the original instructions
# @include common-auth # commenting out is new...
除了更改/etc/ssh/sshd_config中的ChallengeResponseAuthentication属性外,还应在以下行中添加AuthenticationMethods公钥、键盘交互:
ChallengeResponseAuthentication yes # from the original instructions
AuthenticationMethods publickey,keyboard-interactive # this is new...
当然,这是在安装libpam-google验证器、更改sshd和sshd_config(如上所述)、重新启动ssh/sshd服务以及为帐户设置google验证器的常规说明之上。
最后,还有几点:
- 仔细考虑这一点——从重新启动ssh/sshd帐户开始,没有正确的2FA,任何人都无法登录。因此,请确保任何应该拥有ssh访问权限的人都正确配置了它
- 我正在考虑这是否是适合我们的解决方案,因为它需要设置虚拟机(每个虚拟机单独设置),并手动为每个帐户和每个虚拟机设置验证器。不确定这种替代方案的可扩展性。我很感激你的想法
- 最后但并非最不重要的是,使用apt-get可以简化libpam-google验证器的设置,无需手动安装所有依赖项并构建它
sudo apt-get安装libpam谷歌验证器
祝你好运!