gpt4 book ai didi

ssh - 在非 22 端口的 Amazon EC2 实例上运行 ssh

转载 作者:行者123 更新时间:2023-12-03 23:20:58 25 4
gpt4 key购买 nike

我无法通过 ssh 访问 Amazon EC2 实例,因为我在防火墙后面。
所以,我想在 22 以外的端口上运行 ssh,比如 80 或 443。

我尝试使用以下“用户数据”通过 Web 管理控制台启动 Amazon EC2 实例:

#!/bin/bash -ex
perl -pi -e 's/^#?Port 22$/Port 80/' /etc/ssh/sshd_config
service sshd restart || service ssh restart

想法是上面的脚本将在实例启动时执行并将 ssh 从端口 22 切换到端口 80。(引用: http://alestic.com/2010/12/ec2-ssh-port-80)

但是 ssh 仍然无法在端口 80 上访问。
显然“用户数据”脚本没有在启动时执行?

我只能通过 Web 管理控制台启动停止实例,而不是从命令行(在防火墙后面)

有任何想法吗?

最佳答案

要通过 ssh 从不同于默认 22 的端口连接到 AWS 实例:

  • 打开您的实例的安全组,以便它允许从您选择的源(对于任何源为 0.0.0.0/0)连接到该端口。
  • 在您的实例中:
  • 这是一个新实例,您可以使用像这样的用户数据脚本:
  • #!/bin/bash -ex
    perl -pi -e 's/^#?Port 22$/Port 443/' /etc/ssh/sshd_config
    service sshd restart || service ssh restart

    请注意,这仅在您启动新实例时有效:

    User data scripts and cloud-init directives only run during the first boot cycle when an instance is launched.


  • 如果不是新实例,编辑 /etc/ssh/sshd_config文件添加/更改 Port 22到您想要的端口(即: Port 443 )通过 ssh 连接,然后执行 service ssh restart你应该完成。

  • 注意:我是在一个 Ubuntu 实例上做的,另一个 Linux 实例可能略有不同。

    关于ssh - 在非 22 端口的 Amazon EC2 实例上运行 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13475303/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com