클라우드 아키텍트 양성과정

리눅스(CentOS) SSH(Secure SHell)

종바깅 2021. 5. 12. 11:19

SSH

SSH(Secure Shell)

  • 암호화 적용

  • ssh 연결방법 :

      # ssh [사용자ID]@[대상 서버의 주소]

SSH서버의 암호화 관련 파일

  • /etc/ssh/key, /etc/ssh/key.pub - 암호화 관련 개인키/ 공개키 파일

SSH Key

  • 사용자가 암호 기반의 인증 대신 키 기반의 인증 사용 가능
  • 사용자 암호 키 생성
    • ssh-keygen
      • 암호 위치 지정(기본값 : 사용자 홈/.ssh/id_rsa)
      • 개인키/공개키 쌍으로 생성됨 : id_rsa(개인키), id_rsa.pub(공개키)
      • 공개키는 노출되어도 상관없으나, 개인키는 취급에 주의(파일 위치 및 권한)
    • ssh-copy-id
      • 생성한 공개키 쌍 중 공개키를 SSH 서버에 저장
      • 서버는 사용자의 공개키를 보유하고 있다가, 사용자 인증 요청시 키 기반 인증 사용
      • 서버가 사용자의 공개키로 암호화한 데이터의 해석을 클라이언트에게 요청하므로, 클라이언트가 개인키를 가지고 있어야만 해독이 가능
      • Challanger/Response방식의 인증

SSH 관련 파일

  • ~/.ssh/known_hosts
    • 클라이언트에서 접속하는 서버에 대한 정보를 저장하기 위하여 사용
    • known_hosts 파일에 등록되어 있지 않은 서버로 접속할 경우, 서버로부터 전달받은 공개키의 지문(Fingerprint, 해쉬값)을 출력하며, 접속할 대상 서버가 맞는지에 대한 검증을 사용자에게 요청
    • 검증 시 사용자의 승인(yes)입력 시, 해당 키를 known_hosts 파일에 저장
    • known_hosts 파일에 등록된 서버에 접속할 경우, 키 검증 경고가 출력되지 않음
  • ~/.ssh/authorized_keys
    • 키 기반인증을 하기 위하여 클라이언트가 전달한 공개키가 저장되는 파일
    • 사용자가 별도 키를 지정함(/root/.ssh/authorized_keys, /home/user/.ssh/suthorized_keys 등)
    • 암호화 방식 및 클라이언트가 전달한 공개키, 접속하고자 하는 사용자의 정보가 파일에 저장됨
  • /etc/ssh/sshd_config
    • sshd(ssh 서버 데몬)의 설정을 저장하는 파일
    • sshd 프로토콜 종류, 보안 관련된 설정 들을 저장
    • 키 기반인증, 관리자 로그인 허용 설정 등을 주로 사용

SSH 설정파일

  • /etc/ssh/ssh_config : SSH 클라이언트(ssh 명령어) 설정
  • /etc/ssh/sshd_config : SSH 서버 데몬 설정

SSH 터널링 관련 기능

  • X11 forwarding : GUI 창을 실행 하도록 전달
  • scp : ssh 터널링을 통해 네트워크로 파일을 복사
  • sftp : ssh 터널링을 통해 ftp 기능 사용
  • scp, sftp는 별도 설치가 필요하지 않음 - ssh와 함께 구성됨
  • ssh만 연결 가능하면 파일 복사 가능