리눅스/리눅스 연습(fedora, ubuntu)
3부 SSH 통신 방법
피어나는 열정
2022. 7. 25. 19:39
시큐어 셀(Secure SHell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜을 가리킨다.
- 대표적인 사용 :
- 데이터 전송
- 원격 제어
- 데이터 전송의 예 :
- 깃 허브
- 원격 저장소, 소스 코드를 원격 저장소인 깃헙에 푸쉬할 때 SSH를 활용해 파일을 전송하게 된다.
- 원격 제어의 예 :
- AWS와 같은 클라우드 서비스는 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서 SSH을 통한 접속을 해야한다.
- 사용이유 :
- 보안때문에 FTP나 Telnet과 같은 다른 컴퓨터 통신을 사용하지 않는다.
- SSH는 보안적으로 훨씬 안전한 채널을 구성한 뒤 정보를 교환하기 때문에 보다 보안적인 면에서 뛰어나다.
SSH 작동 원리
SSH 프로토콜은 클라이언트-서버 모델로 동작하며 대칭키 방식, 비대칭키 방식, 해시 알고리즘을 사용하여 인증 및 암호화를 수행한다.
대칭키 방식은 클라이언트-서버 간 전체 연결을 암호화에 사용되며,
비대칭키 방식은 키 교환, 클라이언트 인증, 서버 인증에 사용되고,
해시 알고리즘은 패킷의 무결성을 확인하기 위해 사용된다. (HMAC : Hash based Message Authenticated Codes)
대칭키
비대칭키
대표적인 알고리즘으로는 Diffie-Hellman, RSA, DSA, ECC, 등이 있다.
A가 B에게 데이터를 보낸다고 할 때, A는 B의 공개키로 데이터를 암호화해서 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보게 된다.
- 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼수 있게 된다.
공개키는 키가 공개되어 있기 때문에 따로 키 교환이나 분배를 할 필요가 없게 된다. 중간 공격자가 B의 공개키를 얻는다고 해도 B의 개인키로만 복호화가 가능하다.
-> 키 전달 문제를 해결하여 더 안전하지만, 암호화와 복호화를 위해 복잡한 수학 연산을 수행하기 때문에 대칭키 알고리즘에 비해 속도가 느리다는 단점이 있다.