SSH란
Secure Shell
의 약자로 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜이나
이 프로토콜을 사용하는 프로그램들을 의미한다.Secure
는 단어 그대로 보안이라는 의미이고, Shell
은 컴퓨터를 명령어로 원격지에서 제어하는 방식이다.
SSH가 적용된 서버를 SSH가 적용된 클라이언트가 제어하게 된다.
상호작용을 하는 방법은 암호화를 사용하게 된다. 기존에는 Telnet을 주로 사용했는데 평문으로 정보를 전송하기 때문에
중간에서 가로챌 경우 보안상 문제가 생기므로, Secure를 도입해서 SSH를 사용하게 되었다.
그 보안이 바로 암호화와 복호화 방식인 것이다.
암호화 방식
암호화 방식에는 여러가지가 있지만 핵심은 공개키와 개인키 쌍이 필요하다는 것이다.
간단하게 예를 들자면, 젠킨스 서버에서 애플리케이션 서버에 SSH로 도커 명령어를 실행해야 한다고 하자.
이 때 젠킨스 서버는 애플리케이션 서버에 접근을 하기 위해 젠킨스 서버가 개인키와 공개키
를 만들어
공개키를 애플리케이션 서버에 복사하여 복호화 할 수 있도록 하고, 암호화는 오직 개인키를 알고있는
젠킨스가 하게 된다. 그러면 오직 젠킨스만 애플리케이션 서버에 SSH 접근을 할 수 있는 것이다.
이렇게 사용하는 이유는 다른 서버들은 애플리케이션 서버에 접근하지 못하도록 하는 상황에 사용할 수 있다.
한 가지 예를 든 것이기 때문에 여러가지 방식이 있다는 것을 알아두자.
전자 서명 같은 경우 이와 같은 방식을 사용하게 된다.
SSH 클라이언트
리눅스나 Mac 같은 Unix 계열의 운영체제는 기본적으로 SSH 클라이언트가 설치되어 있다.
그래서 특별히 설치없이 사용할 수 있다.
윈도는 같은 경우는 설치해야 사용이 가능하다. 보통 PuTTY, Xshell을 많이 사용한다.
SSH 서버
SSH 서버라는건 Unix 계열의 운영체제를 원격에서 제어하기 위한 방법이다.
그래서 윈도우 운영체제를 SSH 서버로 사용하는 것은 일반적이지 않다.
윈도우에서는 클라이언트 운영체제로만 사용할 수 있다.
유닉스 계열 운영체제는 OpenSSH가 가장 많이 사용된다. 이는 클라이언트와 서버를 모두 포함하고 있다.
Mac은 SSH 클라이언트와 서버가 모두 기본으로 설치되어 있기 때문에 SSH를 사용하기 위해서는 특별히 설정할 것은 없다.
'기타 IT' 카테고리의 다른 글
Redis는 언제 사용해야 할까? (0) | 2022.05.11 |
---|---|
테스트 더블 테스트 VS 실제 객체 테스트(classicist vs mockist) (0) | 2022.04.15 |
@ParameterizedTest를 언제 사용해야 할까? (0) | 2022.03.03 |
상태 패턴이란 (0) | 2022.01.05 |
템플릿 메서드 패턴 (0) | 2021.12.29 |