SSH
개념
SSH란 Secure Shell Protocol 의 약자로 단어의 뜻을 풀어 보면, 보안 쉘 프로토콜 이라는 뜻이다. 각각의 컴퓨터와 컴퓨터가 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해서 사용하는 프로토콜이라고 보면 된다.
간단하게, 나가 현재 쓰고 있는 컴퓨터로 SSH를 사용하여 원격 컴퓨터에 접속을 해서 터미널 환경에서 명령어를 입력을 할 수 있으며, 암호화 덕에 제 3자가 데이터를 가로채거나, 해킹하기 어렵다.
원리
SSH를 통하여 다른 컴퓨터와 통신을 하는 경우에는 한쌍의 key를 통해서 통신을 하게 된다.
- Public Key
- Public Key는 단어의 뜻 그대로 공개되어도 크게 상관이 없는 키
- Public Key를 이용하여 메시지를 전송을 하기 전에 암호화
- Public Key를 이용한 복호화는 불가
- Private Key
- Public Key를 통해 암호화된 데이터를 복호화
SSH 인증 과정
Public Key와 Private Key는 서로 맞물리는 퍼즐 조각처럼 작동
- Public Key를 서버에 저장:
- 접속하려는 서버에 클라이언트의 Public Key를 복사
- 접속 요청 과정:
- 클라이언트(당신의 컴퓨터)가 서버에 접속하려고 할 때, 서버는 클라이언트에게 “너 정말 그 키의 주인이 맞아?”라고 묻는다.
- 서버는 클라이언트의 Public Key로 무작위 메시지를 암호화해서 보낸다.
- 인증 과정:
- 클라이언트는 자신만 가진 Private Key로 서버가 보낸 암호화된 메시지를 해독해서 서버에 다시 보낸다.
- 서버는 클라이언트가 올바르게 해독했는지 확인
- 인증 성공:
- 클라이언트가 Private Key로 암호를 제대로 풀어낸다면, 서버는 이 클라이언트가 올바른 사용자인 것을 확인하고, 접속을 허가한다.
구분 Public Key (공개키) Private Key (비밀키) 비유 자물쇠 (누구에게나 나눠줌) 열쇠 (나만 가지고 있음) 파일 확장자 .pub(예:id_rsa.pub)확장자 없음 (예: id_rsa)저장 위치 접속하려는 원격 서버 내 로컬 컴퓨터 (클라이언트) 보안 수준 공개되어도 안전함 (공공재) 절대 유출 금지 (생명줄) 주요 역할 메시지 암호화 / 서명 검증 메시지 복호화 / 디지털 서명 생성 분실 시 서버에서 삭제하고 다시 등록하면 됨 접속 불가 (서버 설정에 따라 재발급 필요)
결론
- Public Key는 암호화만 하고, Private Key는 그 암호를 해독하는 역할을 맡는다.
- Public Key를 서버에 미리 저장해 둔 후, 실제 인증 시 Private Key로만 인증을 통과할 수 있기 때문에, 비밀번호 입력 없이도 안전하게 접속할 수 있다.
Leave a comment