나는 무슨 삽질을 남들보다도 10배는 하는 것 같은 느낌이다.
오늘은 갑자기 ssh 연결 조차 안된다.
EC2 Instance Connect is unable to connect to your instance. Ensure your instance network settings are configured correctly for EC2 Instance Connect. For more information, see Set up EC2 Instance Connect at https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html.
상황판단1)
내 로컬 터미널로 ssh 접속 하려하니 아예 안되길래
aws 사이트에서 직접 인스턴스 연결 했더니 저 에러가 떴다.
내 컴터의 문제는 아니다.
상황판단2)
새로운 인스턴스를 만들었더니 접속이 잘만 된다.
=> 기존 인스턴스에 갑자기 문제가 생긴 것 ?
=> 확인해보니 이미 설정되어 있었다.
이 분은 빈번하게 에러가 난다고 한다. 인스턴스를 만들고 며칠 내에 !? cpu 소비가 30 혹은 50이 될 때 이런 에러가 난다고 주장. 그래서 t2 medium을 선택하고 jenkins를 설치했다고 한다.
=> 일단 알아는 두고 다른 방법을 찾아봐야겠다.
=> ngninx는 웹서버로 http 및 https 트래픽을 처리한다. ssh 접속을 차단하는 것은 nginx와는 직접적인 연관이 없다.
즉, SSH로 서버에 접속할 때 연결이 거부되고 있다면, Nginx와는 아무 상관이 없으며, 이는 서버의 네트워크 또는 방화벽 설정에서 발생한 문제일 가능성이 높다!!!
sudo ufw status
SSH가 허용된 경우:
출력에서, "22" 또는 "SSH"와 같이 SSH 포트가 "ALLOW"로 표시되면 SSH가 허용되어 있는 것입니다.
SSH가 차단된 경우:
출력에서, "22" 또는 "SSH"와 같이 SSH 포트가 "DENY" 또는 "STATUS: inactive"로 표시되면 SSH가 차단되어 있습니다.
허용 명령어
sudo ufw enable
변경후 로드해야함
sudo ufw reload
=> ssh 허용하게 만들었는데 인스턴스 연결은 아직도 안된다... 날 미치게 하지마
1) SSH 서비스가 정상적으로 실행 중인지 확인합니다. SSH 서비스가 작동 중이지 않을 수 있습니다.
sudo systemctl status ssh
2) 로그인 시도, 포트 리스닝 등의 방법으로 ssh 서비스 정상 작동인지 호가인
sudo netstat -tuln | grep 22
=> 22번 포트에서 리스닝 중이다.
=> 안됨
스택 오버 플로우에서 여러 글을 읽고 시도한 끝에 이 방안을 시도해봤다. 왜 이 방안을 게시하겠는가? 드디어 해결 ㅠㅠㅠㅠ 나 울어,,,, 이 글을 읽고 있는 당신의 3일 정도를 내가 해결해준 걸 수도,,,, 흑
참고 ) https://stackoverflow.com/questions/41929267/locked-myself-out-of-ssh-with-ufw-in-ec2-aws
위 사이트에서 이런 글이 있다.
설명하자면)
복붙해야 하는 글
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//
인내하는 개발자는 반드시 승리한다... 필,,, 승
nginx 설정하면서
이걸 해주니까 다시, 접속이 안된다.
이 분의 글을 참고 해서 아까 내가 복붙해서 사용자 편집에 넣으라고 한 글에 더 더했다.
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
sudo ufw allow ssh
sudo ufw allow 22
sudo ufw allow 443
sudo ufw allow 8080
sudo ufw allow 80
sudo ufw status
sudo ufw enable
--//
이렇게 작성하시면 될 것이에요 !
++
도움이 됐다는 분들의 댓글을 보니,,, 너무 감사한 마음과 함께,,, 사용자 데이터 편집에 쓴 글에 대해 그 어떤 설명도 안해놓은게 마음에 걸려서,, 간단하게 스크립트가 뭘 나타낸건지 작성해보았다. !
+추가 작성) 왜 해결된건가 ?
이 스크립트는 AWS 인스턴스에서 UFW(Uncomplicated Firewall)를 설정하여 접속 문제를 해결하는 역할을 합니다.
스크립트 설명
3. 셸 스크립트 섹션
덕분에 해결했어요..감사합니다ㅜㅜ!