SSH Protocol

less than 1 minute read

SSH

  • 원격지 연결 을 가능하게 해주는 프로토콜 중 하나.
  • 인터넷을 통해 통신할 때, 통신 내용을 암호화해서 전달하기 위해 사용 (스니핑 등을 방지한다.)

사용 방식

  • 데이터 전송

    소스코드를 Github에 푸쉬할 때, SSH 이용 scp

  • 원격 제어

    원격 서버에 명령을 내릴 때, SSH 이용

$ ssh [user_name]@[host_name]
$ ssh root@x.x.x.x # 예시

비대칭키 방식 사용

  • private key : SSH를 사용하려하는 Client 에 존재 (~/.ssh/id_rsa)
  • public key : SSH로 접속하고자 하는 Server 에 존재 (id_rsa.pub : 서버의 ~/.ssh/authorized_key 에 저장된다.)
  • ssh-copy-id, scp 등을 이용해 생성한 공개키를 서버에 전달한다. (ssh-kengen 을 통해 비대칭키 생성)
  • SSH 연결 시도 시, 서버에서 갖고 있는 공개키를 이용해, 해당 사용자가 적법한지 판단 후 연결시켜준다.
  • ~/.ssh/known_hosts : 처음 접근 시, 클라이언트에 해당 서버에 접근한 적이 있다는 정보를 적기 위해 해당 파일에 자동으로 적는다. (처음 접근시 물어본다.)

편하게 사용

  • ~/.ssh/config 에 이름 등록해서 사용 가능

1. ~/.ssh/id_rsa 이용해 접근하는 경우

Host home  
    HostName x.x.x.x
    User user

2. 다른 키 파일을 이용해 접근하는 경우

Host home
    HostName x.x.x.x
    User user
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/<key_file>

Categories:

Updated: