각진 세상에 둥근 춤을 추자

[Ubuntu] Ubuntu 20.04에 Open SSH 설치+키 SSH 키 생성과 키 포맷 변환+원격 서버 접속 본문

Linux

[Ubuntu] Ubuntu 20.04에 Open SSH 설치+키 SSH 키 생성과 키 포맷 변환+원격 서버 접속

circle.j 2024. 3. 5. 18:31

시작하기 앞서, 

1. 먼저 각각의 서버에 방화벽을 설치해준다.

sudo apt install ufw

 

2. 방화벽을 활성 시킨 후, 방화벽에 ssh를 허용시킨다.

sudo ufw enable
sudo ufw allow ssh/tcp

SSH 공개키 생성 

 

두 서버 간의 SSH 연결을 위해 각각의 서버에 공개키가 필요하다.

 

1. 아래 명령어를 입력하여 Open SSH Server를 설치한다.

sudo apt update
sudo apt install openssh-server

 

2. 아래 명령어를 통해 SSH가 실행 중인지 확인한다.

sudo systemctl status ssh

 

3. 아래 명령어를 통해 orch 폴더를 만든다 

sudo mkdir /usr/local/orch

 

4. 아래 명령어를 통해 ssh 폴더를 만든다.

sudo mkdir ssh

 

5. 아래 명령어를 통해 ssh 키를 생성한다.

sudo ssh-keygen -f id_rsa -t rsa -b 2048
  • -f id_rsa: 생성된 키 파일의 이름을 'id_rsa'로 설정한다.
  • -t rsa: RSA 알고리즘을 사용하여 키를 생성한다.
  • -b 2048: 2048비트의 키를 생성한다.

이후 Enter passphrase (empty for no passphrase): 라는 passphrase를 입력하라는 메시지가 나타난다.

개인 키를 보호하기 위한 암호이다.

해당 암호를 설정해 주고 나면 다음과 같이 키가 성공적으로 생성된다.  

 

6. 아래 명령어를 통해 키 포맷 변환을 실행한다. 

ssh-keygen -p -f id_rsa -m pem
  • -p: 키의 암호를 변경하기 위해 키를 재생성한다
  • -f id_rsa: 키 파일의 경로를 지정한다. 여기서 'id_rsa'는 원래의 키 파일이름이다.
  • -m pem: 새로운 키의 형식(PEM형식)을 지정한다.

 

  • Enter old passphrase: 이전에 설정한 암호를 입력한다.
  • Enter new passphrase: 새로 지정할 암호를 입력한다.

 

7. 각각의 서버에 '.ssh' 디렉토리를 생성한다 (SSH 클라이언트의 공개 키 및 인증 파일을 저장하는 디렉토리)

mkdir .ssh

 

8. '.ssh' 디렉토리에 'authorized_keys' 파일을 생성한다 (인증된 SSH 공개키를 저장)

touch .ssh/authorized_keys

 

9. 서버의 '.ssh/authorized_keys' 파일에 클라이언트의 공개키를 추가한다. (서버에 공개키 등록)

cat id_rsa.pub >> ~/.ssh/authorized_keys

 

10.  디렉토리에 대한 읽기, 쓰기 및 실행 권한을 소유자에게만 부여한다.

chmod 700 .ssh

 

11.해당 파일에 대한 읽기 권한을 소유자에게만 부여하고 쓰기 및 실행 권한은 모든 사용자에게 거부한다.

chmod 644 .ssh/authorized_keys

 


이어서 첫 번째 서버에서 원격서버(두 번째 서버)로 접속한다. (원격서버 패스워드 입력)

ssh -i id_rsa dbserver@원격서버ip주소

# 예시
ssh -i id_rsa dbserver@192.168.111.130

# 만약 서버의 ip주소를 알고 싶다면
hosntname -I

 

접속