본문으로 바로가기
반응형


MobaXterm 설치

https://mobaxterm.mobatek.net/download.html

 

MobaXterm free Xserver and tabbed SSH client for Windows

The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!

mobaxterm.mobatek.net

 

AWS에 접속하여 EC2 인스턴스를 생성하고 AWS에서 제공해주는 인스턴스 연결 기능을 사용하면 아래와 같은 에러를 받을 수 있습니다.

SSH 클라이언트에서 명령어를 작성하여 접속을 하려하면 Connection timed out 을 받을 수 있습니다.

$ ssh -i <pem key 위치> ec2-user@<ip 주소>

ssh: connect to host port 22: Connection timed out

 

원인

저의 경우에는 회사에서 22번 포트를 막아놔서 문제였습니다. 구글링을 하던 도중 공유기로 인해 접근이 안된다는 포스팅도 봤습니다.

 

저는 AWS에서 제공하는 사용자 데이터를 활용하여 해결하였습니다.

사용자 데이터는 EC2 Linux 인스턴스를 다시 시작할 떄마다 사용자 데이터의 작성한 스크립트를 실행해주는 기능입니다.

 

ssh 포트는 기본으로 22번 포트에서 실행됩니다.

아래의 파일에 들어가 Port 22를 원하는 포트로 변경하면 됩니다.

$ sudo cat /etc/ssh/sshd_config

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.
....
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

저 sshd_config 안에 Port를 원하는 Port로 수정해야 합니다. 

#Port 22 -> Port 10000 

리눅스 명령어중에 perl이라는 명령어를 사용해 #Port 22를 Port 10000으로 치환해야 합니다.

 

#perl -pi -e 's/원본문자열/바꿀문자열/g' <파일명>

-p 지정한 파일을 대상으로 작업

-i 원본파일을 결과 파일로 대체

-e 주어진 Perl 명령 실행

$ perl -pi -e 's/^#?Port 22$/Port 10000/' /etc/ssh/sshd_config

해당 명령어로 실행 후 restart 해주면 된다

$ service sshd restart || service ssh restart

 

이 내용을 정리해서 하나의 스크립트로 만들면

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

이 내용을 사용자 데이터에 넣으면 된다.

인스턴스 우클릭 > 인스턴스 설정 > 사용자 데이터 편집

작성 후 저장

다시 쉘에서 기본 포트 22가 아닌 변경 한 포트 번호로 작성하고 실행하면 Connection timed out이 뜨는데,,

$ ssh -i <pem key 위치> ec2-user@<ip 주소> -p <포트 번호>
$ ssh -i <pem key 위치> ec2-user@<ip 주소> -p 10000

ssh: connect to host port 22: Connection timed out

인바운드에도 포트 번호 10000번을 추가해줘야 한다.

 

접속 성공!

반응형