SSH Protocol
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>