바닥코딩
SSH와 원격접속 본문
SSH(Secure Shell) 은 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 입니다. 유닉스 기반의 서버를 사용하는 경우 서버 PC에 터미널에서 직접 작업을 하는 경우도 존재하지만, 개발자의 입장에서는 인프라쪽 담당자가 아닌 경우 서버에서 직접 작업하기 보다는 개발환경에서 원격 접속을 통해 작업을 하는 경우가 더 일반적입니다
기존의 유닉스 시스템 셸에 원격 접속을 하는 경우에는 Telnet을 보편적으로 사용 하였습니다 그렇지만 Telnet은 암호화가 이루어 지지 않아 보안적으로 위험성이 높습니다. 이 점을 보완하기 위해 암호화 기능을 추가하여 SSH 라는 프로토콜이 세상에 나오게 되었고, 유닉스 기반의 서버에 원격접속을 할때 가장 보편적으로 사용되는 프로토콜이 되었습니다.
SSH 키
SSH의 동작에 대해 살펴보게되면 서버에 접속할 때 비밀번호 대신 Key를 제출하게 됩니다. Key는 공개키와 비공개키로 이루어져 있습니다.
공개키 (public key) : 공개되어 있는 키, 암호화는 가능하지만 복호화는 불가능
비공개키(private key) : 외부에 노출되면 안되는 key, 컴퓨터 내에 저장, 복호화 가능
이 한쌍의 키로 서로 다른 컴퓨터끼리 안전하게 통신하기 위해서 다음과 같은 단계를 거치게 됩니다
- 클라인터 컴퓨터는 연결하고자 하는 서버에 연결 시작
- 통신하고 있는 컴퓨터에 공개키를 복사하여 저장
- 요청을 보내는 클라이언트 컴퓨터에 복사된 공개키와 쌍을 이루는 비공개키와 한 쌍의 키가 맞는지 검사
- 유효성이 입증된 경우 유저는 서버 컴퓨터에 연결
SSH 툴을 이용한 원격접속
명령어 커맨드를 통해서 원격접속을 할 수 도 있겠지만 앞서 소개한 SSH나 Telnet등을 통한 접속을 쉽게 지원해줄 수 있는 툴등을 통해 좀더 간편하게 원격접속을 진행할 수 있습니다. 가장 대중적인 것은 putty이지만 이본 포스팅에서는 mobaXterm 이라는 툴을 통해 원격접속을 해보겠습니다
https://mobaxterm.mobatek.net/download-home-edition.html
mobaXterm 을 설치하면
위와 같은 화면을 볼 수 있습니다. 여기서 왼쪽 상단 Session 버튼을 클릭해 보겠습니다.
이 곳으로 이동하면 어떤 프로토콜로 접속을 할 것인지 선택이 가능합니다 저는 SSH를 선택해 보겠습니다.
host와 유저 포트를 지정하는 화면이 나오게 됩니다. 내가 원격 접속을 진행할 서버의 IP주소를 host에 입력하고 유저 정보가 있아면 유저를 지정해 줍니다 22번 포트가 SSH의 well-known 포트넘버 이지만 원격 서버에 방화벽 설정만 되어 있다면 면 포트는 유동적으로 지정이 가능합니다.
모든 설정을 마치면 아래와 같이 원격접속이 가능하게 됩니다.
'네트워크 & 리눅스 > 리눅스' 카테고리의 다른 글
리눅스 파일 시스템 구조 (0) | 2023.09.24 |
---|---|
리눅스 프로세스 (0) | 2023.07.19 |
Oracle VirtualBox 가상머신 만들기 (0) | 2023.03.06 |
리눅스 배포판(레드햇, 우분투...) (0) | 2023.02.23 |
커널 & 쉘 (0) | 2023.02.23 |