본문 바로가기

네트워크

SSH에 대해 알아보자.

안녕하세요:)

오늘은 SSH에 대해 알아보도록 하겠습니다. SSH는 개발자나 서버 관련 일을 하게 된다면 쉽게 접하게 되는 일종의 도구인데, 서버같은 원격 컴퓨터에 안전하게 접속할 수 있게 해주는 기술입니다. 쉽게 말하면, 인터넷을 통해 다른 컴퓨터에 명령을 내리거나, 파일을 전송하는 방법인데, 중요한 건 SSH를 사용함으로써 보안이 잘 지켜진다는 점입니다. 

출처: https://www.ipxo.com/blog/what-is-ssh/

 

조금 더 구체적으로 알아볼까요?

 

SSH를 접하게 되는 순간

보통 서버에 접속해서 뭔가를 할 때 처음 SSH를 접하게 될 거라고 생각합니다. 예를 들어, AWS나 네이버 클라우드와 같은 클라우드 서비스를 사용해서 서버를 만들면, 서버에 접속하려고 SSH를 사용하게 됩니다. 이때, 서버에 접속할 때 필요한 인증 파일을 받는데, 이걸 pem 파일이라고 부릅니다.

출처: https://jojoldu.tistory.com/540

 

SSH란?

Secure Shell의 약자인 SSH는 '서버에 원격으로 접속하는데 보안을 유지하기 위한 방법'이라고 할 수 있습니다. 이걸 사용하면, 인터넷을 통해 서버에 접속해서 명령어를 실행하거나 파일을 전송할 수 있습니다. 인터넷은 누구나 볼 수 있게 공개된 공간이지만, SSH는 통신 내용을 암호화해서 함부로 내용을 훔쳐보지 못하게 합니다. 기본적으로 SSH는 22번 포트를 사용하여 통신합니다.

출처: https://medium.com/@hellomudit/understanding-ssh-workflow-66a0e8d4bf65

 

SSH 키 페어란?

SSH 키 페어는 공개키와 개인키, 두 가지로 이루어진 열쇠 세트입니다. 공개키는 서버에 저장되고, 개인키는 사용자 컴퓨터에 저장됩니다. 이때, 개인 키를 담고 있는 파일이 바로 pem 파일입니다. 클라우드에서 서버를 만들 때 이 pem파일을 다운로드하게 됩니다.

 

출처: https://www.cloudpanel.io/blog/what-are-ssh-keys/

 

SSH를 통해 서버에 접속하는 방법을 보자면,

서버에 접속할 때는 SSH 클라이언트 프로그램을 이용해서 pem파일을 같이 사용합니다. 명령어 창에 아래와 같이 커맨드를 입력하면 서버에 접속할 수 있습니다.

ssh -i my-key.pem user@my-server-ip

// 여기서 -i 옵션은 개인키 파일을 지정해주는 역할을 합니다.

// 예시
ssh -i gcp-key.pem ubuntu@34.123.45.67

gpt가 예시를 잘 들어주네요 하하

 

뭐 이어서 말하자면, 여기서 my-key.pem이 개인키 파일입니다. user는 서버에 접속할 때 사용하는 계정 이름이고, my-server-ip는 접속하려는 서버의 IP주소입니다.

 

예시를 보면, 

gcp-key.pem이 개인키 파일이고, ubuntu가 사용자 계정 이름, 34.123.45.67이 접속 서버의 IP가 되겠죠?

 

SSH의 동작 원리

출처: https://www.ssh.com/academy/ssh

SSH가 어떻게 서버에 접속하는지 동작 원리를 정리해보면 다음과 같습니다.

  1. 클라이언트(내 컴퓨터)가 서버에 접속하려고 요청을 보냅니다.
    • 여기서 요청은 ssh -i my-key.pem user@my-server-ip, 이 명령어를 말합니다.
  2. 서버가 자신의 공개키를 보내고, 클라이언트가 키를 확인합니다.
  3. 클라이언트는 pem파일을 사용해 서버가 보낸 내용을 해독한 후 자신의 신분을 인증합니다.
  4. 인증이 완료되면 보안 통신이 설정되고, 클라이언트는 서버에 접속해서 명령을 실행할 수 있습니다.

 

사용시 주의할 점

SSH는 매~우 유용한 도구이지만, 주의해서 사용할 점이 몇 가지 있습니다.

  1. 키 관리
    • 여러 개의 서버를 관리하거나, 각 서버마다 다른 키 파일을 사용할 경우에 파일을 매~우 잘 관리해야 합니다. 만약 키 파일을 분실하거나 잘못된 파일을 사용할 경우 서버에 접속할 수 없게 됩니다.
  2. 보안 유지
    • 그 어떤 키가 됐든, 잘 보관하고 관리하여야 하지만 개인키 파일(pem파일)은 정말 안전하게 보관해야 합니다. 키 파일이 유출되거나 다른 사람한테 넘어가면, 누군가 내 서버에 무단으로 접근할 수 있는 위험이 있습니다. 이를 방지하기 위해서도 외부에 키 파일이 노출되지 않도록 철저하게 관리해야 합니다.

 

끝내는 말

오늘은 22번 포트를 사용하는 SSH에 대한 글을 작성해보았습니다. 원래 작성할 생각이 없었는데, 갑자기 어제 같이 일하는 동생이

???: SSH가 몇 번 포트일까?

라고 말했던 게 생각나서 작성하게 되었습니다 ㅎ.ㅎ

 

아무튼 SSH는 앞으로 개발쪽 일에 종사한다고 하면 계속 듣고 보게 될 친구이기 때문에 알아두시면 유용할 거 같습니다.

 

읽어주셔서 감사합니다:)