리눅스 서버를 구축한다면 터미널이나 그래픽 유저 인터페이스 환경을 통해 여러가지 작업을 진행할 수 있습니다. 그러나 대부분의 리눅스 서버는 회사에서 사내 서버로서 한 장소에 묶어두거나, 호스팅 업체 및 클라우드 호스팅 등의 다양한 구성으로 이루어졌기 때문에 관리자와 멀리 떨어져있는 곳에 서버가 위치한 경우가 많습니다.
서버 작업을 처리해야 할 일이 있을 때 마다 매번 해당 서버가 위치한 곳으로 이동할 수는 없고, 이동해서 관리하자니 관리해야 할 서버가 점차 많아지게 되면 각각의 서버로 이동하여 일일히 모니터를 연결하여 작업을 할 수는 없는 노릇입니다.
https://www.google.co.kr/amp/s/jootc.com/p/201808031460/amp
프로토콜은 컴퓨터와 컴퓨터가 통신하기 위한 규약
Protocol 이란, 서로 다른 통신 장비 간 주고 받는 데이터의 양식과 규칙입니다.
https://baked-corn.tistory.com/m/52
SSH란?
SSH란 Secure Shell Protocol, 즉 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜입니다. 대표적인 사용의 예는 다음과 같습니다.
데이터 전송
원격 제어
이 둘은 개발 공부를 하시는 분이라면 한 번쯤은 사용해보셨을 것이라고 생각합니다. 먼저 데이터 전송의 예로는 원격 저장소인 깃헙이 있을 수 있습니다. 소스 코드를 원격 저장소인 깃헙에 푸쉬할 때 여러분은 SSH를 활용해 파일을 전송하게 됩니다.
다음으로는 원격 제어입니다. 웹 개발 공부를 하시는 분이시라면 AWS와 같은 클라우드 서비스를 이용해보셨을 것입니다. 우리는 AWS의 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서도 SSH를 통한 접속을 해야 합니다.
그렇다면 FTP나 Telnet과 같은 다른 컴퓨터와 통신을 위해 사용되는 프로토콜도 있는데 SSH를 사용하는가를 생각해볼 수 있습니다. 그 이유는 물론 "보안"입니다. 만일 예로 언급한 두 프로토콜을 통해 민감한 정보(예를 들어 로그인 정보)를 주고받는다면 정보를 직접 네트워크를 통해 넘기기 때문에 누구나 해당 정보를 열어볼 수 있어 보안에 상당히 취약합니다.
반면 SSH는 먼저 보안적으로 훨씬 안전한 채널을 구성한 뒤 정보를 교환하기 때문에 보다 보안적인 면에서 훨씬 뛰어납니다.
그렇다면 SSH는 어떤 방식으로 서로 다른 컴퓨터가 안전하게 통신하게끔 할까요?
Private Key and Public Key
SSH는 다른 컴퓨터와 통신을 하기 위해 접속을 할 때 우리가 일반적으로 사용하는 비밀번호의 입력을 통한 접속을 하지 않습니다.
기본적으로 SSH는 한 쌍의 Key를 통해 접속하려는 컴퓨터와 인증 과정을 거치게 됩니다. 이 한 쌍의 Key는 다음과 같습니다.
Private Key
Public Key
먼저 Public Key는 단어 뜻 그대로 공개되어도 비교적 안전한 Key입니다. 이 Public Key를 통해 메시지를 전송하기 전 암호화를 하게 됩니다. Public Key로는 암호화는 가능하지만 복호화는 불가능합니다.
그리고 이와 쌍을 이루는 Private Key는 절대로 외부에 노출이 되어서는 안되는 Key로 본인의 컴퓨터 내부에 저장하게 되어있습니다. 이 Private Key를 통해 암호화된 메시지를 복호화 할 수 있습니다.
HTTP 에 대해 알아보면서 프로토콜은 컴퓨터와 컴퓨터가 통신하기 위한 규약인 걸 알았으니 ssh 도 그 중 하나입니다.
다만 특별한 점은 Secure라는 이름에서도 알 수 있듯이 보안을 강조한 안전한 프로토콜입니다. 기존의 telnet, RSH, rlogin 등의 보안문제를 개선하기 위해서 나왔으며 통신이 노출된다 하더라도 이미 암호화 되어 있기 때문에 문제가 없습니다.
출처 / https://s2choco.tistory.com/m/46
SSH(=Secure Shell)는 네트워크 프로토콜로, SSH를 사용해 안전하게 네트워크 통신을 할 수 있다.
SSH 프로토콜은 사용자 인증 방식을 필요로 하는데, GitHub에서는 공개 키(Public Key) 인증 방식을 사용한다.
공개 키 인증 방식은 사용자 컴퓨터에 등록 되어 있는 공개 키(Public Key)-개인 키(Private Key) 쌍과 GitHub 서버에 등록 되어 있는 공개 키를 비교해 올바른 사용자인지 인증하는 방식이다.
https://100.daum.net/encyclopedia/view/55XXXXX20518
①보안 등급이 낮은 네트워크상에서 보안 등급이 높은 원격 접속 개시나 데이터 전송을 실현하는 프로토콜. 시큐어 셸(SSH) 프로토콜에는 전송 계층 프로토콜, 사용자 인증 프로토콜, 연결 프로토콜 등 3종류가 있다.
전송 계층 프로토콜은 TCP/IP의 상위에서 사용하는 것으로, 암호화 데이터 전송이나 서버 인증 기능이 있다. 여러 종류의 암호 기술을 사용할 수 있고, 암호 키의 교환이나 이용하는 암호 기술의 교섭 방법이 정해져 있다.
사용자 인증 프로토콜은 SSH 전송 계층 프로토콜의 상위에서 동작한다.
② 암호 통신을 이용해서 다른 컴퓨터에 접속한 다음 명령을 실행하거나 파일 조작을 행하기 위한 프로토콜. 예를 들면 미국 GTE Telenet 사가 운영하는 부가 가치 통신망(VAN: Value Added Network)인 텔레넷(Telenet)이나 원격 셸 프로토콜(RSP)을 이용해서 원격지의 서버에 접속하면, 그 구간의 통신은 계정 및 패스워드를 주고받는 것은 암호화되지 않으므로 악의를 가진 사용자에게 통신 내용을 도청당할 가능성이 있다. 이를 방지하기 위해서 암호화하는 것이다.
'오늘의 이야기 > 지식 충전' 카테고리의 다른 글
도메인이란 (0) | 2021.09.02 |
---|---|
[DB] 데이터 모델링의 3요소, 속성, 엔티티, 릴레이션, 관계, 어트리뷰트 (0) | 2021.09.02 |
CMD 사용할 때 (0) | 2021.08.30 |
GUI와 CLI, CMD와 Terminal (0) | 2021.08.29 |
REST API - 쿼리스트링 vs path parameter (0) | 2021.08.15 |