원격 접속
원격 접속이란 한 컴퓨터(클라이언트 컴퓨터)에서 다른 위치의 원격 컴퓨터(호스트 컴퓨터)에 연결하는 기술입니다. 네트워크로 연결된 컴퓨터에 원격으로 접속하는 방법은 여러 가지가 있습니다. 그 중에서도 대표적인 2가지를 살펴봅니다.
telnet
ssh
telnet(텔넷)
telnet 명령은 호스트 컴퓨터(서버)의 telnet 서비스가 동작 중일 때 사용 가능합니다. 접속하기 위해서는 원격 호스트의 로그인 정보(사용자명과 비밀 번호)가 필요합니다. 텔넷(TELNET)은 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜이다. RFC15를 시작으로 1969년에 개발되었으며 최초의 인터넷 표준들 가운데 하나로서 IETF STD 8로 표준화되었다.
출처: 위키백과 https://ko.wikipedia.org/wiki/%ED%85%94%EB%84%B7
텔넷은 데이터를 암호화 처리하지 않고 평문(Plain Text)으로 보내기 때문에 보안에 취약합니다. 현재는 이 문제 때문에 ssh를 사용하는 추세입니다.
ssh(Secure Shell)
ssh 또한 telnet과 마찬가지로 원격 접속을 위한 명령입니다. ssh로 원격 호스트에 접속하고 로그인할 수 있습니다.
시큐어 셸(Secure Shell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.
출처: 위키백과 https://ko.wikipedia.org/wiki/%EC%8B%9C%ED%81%90%EC%96%B4_%EC%85%B
ssh는 telnet과는 달리 암호화되어 통신합니다. 무료로 제공되는 OpenSSH를 구축하여 ssh 명령을 활용할 수 있습니다. OpenSSH 서버는 sshd(SSH server daemon)라고 부릅니다.
오픈SSH(OpenSSH, OpenBSD Secure Shell)는 ssh 프로토콜을 이용하여 암호화된 통신 세션을 컴퓨터 네트워크에 제공하는 컴퓨터 프로그램의 모임이다. SSH 커뮤니케이션스 시큐리티가 제공하는 사유 시큐어 셸 소프트웨어 제품군을 대체할 목적으로 오픈 소스로 작성되었다. 테오 드 라트의 주도 하에 오픈SSH는 보안을 중시하는 오픈BSD 프로젝트의 일부로 개발되었다. 이 프로젝트의 개발은 기부로 운영된다.
출처: 위키백과 https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88SSH
ssh 원격 접속 설정하기
호스트 컴퓨터: sshd 구성 확인
ssh로 원격 접속하기 위해 호스트 컴퓨터의 sshd 동작 여부를 확인해야 합니다. 우분투에는 기본적으로 sshd가 설치되어 있지 않습니다. 다음처럼 설치 여부를 확인하고 설치할 수 있습니다.
※sshd는 openssh-server 패키지로 제공됩니다.
dpkg -l | grep openssh-server
위 명령을 내리면 화면에 아무 것도 나타나지 않습니다. 아직 설치되어 있지 않기 때문입니다. 아래 명령을 통해 설치해봅시다.
sudo apt install openssh-server
설치가 끝나면 sshd의 가동 상태를 살펴봅니다. 아래 명령을 입력해 ‘active(활성)’임을 확인하세요.
systemctl status sshd
다른 컴퓨터에서 이 컴퓨터(호스트 컴퓨터)로 접속하기 위해, 아래 명령을 통해 IP 주소를 살펴봅니다.
hostname -I
※여기서 나오는 IP 주소를 잘 메모해둡니다.
ssh 원격 접속하기
클라이언트 컴퓨터에서 접속하기: 리눅스의 경우
클라이언트 컴퓨터가 리눅스인 경우, ssh 명령을 통해 접속합니다. 여기서는 동일한 네트워크에 동작하는 컴퓨터일 경우를 상정합니다. 아래와 같이 명령을 입력합니다. 192.168.1.32는 위에서 메모했던 호스트 컴퓨터의 IP 주소입니다.
ssh 192.168.1.32
※특정 호스트에 최초로 SSH 접속 시에 아래와 같이 RSA key fingerprint로 접속여부(yes/no)를 확인합니다.
The authenticity of host ‘192.168.1.32 (192.168.1.32)’ can’t be established.
ECDSA key fingerprint is SHA256:…
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes를 입력하면, 서버의 아이디와 패스워드를 입력한 뒤, 호스트에 접속할 수 있습니다. 로그인에 성공한 경우, 작업을 완료했다면 exit를 입력해 빠져나올 수 있습니다.
※서버와 클라이언트의 사용자명이 동일하다면, 아이디 입력은 생략됩니다.
클라이언트 컴퓨터에서 접속하기: 윈도우의 경우
클라이언트 컴퓨터가 윈도우(Windows)인 경우, PuTTY와 같은 ssh 클라이언트를 설치하여 접속할 수 있습니다.
PuTTY(퍼티)는 SSH, 텔넷, rlogin, raw TCP를 위한 클라이언트로 자유 및 오픈 소스 단말 에뮬레이터 응용 프로그램이다. PuTTY라는 이름에는 특별한 뜻이 없으나 tty는 유닉스 전통의 터미널의 이름을 가리키며 teletype를 짧게 줄인 것이다.
출처: 위키백과 https://ko.wikipedia.org/wiki/PuTTY
https://www.putty.org/ 에 접속하여, ‘You can download PuTTY here.’을 클릭합니다. 32/64비트 중에 알맞은 버전으로 다운로드하여 설치하세요. 시작 메뉴에서 PuTTY를 찾아 실행합니다. PuTTY Configuration 화면이 나타납니다. 호스트 이름 또는 IP 주소(Host Name or IP address)란에 위에서 메모했던 호스트 컴퓨터의 IP 주소를 입력하고, 하단의 Open 단추를 클릭합니다.
서버의 아이디와 패스워드를 입력하면 접속됩니다. 작업을 완료했다면 exit를 입력해 빠져나올 수 있습니다.