我不喜欢pem键。同事是鲁莽的,他们把pem键放在s3和云驱动器中。
我可以使用带有启动脚本的用户数据启动服务器来使用基于密码的身份验证。
但我注意到,您可以通过单击服务器并选择查看用户数据来查看启动脚本中添加的所有身份验证数据。那是baaad。
我想到的最好的方法是创建一个pem键,然后在创建服务器后删除它,然后从亚马逊pem键列表中删除它。
在不使用pem键的情况下启动服务器的更好方法是什么?
答案 0 :(得分:1)
一种可能的解决方案是:
get()
进入实例并为用户创建密码。例如,ubuntu用户修改ssh
并设置:
PubkeyAuthentication no
PasswordAuthentication yes
重新启动ssh服务:/etc/ssh/sshd_config
使用密码
sudo service ssh restart
到实例中
从该实例创建AMI
从该AMI启动新实例,而不指定密钥对
答案 1 :(得分:1)
密码认证在任何意义上都比密钥更好的想法是绝对荒谬的。
原始密钥通常不应常规使用,它只是初始访问机制。
看似显而易见的解决方案是这样的。
开发人员使用ssh-keygen
创建自己的个人密钥对。私钥不得存储在其个人控制之外,也不得以任何理由向任何人披露。
开发人员为您提供公钥。如果他们对任何私人密钥不小心,但也许特别是他们自己的密钥对中的私人一半,他们应该被立即解雇。
您将其公钥附加到~/.ssh/authorized_keys
。
拥有与此文件中的公钥匹配的任何一个私钥的任何人都可以通过SSH访问该实例。
当然,您可以在实例用户元数据中执行此操作,因为公钥不是机密。拥有公钥可以让您完全没有任何价值。或者稍后再添加。
答案 2 :(得分:0)
当您创建EC2实例时,在对话框的末尾一直有一个弹出窗口,您可以在其中配置您的pem-key。在下拉列表中,它还为您提供了选择“在没有密钥对的情况下继续”的机会。 应该这样做。 虽然我不会这样做。