본문 바로가기
다양한 기술들/Linux 관련

[SSH] 공개키 암호화(RSA)를 사용한 원격 Shell 연결

by 예스p 2023. 6. 25.

SSH 톺아보기

원격접속을 통해 윈도우에서 리눅스 개발환경을 사용해보자


SSH란?

  • 안전한 원격 접속 기술
    - Secure Shell
       Shell : 사용자로부터 명령을 받아 그것을 해석하고 실행하는 인터페이스를 의미
    - 원격 시스템에 안전하게 접속하고 네트워크를 통해 데이터를 안전하게 전송하기 위한 프로토콜 및 애플리케이션
    - 기존의 원격접속 기술인 '텔넷(Telnet)'은 암호화가 되지 않았었음
      >> 패킷 분석을 하면 옮겨지는 pw나 파일 내용등을 탈취할 수 있다
  • 공개키 암호화(RSA)로 세션 생성
    - 클라이언트와 서버는 각각 자신의 공개키와 개인키를 보유(키페어)
      공개키는 누구나 접근 가능하다.
    - 해당 키페어는 한쪽이 암호화를 했으면 반대쪽이 복호화를 함
    - 중간에 탈취를 방지하기 위해 전자서명 레이어 추가
    * 세션 연결 방식
      1. 암호화 : 데이터를 수신자(서버)의 공개키로 암호화
      2. 전자서명 : 암호화한 데이터를 송신자(클라이언트)의 비밀키로 암호화
      3. 전송
      4. 서명검증 : 수신자는 송신자의 공개키로 복호화
      5. 복호화 : 자신의 비밀키로 데이터를 복호화
  • 세션 연결 이후에는 대칭키(세션키) 사용
    - 빠르고 간단한 대칭키(세션키)를 이용해서 지속적인 암호 통신

 

 

OpenSSH 사용준비

  • 가장 널리 사용되는 SSH 클라이언트 중 하나
  • 설치하기
    1. Windows 운영 체제에서 "설정" 또는 "제어판"을 연다.
    2. "앱" 또는 "프로그램" 옵션을 선택
    3. "Windows 기능 켜기/끄기" 또는 "프로그램 및 기능"을 선택
    4. 목록에서 "OpenSSH 클라이언트"를 찾아 선택
    5. "확인" 또는 "설치" 버튼을 클릭하여 설치를 진행
  • 설치확인
    커맨드라인에서 'ssh -V'입력
    >> 설치완료시 버전출력
    >> 설치실패시 'The term 'ssh' is not recognized...' 출력
  • SSH 연결
    1. 하단의 명령어 입력한다.
       ssh [원격 계정]@[원격 ip] -p [변경할 포트]
       * p: 원격 호스트에 연결할 포트를 지정하는 옵션
    2. 비밀번호를 입력하면 연결이 완료된다.

 

 

VS Code 사용준비

  • VS Code는 추가적인 구성을 갖춘 경우 SSH 연결을 지원한다
    >> 로컬에서 원격 서버의 코드를 효율적으로 편집할 수 있다.
  • 사용준비
    1. 원격 서버에 SSH 서버를 설치하고 구성한다.
       - 대부분의 리눅스 기반 시스템에는 OpenSSH가 기설치되어 있음
       - 원격 접속을 허용하고 사용자 계정을 설정한다.
    2. VS Code의 "Extensions"에서 "Remote - SSH"를 찾아 설치한다.
  • SSH 연결
    1. 왼쪽 하단의 상태 표시줄에서 "><" 아이콘(연결 및 작업 영역 선택)을 클릭
       또는 Ctrl + Shift + p
    2. "Connect to Host" 선택 후 "Configure SSH Hosts..." 선택 
        >> C:/User에 있는 설정파일 선택
    3. 하단의 코드와 같은 양식으로 연결정보 입력 후 저장
         *SSH의 기본 포트정보는 22번이다(기본지정시 생략가능)
    4. Ctrl + Shift + p 진입 후 "Remote-SSH: Connect to Host..." 선택
    5. 운영체제 리눅스 선택 > 원하는 Host선택 > pw입력
       >> 연결완료
    6. 폴더열기를 누르면 입력창 형태로 디렉토리를 탐색할 수 있다.
       >> 원하는 폴더를 찾아 연다
Host [표기될이름]
    HostName [IP 주소]
    User [계정명]
    Port [포트 번호]

 

 

 

 

 

 

댓글