Skip to content

Latest commit

 

History

History
79 lines (42 loc) · 3.85 KB

ssh.md

File metadata and controls

79 lines (42 loc) · 3.85 KB

SSH

SSH?

  • Secure Shell (보안 껍데기(?))의 약자.

  • 네트워크 통신에 사용되는 telnet을 보완하기 위해 개발된 소프트웨어

    • telnet은 서로 다른 두 컴퓨터를 연결하여 파일을 주고 받을 수 있는 소프트웨어
    • telnet은 데이터를 전송하는 과정에서 암호화를 이용하지 않기 때문에 패킷이 유출될 경우 비밀정보까지 노출 가능성 있음
  • 서버에 접속 할 때 비밀번호 대신 key를 제출하는 방식

  • 비밀번호 보다 높은 수준의 보안을 필요로 할 때, 혹은 로그인 없이 자동으로 서버에 접속 할 때 사용

  • 혹은 GitHub 계정이 2FA(Two-Factor Authentication)에 의해 이중 인증이 필요 할 때

SSH가 동작하는 방식

  • SSH Key는 공개키(public key)와 개인 키(private key)로 이루어진다
  • 공개키는 외부에서 나에게 메시지를 보낼 때 사용하는 암호화
  • 개인키는 외부에서 나에게 보낸 메시지를 복호화 할 때 사용하는 키
  • 개인 키는 로컬 머신에, 공개키는 리모트 머신에 위치 (로컬 머신은 SSH Client, 원격 머신은 SSH Server가 설치된 컴퓨터를 의미)
  • SSH 접속을 시도하면 SSH Client가 로컬 머신의 비공개키와 원격 머신의 비공개키를 비교해서 둘이 일치하는지를 확인

img

View of Github

  • Github은 우리의 컴퓨터와 연결될 수 있도록 SSH 기능을 제공
  • 즉, github에게 '내 공개키'를 전달하기만 한다면 github이 나에게 보내는 모든 메시지'개인키'를 가지고 있는 나만이 이해할 수 있는 것
  • 이로써 github에게 내가 프로젝트의 주인임을 인증 가능
  • 따라서 이 기능을 이용하면 매번 비밀번호를 입력하지 않고도 '인증' 이 가능
  • SSH는 단순히 '인증'을 위한 수단이 아니고 데이터를 안전하게 전송하기 위한 프로토콜임을 꼭 기억하시길 바랍니다..

img

SSH Key 만들기

  • Unix 계열(리눅스, 맥)에서는 ssh-keygen이라는 프로그램을 이용하여 생성 가능

    ssh-keygen -t rsa -b 4096 -C "[email protected]

    • t rsa는 rsa라는 암호화 방식으로 키를 생성한다는 의미
    • SSH 키는 키 크기가 2048비트 또는 4096비트인 RSA 키여야 한다. 해당 경우는 4096으로 지정
  • 생성 후 아래와 ~/.ssh 에서 아래와 같은 세가지 파일 확인 가능

    • authorized_keys - id_rsa.pub 키의 값을 저장
    • id_rsa - 개인키, 타인에게 노출되면 안되는 private key. 본인의 컴퓨터 내부에 저장하게 되어 있으며, 이 Private Key를 통해 암호화된 메시지를 복호화 할 수 있다.
    • id_rsa.pub - 공개되어도 비교적 안전한 public key. Public Key를 통해 메시지를 전송하기 전 암호화를 하게 된다.

github 연동

  • Setting에서 SSH 공개키(id_rsa.pub) 등록clone with SSH

  • 공개키 확인 방법

    cat(또는 vi) ~/.ssh/id_rsa.pub

    img

    img

출처