[LINUX] SSH

김나영·2023년 4월 4일
0

LINUX

목록 보기
5/9

SSH

  • Secure Shell / 보안 쉘

  • 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜

  • 암호화를 통해 강력한 보안을 제공하기 때문에 개방된 네트워크에서도 안전하게 통신 가능

작동원리

  1. 클라이언트는 서버에 원격 접속하기 위해 연결을 설정하는 프로세스를 시작
    기본포트 : 22
    클라이언트가 서버에 원격 접속하기 위해 서버의 TCP 22번 포트로 SSH 접속 요청을 보냄
    서버는 클라이언트에게 서버가 지원하는 프로토콜 버전을 응답으로 보내줌
    클라이언트는 서버가 지원하는 프로토콜의 버전 중 자신과 일치하는 것이 있다면 연결을 지속 => 버전교환
  1. 서버의 공개키를 클라이언트에게 전송
    서버는 클라이언트로부터 SSH 접속 요청을 받고 자신의 공개키를 클라이언트에게 전송, 클라이언트는 서버로부터 받은 공개키를 로컬에 저장
    클라이언트는 원격 접속하는 서버들의 공개키를 로컬 사용자 홈 디렉터리의 .ssh 경로 내의 known_hosts 파일에 저장

  2. 클라이언트와 서버는 여러 파라미터를 주고 받으며 보안 채널 확립

    3-1) 서버인증
    클라이언트는 난수를 하나 생성 후 이를 서버의 공개키로 암호화해서 서버에게 전송, 난수의 해시를 저장
    서버는 전송받은 암호화된 난수를 서버 자신의 개인키로 복호화
    복호화된 난수의 해시를 계산해서 클라이언트에게 전송
    클라이언트는 전송받은 난수의 해시를 저장된 해시와 비교하여 서버 인증

    3-2) 클라이언트 인증
    서버는 난수를 하나 생성 후 이를 클라이언트의 공개키로 암호화해서 클라이언트에게 전송, 난수의 해시를 저장
    클라이언트는 전송받은 암호화된 난수를 클라이언트 자신의 개인키로 복호화
    복호화된 난수의 해시를 계산해 서버에게 전송
    서버는 전송받은 난수의 해시를 저장된 해시와 비교하여 클라이언트 인증

  1. 클라이언트가 서버에 원격 접속할 수 있다

대칭키

  • 세션키라고도 한다

  • 클라이언트와 서버가 통신을 할 때 사용하는 public key와 private key

  • SSH는 대칭키를 통해 접속하려는 컴퓨터와 인증과정을 거친다.

  • 서로 관계를 맻고 있는 키라는 것이 증명되면 두 컴퓨터 사이에 암호화된 채널이 형성되어 키를 활용해 메시지를 암호화하고 복호화하며 데이터를 주고받을 수 있게 된다.


https://www.ssh.com/academy/ssh/protocol

profile
응애 나 애기 개발자

0개의 댓글