连接亚马逊云 EC2 的几种方式 sh
一般来说,我们会用 SSH 来连接 EC2,在亚马逊云上还有其他的几种办法( Instance Connect/SSM/Serial Console),我们来一个一个说明。
EC2 Instance Connect
这个方式使用基于浏览器的 EC2 Instance Connect 客户端来连接实例的 IPv4 地址,从而达到远程访问的目的,需要注意的是,这个办法不支持 IPV6 连接。
在 Amazon Linux 和 ubuntu 的一些版本安装了 EC2 Instance Connect ,所以在控制台直接连接即可,当然如果你是想连接内外 IPV4 的话,还要再创建一个 Instance Connect 的终端节点。
SSH 客户端
和其他的服务器一样,只是这里的私钥是采取的 pem 格式的文件,由于我们现在的操作已经已经内置 SSH 客户端,大多数情况不用我们手动安装。实测 windows 用户也不需要转换成 ppk 文件(如果不使用 Putty),使用 CMD 一样可以连接。
如果是 Linux/MacOS 用户,还需要更改下权限:
然后使用命令连接即可:
如果出现问题,我们可以加上-vvv 来查看 debug 信息
常见 SSH 连接不上问题如下:
Connection timeout:网络不通,尝试使用 telnet 查看 22 端口是否联通
Permission denied: pem 文件权限不对,在 Linux/MacOS 上,需要 400 的权限
Identity file .pem not accessible: 找不到 key,需要使用 ssh -i 指定正确的路径‘
Connection refuse: 服务端 sshd 未启动
会话管理器
这个方式的好处就是不用在管理私钥文件,如果你刚好喜欢使用浏览器远程访问的话,那么这个方式会很方便,不过相对来说会话会容易断开,如果需要的话,也可以在 SSM 配置里调整过期时间。
在 Amazon Linux 系列的产品上预置了 SSM 的 agent,所以大多数情况无需任何配置即可轻松连接,只要我们 EC2 上绑定的 IAM Role 有 SSM 相关权限即可,我在相关的 role 上绑定了 AmazonSSMManagedInstanceCore 这个策略,这样就又了 SSM 相关的权限。如果是 ubuntu,centos 等系统,那么还需要 ssh 进入实例内部额外安装 SSM 的 agent 来开启这个配置。
EC2 串行控制台
这个是通过串口来连接 EC2,界面和 SSH 类似,因为 EC2 默认使用 Key 登陆,那么就需要提前设置好密码,这个方法类似于把键盘直接接到 EC2 上一样,在无法进入 SSH 连接的情况,可以使用该方法来排查问题。
这个办法也有一些限制:
仅仅支持 NItro 实例
两次回话要间隔 30 秒
每个实例同时只有开一个串口连接
串行会有更大的开销,可能会影响机器性能
以上就是四种在亚马逊云上连接 EC2 的方式,相信总会有一种适合你。
参考文档
EC2 Instance Connect 连接到 Linux 实例:https://vdzvzxcbingdocs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/connect-linux-inst-eic.html
Session Manager 登录和管理 EC2 主机:https://aws.amazon.com/cn/blogs/china/session-manager-register-ec2/
交互式 EC2 串行控制台简介: https://aws.amazon.com/cn/about-aws/whats-new/2021/03/introducing-ec2-serial-console/
哪些方法连接我的 EC2 Linux 实例? https://repost.aws/zh-Hans/knowledge-center/ec2-linux-connection-options
版权声明: 本文为 InfoQ 作者【孤虹】的原创文章。
原文链接:【http://xie.infoq.cn/article/fedf95ac0f323eccc01fa3814】。文章转载请联系作者。
评论