Step-by-Step
SSH에 대한 이해 본문
SSH(Secure SHell)
- 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜 또는 이 프로토콜을 사용하는 프로그램을 의미
- 네트워크 상의 다른 컴퓨터에 로그인하거나, 원격 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 프로토콜
- SSH 클라이언트와 SSH 서버의 관계로 상호작용하면서 SSH 서버가 설치된 운영체제를 제어함
- SSH는 암호화 기법을 사용하기 때문에 클라이언트와 서버 간 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다
- 기존의 rsh, rlogin, telnet, ftp 등을 대체하며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공함
- 기본적으로는 22번 포트를 사용함
SSH Key
- 서버에 접속할 때 key를 제출하는 방식
- 공개 키 암호화 방식 및 인증 확인 응답 인증을 사용하는 SSH 서버에 대해 자체 식별하는 방식
- SSH 접속을 시도하면 SSH 클라이언트가 자신의 Private Key와 SSH 서버의 Public Key를 비교하여 일치하는지 확인
(1) Private Key (Client)
(2) Public Key (Server)
SSH Key 사용하는 경우
- 비밀번호 보다 높은 수준의 보안을 필요로 할 때
- 로그인 없이 자동으로 서버에 접속할 때
SSH Key 생성
- "ssh-keygen"이라는 툴 사용 (Unix 계열 기준으로, 윈도우는 별도의 프로그램 설치가 필요함)
$ ssh*-keygen* *-t* rsa
Generating public/private rsa key pair.
- "-t rsa"는 rsa 암호화 방식으로 키 생성한다는 뜻
Enter file in which to save the key (/home/axl/.ssh/id_rsa):
- 저장할 위치 지정, 기본 경로는 로그인한 사용자의 Home 디렉토리 아래에 .ssh임 ($HOME/.ssh)
- SSH 클라이언트는 기본적으로 이 디렉토리에 있는 키를 통해서 인증을 시도함
Enter passphrase (empty for no passphrase):
- passpharse는 키 비밀번호로, 암호화되어 키 생성에 사용됨
- 이 부분을 생략하면 보안 홀이 될 수 있기 때문에 주의한다 (자동 로그인을 원하면 생략)
Enter same passphrase again: <Type the passphrase>
Your identification has been saved in /home/axl/.ssh/id_rsa.
Your public key has been saved in /home/axl/.ssh/id_rsa.pub.
The key fingerprint is:
0b:fa:3c:b8:73:71:bf:58:57:eb:2a:2b:8c:2f:4e:37 axl@myLocalHost
- 비밀번호를 확인하는 작업으로, 출력이 밑의 멘트와 같이 나온다면 키가 생성된 것임
[axl@asterisk1 axl] ls -al ~/.ssh/
- 키를 확인한다
생성된 파일 해석
(1) id_rsa : Private Key / 타인에게 노출 절대 금지
(2) id_rsa.pub : Public Key / 접속하려는 리모트 머신의 authorized_keys에 입력한다
(3) authorized_keys : 리모트 머신의 .ssh 디렉토리 아래에 위치하면서 id_rsa.pub 키 값 저장
※ SSH Server의 authroized_keys의 내용이 SSH Client의 id_rsa.pub 파일과 같아야 함
SSH를 이용하여 접속
// 접속
$ssh [사용자계정]@[원격지 ip]
// 해제
exit
SSH 옵션
-a | 인증 에이전트 전송 불허 |
-e | 세션에 대한 이스케이프 문자를 설정 |
-f | 인증과 전송이 설정된 후에 백그라운드에서 ssh를 설정 |
-l | 원격 시스템에 사용할 로그인 이름을 설정 |
-p | 원격 호스트에 연결할 포트를 지정 |
-v | 디버깅 모드 자세한 정보 표시 모드를 활성 |
-x | X11 전송을 불가능하게 설정 |
-L | 지정된 원격 호스트와 포트에 전송할 로컬 포트 설정 |
-R | 로컬 호스트와 지정된 포트로 전송될 원격 포트 설정 |
[참조]
https://opentutorials.org/module/432/3742
https://wlsvud84.tistory.com/12
'IT 기술' 카테고리의 다른 글
HTTP 상태 코드 (Http Status Code) (0) | 2023.02.18 |
---|---|
[Kafka] 아파치 카프카에 대한 이해 (0) | 2022.05.21 |
REST API에 대한 이해 (0) | 2022.04.29 |
클라우드 강의 노트 (0) | 2022.02.23 |
클라우드 컴퓨팅(Cloud Computing)에 대한 이해 (0) | 2022.02.23 |