SSH

ghkdrbals·2023년 11월 9일

EC2를 생성하고 SSH설정을 변경하세요.

요구사항

  1. Bastion EC2의 SSH port를 11111로 설정하세요.

  2. 1234라는 password로 로그인 하도록 구성하세요.

  3. 키페어, 패스워드가 모두 있어야지 로그인 되도록 구성하세요.

  4. 1~3번 요구 사항을 모두 한꺼번에 만족하도록 Userdata를 작성하세요

힌트:

echo명령어로 파일에 문자열 추가할 수 있음

sed명령어로 파일의 문자열을 수정할 수 있음

SSH 접속이 안되는 EC2에는 직렬 콘솔을 통해 접속할 수 있음

  • 추가 문제

amazonlinux가 아닌 ubuntu EC2를 생성하고 접속해보세요

(ssh ec2-user@n.n.n.n 명령이 안될겁니다. 왜 안되는지, 어떻게 해야 되는지 알아보세요.)

1번 문제 해결 방법
vpc 와 퍼블릭, 프라이빗 서브넷 그리고 라우팅 테이블 생성하고 네트워크을 생성하여 연결한다.

키페어을 생성후 인스턴스을 생선한다.(인스턴스는 Amazon Linux로 생선한다)

위도우에서 cmd 실행하여 아래 명령어을 입력하여 인스턴스에 접속해 줍니다.

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

접속을 한 후, 아래 명령어을 입력하여 ssh파일에 접속하여 port를 변경 시켜줍니다.
변경 실킬때 port 앞의 #은 제거해 준다.
(팁: 파일에서 원하는 문장을 찾는 방법은 :/ 원하는 문장을 입력하면 원하는 문장으로 이동 됨)

sudo vim /etc/ssh/sshd_config

포트 변경을 한 후에 아래 명령어을 입력하여 sshd를 다시 시작 해주어야 변경된 포트가 적용이 됩니다.

sudo systemctl restart sshd

인스턴스 보안 그룹에서 인바운드 규칙 편집으로 들어가 생성되어 있던 보안 그룹 규칙을 삭제하고 규칙을 추가하여 포트 범위을 cmd에서 설정한 포트로 설정한다.
CIDR 블록을 0.0.0.0/0으로 설정 하고 규칙을 저장한다

이제 다시 접속을 해보겠습니다. 명령어의 경우에는 다음과 같습니다.

ssh -i <pem key 위치> ec2-user@<ip 주소> -p <바꿔준 포트>


1번 문제 해결 완료

vpc 및 인스턴스 삭제 키페어는 삭제하지 말아주세요

2번문제 해결 방법

1번문제의 vpc와 인스턴스을 같은 방식으로 만들어 .

키페어는 1번 문제에서 만들어 노은 것을 사용한다.


아래 명령어을 통해 인스턴스로 접속한다.

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

인스턴스 접속이후 아래 명령어을 입력하여 패스워드 설정합니다.

sudo passwd [사용자 계정]


아래 명령어을 입력하여 파일에 있는 문장인 PasswordAuthentication no을 PasswordAuthentication yes 수정해 줍니다.

sudo vi /etc/ssh/sshd_config


아래 명령어을 입력하여 다시 시작해 줍니다

sudo service sshd restart

그럼 이제 키페어 없이 패스워드로 인스턴스을 들어 갈수 있습니다.

키페어 없이 인스턴스 로그인 명령어는 아래와 같습니다.

ssh ec2-user[인스턴스 ip]


2번 문제 해결

3번 문제는 2번 문제에서 이어서 합니다

3번 문제 해결 방법

아래 명령어을 입력하여 파일에 AuthenticationMethods "publickey,password"을 추가해 줍니다.

sudo vi /etc/ssh/sshd_config

아래 명령어을 입력하여 다시 시작해줍니다.

sudo service sshd restart

그리고 키페어 없이 들어가려 하면 접속이 불가하고 키페어 입력 후에 들어가면 페스워드 입력후에 들어가 집니다


3번문제 해결

인스턴스와 vpc을 삭제해 줍니다.

4번 문제 해결 방법

vpc을 생성해 줍니다.

인스턴스을 생성할 때 userdata에 애래의 명령어을 입력하여 주고 생성을 합니다.

#!/bin/bash
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl restart sshd
echo '1234' | passwd --stdin ec2-user
sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config | grep -i pass
semanage port -a -t ssh_port_t -p tcp 11111
sed -i 's/^#Port 22/Port 11111/g' /etc/ssh/sshd_config | grep -i port
semanage port -l | grep ssh
echo AuthenticationMethods publickey,password >> /etc/ssh/sshd_config
service sshd restart || service ssh restart

인스턴스 생성후에 보안 그룹으로가 인바운드 규칙 클릭하여 들어가 보안 그룹 규칙을 삭제해 줍니다.

포트 범위가 11111와 ip을 0.0.0.0/0 설정하여 저장을 합니다.

이제 cmd을 통해 아래 명령어을 입력후 패스워드을 입력하여 들어가 줍니다.

ssh -i <pem key 위치> ec2-user@<ip 주소> -p <바꿔준 포트>

4번 문제 해결 완료

profile
집가고 싶다

0개의 댓글