데비안 리눅스 설치 후 필수 설정 2 – SSH 설정과 사용법
데비안 리눅스 설치 후 반드시 진행해야 하는 두번째 필수 설정. systemctl로 SSH 서비스 상태를 확인하고, apt로 openssh-server를 설치하여 SSH 원격 접속을 활성화하는 과정을 안내한다.
윈도우와 마찬가지로, 데비안 리눅스 역시 설치한 후 필수적으로 해야 하는 설정들이 몇 가지 있다. 그중 (필자 생각으로는) 두 번째로 해줘야 하는 설정인 SSH 설정에 대해 알아보자.
SSH(Secure SHell)이란?
SSH는 텔넷(Telnet)의 암호화 버전으로, 윈도우에서 사용하는 원격 데스크탑이나 팀뷰어 같은 원격 연결 수단이다. SSH를 사용하면 다른 장소에 있는 리눅스 시스템에 원격으로 접속하여 명령을 실행하고 파일을 관리할 수 있다. 대부분 서버의 역할을 감당하며 어딘가에 처박혀 있을 리눅스 시스템에 접근하기 위해 필요한 아주 유용하고 기본적인 도구 되겠다. 보통 TCP 22번 포트를 사용한다.
SSH 데몬의 동작 상태 확인
이 블로그의 데비안 리눅스 설치 방법을 따라 설치된 리눅스 시스템이라면 기본적으로 동작하고 있겠으나, 혹 아닐 경우도 있으니 먼저 SSH가 설치되어 있는지 확인한다. systemctl status ssh 명령을 입력하고 엔터를 누르자. (아래 예에서는 sudo를 함께 사용했다.)
newuser@debian:/$ sudo systemctl status ssh ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled) Active: active (running) since Tue 2024-11-05 15:34:08 KST; 1h 23min ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 545 (sshd) Tasks: 1 (limit: 19041) Memory: 8.4M CPU: 283ms CGroup: /system.slice/ssh.service └─545 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Loaded와 Active 항목을 보면, 설치가 되어 있으며, 동작 중인 것으로 표시되고 있다. 혹은 아래와 같이 나올 때도 있을 것이다.
newuser@debian:~$ sudo systemctl status ssh [sudo] newuser 암호: Unit ssh.service could not be found.
이 경우에는, SSH 프로그램이 설치되어 있지 않고 (당연히) 동작도 하지 않는다는 얘기다. 이럴 경우에는 SSH 데몬을 설치해 주어야 한다.
SSH 데몬 설치 방법
SSH 데몬이 존재하지 않는다면, 직접 설치해 주어야 한다. apt install openssh-server라고 입력하고 엔터를 친다.
newuser@debian:~$ sudo apt install openssh-server 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다... 완료 상태 정보를 읽는 중입니다... 완료 The following additional packages will be installed: libwrap0 openssh-sftp-server runit-helper 제안하는 패키지: molly-guard monkeysphere ssh-askpass ufw 다음 새 패키지를 설치할 것입니다: libwrap0 openssh-server openssh-sftp-server runit-helper 0개 업그레이드, 4개 새로 설치, 0개 제거 및 0개 업그레이드 안 함. 583 k바이트 아카이브를 받아야 합니다. 이 작업 후 2,327 k바이트의 디스크 공간을 더 사용하게 됩니다. 계속 하시겠습니까? [Y/n] 받기:1 http://deb.debian.org/debian bookworm/main amd64 openssh-sftp-server amd64 1:9.2p1-2+deb12u3 [65.8 kB] 받기:2 http://deb.debian.org/debian bookworm/main amd64 runit-helper all 2.15.2 [6,520 B] 받기:3 http://deb.debian.org/debian bookworm/main amd64 libwrap0 amd64 7.6.q-32 [54.9 kB] 받기:4 http://deb.debian.org/debian bookworm/main amd64 openssh-server amd64 1:9.2p1-2+deb12u3 [456 kB] 내려받기 583 k바이트, 소요시간 0초 (8,042 k바이트/초) 패키지를 미리 설정하는 중입니다... Selecting previously unselected package openssh-sftp-server. (데이터베이스 읽는중 ...현재 33758개의 파일과 디렉터리가 설치되어 있습니다.) Preparing to unpack .../openssh-sftp-server_1%3a9.2p1-2+deb12u3_amd64.deb ... Unpacking openssh-sftp-server (1:9.2p1-2+deb12u3) ... Selecting previously unselected package runit-helper. Preparing to unpack .../runit-helper_2.15.2_all.deb ... Unpacking runit-helper (2.15.2) ... Selecting previously unselected package libwrap0:amd64. Preparing to unpack .../libwrap0_7.6.q-32_amd64.deb ... Unpacking libwrap0:amd64 (7.6.q-32) ... Selecting previously unselected package openssh-server. Preparing to unpack .../openssh-server_1%3a9.2p1-2+deb12u3_amd64.deb ... Unpacking openssh-server (1:9.2p1-2+deb12u3) ... runit-helper (2.15.2) 설정하는 중입니다 ... openssh-sftp-server (1:9.2p1-2+deb12u3) 설정하는 중입니다 ... libwrap0:amd64 (7.6.q-32) 설정하는 중입니다 ... openssh-server (1:9.2p1-2+deb12u3) 설정하는 중입니다 ... Creating config file /etc/ssh/sshd_config with new version Creating SSH2 RSA key; this may take some time ... 3072 SHA256:4qcjiT/SPKDgVumH5pN8GaI4WN2ag4HzY0Yf7vvpD1A root@debian (RSA) Creating SSH2 ECDSA key; this may take some time ... 256 SHA256:xFd0GH9apekDQHILjIBATi5ycvQ2SC3Xxv6tzcITkzo root@debian (ECDSA) Creating SSH2 ED25519 key; this may take some time ... 256 SHA256:Ir5tChXthopxZUGSWCNu/LBS+2pKb/t6Tnr5ZuuLdtQ root@debian (ED25519) Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service. Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service. rescue-ssh.target is a disabled or a static unit, not starting it. ssh.socket is a disabled or a static unit, not starting it. Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+deb12u8) ... newuser@debian:~$
별다른 문제가 없다면, 위 예와 같이 다운로드하여 설치가 진행된다. 마지막으로 데몬이 제대로 동작하는지 확인하기 위해 systemctl status ssh 명령을 입력하고 엔터를 누르자.
위에서 한번 보았듯, Loaded와 Active 항목이 활성화되어 있으면, 정상 동작한다는 의미이다. XSHELL 같은 SSH 접속 클라이언트를 이용해 접속하여 사용하면 되겠다.
SSH에 관한 추가적인 팁과 정보들
- SSH를 꼭 설치해야 하는가?
- SSH가 꼭 필수는 아니지만 매우 일반적이고 광범위하게 사용할 수 있다. 때문에 설치할 것을 권장한다. 하지만 데스크톱 환경이나 로컬 환경에서만 사용한다면 굳이 설치하지 않아도 무방하다.
- SSH로 할 수 있는 작업은 어떤 것이 있는가?
- SSH의 기본 용도는 원격으로 쉘 콘솔에 접속하는 것이다. 더해서 SCP(Secure Copy)나 SFTP(SSH File Transfer Protocol)를 이용해 파일 전송도 가능하며, 리눅스의 원격 데스크톱인 X11 포워딩에도 활용할 수 있다.
- SSH가 사용하는 포트는?
- TCP 22번을 표준 포트로 사용하며, 사용자가 지정한 포트를 사용해도 무방하다.
- SSH와 텔넷(Telnet)의 차이는?
- Telnet은 데이터를 평문으로, SSH는 암호화하여 통신한다.
- SSH 클라이언트 프로그램은 어떤 것이 있는가?
- Putty, XSHELL 등이 있으며, 모바일에서도 클라이언트 프로그램을 사용할 수 있다.
- 키를 저장한다는 게 어떤 의미인가?
- SSH는 암호화 통신을 제공한다. 키는 메시지를 암호화하거나 반대로 해독할 때 사용되는 것으로, 각각의 호스트마다 고유의 키를 가지게 된다. SSH 클라이언트가 서버에 처음 접속할 경우 해당 서버의 키를 가져오는 이유는 암호화-복호화에 사용하기 위해서이며, 다음 접속 때 서버 검증에도 활용된다.