【问题标题】:Setting up external authorized_keys on Google Compute在 Google Compute 上设置外部授权密钥
【发布时间】:2016-08-02 19:29:43
【问题描述】:

我正在从 AWS 迁移,我正在使用 ansible 部署到 Google Cloud 计算实例。我正在尝试使用授权密钥在盒子上设置一些用户。这曾经适用于 AWS,但似乎用户管理对于 Google Compute 有点不同。这就是我正在做的事情。

在本地创建了一个 ssh-key。将此密钥(公共)放在 ansible 文件中,并将其复制到在 /home/deploy/.ssh/authorized_keys 中创建(使用 ansible)的新用户

我仍然无法在本地机器上使用此密钥登录。

$ ssh -i ~/.ssh/deploy_rsa deploy@<host>

是否有允许登录该框的用户列表?我只能配置用户从云控制台登录到盒子吗?

编辑

$ ssh -i ~/.ssh/deploy_rsa deploy@<host>
... skipped some logs here ....
    Here's SSH logs from client side:
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug2: key: /Users/ankit/.ssh/gcloud-rsa (0x7ff1d16105e0),
    debug2: key: /Users/ankit/.ssh/deploy_rsa (0x0), explicit
    debug1: Authentications that can continue: publickey
    debug3: start over, passed a different list publickey
    debug3: preferred publickey,keyboard-interactive,password
    debug3: authmethod_lookup publickey
    debug3: remaining preferred: keyboard-interactive,password
    debug3: authmethod_is_enabled publickey
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: /Users/ankit/.ssh/gcloud-rsa
    debug3: send_pubkey_test
    debug2: we sent a publickey packet, wait for reply
    debug1: Authentications that can continue: publickey
    debug1: Trying private key: /Users/ankit/.ssh/deploy_rsa
    debug3: sign_and_send_pubkey: RSA SHA256:h+yezPKOVjeA2ZKOAN/1r1GRe2s1nyGKwG6wobm+Vh0
    debug2: we sent a publickey packet, wait for reply
    debug1: Authentications that can continue: publickey
    debug2: we did not send a packet, disable method
    debug1: No more authentication methods to try.
    Permission denied (publickey).

客户选择的另一个密钥来自~/.ssh/config

【问题讨论】:

  • 试试这个:stackoverflow.com/questions/37798431/… 请注意,如果您鲁莽地打开太多端口,您可能会遭受随机的互联网出口费用。正如@Dagang 所说,只需打开端口 22(链接中 3 条规则中的第 2 条)
  • 嗨@Salmonstrikes 我认为问题不在于网络。它让我从主要用户那里 ssh。它只会阻止我在盒子上手动配置的第二个用户。这似乎是 VM 如何处理身份验证的问题(sshd pam?)
  • 你能检查 /home/deploy/.ssh/authorized_keys 是否真的存在?我尝试在远程主机上创建一个新用户,但结果发现它的主目录甚至没有以某种方式创建。
  • 我不确定目录是否已创建,我的脚本配置为在目录不存在时创建目录。所以它现在存在。它还创建了具有正确权限和所有者的 authorized_keys 文件。
  • 您希望该设施对虚拟机具有多个用户访问权限,这是您想要的吗?

标签: ssh google-compute-engine google-cloud-platform


【解决方案1】:

我对Ansible了解不多,希望以下文档对Connecting to InstanceAdding and Removing SSH KeysCreating User Accounts for Linux Instances有帮助

顺便说一句,由于防火墙设置,这也是可能的。在非默认网络中,默认不允许使用 tcp:22。

【讨论】:

  • 谢谢,我熟悉使用控制台添加和删除密钥。相反,我想使用authorized_keys 的linux 概念:linuxproblem.org/art_9.html 所以我想创建一些具有特定授权密钥的用户。我可以从我设置的主 sshkey SSH 进入系统,这不是网络问题。我希望能够使用 ansible(而不是通过控制台)创建更多这样的用户
  • 您检查了 /var/log/secure 还是 /var/log/auth.log?
  • 我查了 /var/log/auth.log,除了:Aug 3 20:29:42 instance-1 sshd[8011]: Connection closed by 71.198.45.230 [preauth] 似乎谷歌有它自己的 PAM 模块或以某种方式控制 ssh限制我创建新的无密码 ssh 用户。在从 Google 控制台设置之后,我还修改了 authorized_keys 。但随后它自动切换到我从控制台设置的旧版本(谁在这样做?)
  • 如果问题出在服务器端,那么我希望 auth.log 中有更多详细信息。您可以通过将 -v 参数添加到 ssh 来检查客户端。
  • 在我的问题中添加了这些日志,这似乎是标准的公钥被拒绝许可。
猜你喜欢
  • 2014-09-06
  • 1970-01-01
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多