Linux와 Windows는 예전에는 치명적인 적이었지만 요즈음에는 훨씬 더 잘 어울립니다. 사실, 이제는 Windows에서도 SSH를 기본적으로 사용할 수 있습니다: 클라이언트와 서버 모두에서요. Windows 관리자로서 Linux 기계도 관리해야 할 때 어떻게 해야 할까요? Linux에서 SSH (Secure Shell) 명령어에 익숙해져야 합니다!
이 글은 블로그 포스트 시리즈인 ‘Linux 세계의 Windows 남자’의 Part IV입니다. 보다 인기 있는 Linux 개념에 대해 알아보려면 Part I, Part II, Part III를 꼭 확인하세요.
이 포스트에서는 Linux에서 SSH를 어떻게 활성화하고, Windows SSH 클라이언트를 어떻게 설정하여 원격 Linux 서버에 연결하는 방법에 대해 모두 알아볼 것입니다.
참고: 모든 예제는 OpenSUSE Linux를 사용합니다.
데스크톱 환경에서 벗어나기
이 시리즈의 첫 번째 포스트에서는 KDE 데스크톱 환경을 사용하는 것을 권장했습니다. OpenSUSE 설정을 진행하면서 아마도 또 다른 매력적인 옵션, OpenSUSE 서버 에디션을 보았을 것입니다.

대부분의 리눅스 배포판(오픈수제를 포함한) 서버 에디션을 설치한 경우 데스크톱이 전혀 없음을 알 수 있습니다. 대부분의 인기 있는 배포판(예: 오픈수제, Ubuntu Server, CentOS)의 서버 에디션은 Windows Server Core와 같이 데스크톱이 없는 형태입니다.
리눅스 문화에서 왜 데스크톱이 일반적으로 배척되는지 이해하려면 CLI(Command Line Interface)와 SSH에 대해 이해해야 합니다.
SSH: 원격 관리의 표준
SSH는 많은 다른 원격 관리 프로토콜과 마찬가지로 클라이언트-서버 기반 시스템입니다. 클라이언트가 네트워크를 통해 원격으로 서버에 연결하여 명령을 실행하거나 파일을 전송할 수 있게 해줍니다. SSH는 리눅스를 원격으로 관리하는 데에 대표적인 표준입니다.
SSH가 오랫동안 사용되어 왔고 리눅스 생태계에 깊게 편입되어 있기 때문에 명령줄 기반의 관리 유틸리티가 리눅스 서버 환경에서 주를 이룹니다. 대부분의 리눅스 서버 배포판은 그래픽 인터페이스를 갖고 있지 않습니다.
리눅스에서 SSH 명령 사용하기
말보다는 실제로 SSH가 어떤 기능을 제공하는지 알아봅시다. 먼저 오픈수제 리눅스에서 SSH를 활성화해 보겠습니다. 이를 위해서 YaST 패키지 매니저를 사용할 것입니다. OpenSUSE에서 YaST를 사용해 SSH를 활성화하려면 다음을 수행하세요:
- 시작 메뉴를 클릭하고 터미널을 입력한 다음, OpenSUSE 설치 시 KDE 데스크탑 매니저를 설치한 경우 Konsole을 선택하세요.
- 터미널에서
sudo yast
를 실행하여 YaST를 엽니다. - YaST에 들어가면 시스템으로 이동한 다음, 화살표를 오른쪽으로 이동하여 서비스 관리자를 선택하고 Enter를 눌러 진행합니다.
- sshd로 이동한 다음, SSH 서비스를 시작하려면
alt+s
를 누릅니다. - 시작 모드를 수동에서 부팅 시 자동으로 변경하려면
alt+r
을 누릅니다. 이렇게 하면 SSH 서버 서비스가 재부팅 후에도 시작됩니다. - 변경 내용을 적용하려면
alt+o
를 눌러 확인합니다.
아래에서 이러한 단계를 실제로 확인할 수 있습니다.

방화벽을 통해 SSH 허용
거의 모든 Linux 배포판에는 Windows와 마찬가지로 시스템을 보호하기 위한 방화벽이 함께 제공됩니다. OpenSUSE의 방화벽에 대해 자세히 알아보려면 여기를 읽어보세요. 원격으로 SSH 서비스에 액세스할 수 있도록 하려면 방화벽을 통과시켜야 합니다. 다음을 수행하세요:
- 터미널에서 다시
sudo yast
를 실행하여 YaST를 시작합니다. - 보안 및 사용자로 이동한 다음, 화살표를 오른쪽으로 이동하여 방화벽을 선택하고 Enter를 눌러 진행합니다.
- Zone -> 공용으로 이동한 다음, 오른쪽에 있는 서비스—포트 패널로 이동합니다.
- 서비스에서
ssh
를 찾기 위해 아래로 스크롤합니다. - 스페이스바로
ssh
를 선택하고alt+d
를 눌러 선택을 추가합니다. - 변경 사항을 적용하려면
alt+a
를 누릅니다.
위의 단계들을 시각적으로 표현한 것을 아래에서 확인할 수 있습니다.

윈도우와 마찬가지로 리눅스에는 방화벽 규칙을 적용할 수 있는 다른 신뢰 수준이 있습니다. 이러한 수준을 존이라고 합니다. 윈도우는 기본적으로 공용, 작업 및 개인 존을 가지고 있습니다. 리눅스는 이보다 훨씬 많은 존을 가지고 있지만, 기본적으로 공용 존으로 설정됩니다.
윈도우에서 리눅스에 연결하기
다행히도 요즘에는 Windows 10에 내장된 SSH 클라이언트가 있습니다. 리눅스 호스트에 연결하려면 명령 프롬프트(cmd)나 PowerShell 콘솔을 열고 연결할 사용자 이름과 IP 또는 호스트 이름을 지정하면 됩니다.
모든 것이 잘 되면, SSH 클라이언트가 지문을 인증하도록 요청할 것입니다. 지문은 대상 IP 주소가 해킹되지 않았는지 확인하기 위한 식별자입니다.
Windows 7을 사용 중이라면, 여전히 리눅스 호스트에 SSH로 연결할 수 있습니다. 단지 여기에서 Microsoft SSH 클라이언트를 다운로드해야 합니다. 이 SSH 클라이언트는 Windows 10에서 사용하는 것과 동일합니다.
yes
를 입력하고 암호를 입력하면 서버에 연결됩니다! 이제 컴퓨터 자체의 터미널을 여는 것과 마찬가지로 명령 줄을 사용할 수 있습니다.
라우터를 통해 SSH(기본 포트 22)를 인터넷에 노출하지 마십시오. 봇들은 항상 인터넷을 순회하면서 열린 SSH 포트를 찾습니다. 봇이 열린 포트를 찾으면 암호를 무차별 대입하여 무차별 대입 공격을 시도할 것입니다.
Windows에서 SSH에서 마우스 지원 활성화하기
네이티브 Windows 10 SSH 클라이언트를 사용하는 것의 큰 단점 중 하나는 (적어도 이 글을 쓰는 시점에서) 마우스 지원이 부족하다는 것입니다. 이는 이전 블로그 게시물에서 배운 대로 midnight commander에서 마우스를 사용할 수 없다는 것을 의미합니다.
다행히도, OpenSSH Windows 클라이언트의 8 버전부터 마우스 지원이 가능합니다! 이 클라이언트를 설치해 봅시다.
- OpenSSH-Win64의 최신 릴리스를 여기에서 다운로드하고 생성된 zip 파일을 추출합니다. 이 튜토리얼에서는 추출한 파일을 ~\Downloads\OpenSSH-Win64에 저장한 것으로 가정합니다.
- PowerShell 콘솔을 열고
cd ~\Downloads\OpenSSH-Win64
를 사용하여 ~\Downloads\OpenSSH-Win64로 이동합니다. .\\ssh -V
명령을 실행하여 SSH 클라이언트 버전을 확인합니다. 이 가이드를 작성하는 시점에서 버전은 8.1.0.0-p1이어야 합니다..\ssh <user>@<ip>
를 사용하여 Linux 서버로 SSH를 실행합니다.- 로그인한 후,
mc
를 실행하여 midnight commander를 실행하여 마우스를 사용할 수 있는지 확인합니다.
위의 모든 단계를 시각적으로 확인할 수 있습니다.
기본 SSH 클라이언트 덮어쓰기
새 버전을 영구적으로 사용하려면 기본 Windows 10 SSH 클라이언트를 덮어씌워야합니다. 이렇게하면 명령 줄에서 ssh를 실행할 때 새 버전(마우스 지원)이 사용됩니다.
클라이언트를 ~\Downloads\OpenSSH-Win64 폴더에 추출 한 경우
- 추출 된 OpenSSH-Win64 폴더를 선택한 영구 폴더로 이동합니다. 이 튜토리얼에서는 C:\users\public\OpenSSH-Win64를 사용합니다.
- 시작으로 이동하고 실행을 클릭 한 다음 sysdm.cpl을 입력하거나 제어판에서 시스템을 엽니다.
- 고급 탭에서 환경 변수를 클릭합니다.
- 시스템 변수 아래에서 Path를 클릭합니다.
- 새로 만들기를 클릭하여 새 경로를 추가하고 SSH 클라이언트의 폴더 경로를 제공합니다(C:\users\public\OpenSSH-Win64이 경우).
- 위로 이동을 클릭하여 %SystemRoot%\system32 폴더 위에 배치합니다. 이렇게하면 명령 줄에
ssh
를 입력할 때 Windows가 여기를 먼저 찾습니다. - PowerShell 콘솔을 열고
ssh -V
를 실행합니다. 버전이 8.1.0.0-p인 것을 확인해야합니다.
이 단계는 아래에 요약되어 있습니다.

%SystemRoot%\system32보다 우선하는 폴더를 선택하면 보안 위험이 발생할 수 있습니다. 누군가가 컴퓨터에 액세스 할 수있는 경우 OpenSSH-Win64 폴더에 바이러스를 삽입하고 cd.exe와 같은 윈도우 유틸리티 이름으로 지정할 수 있습니다.
OpenSSH-Win64 폴더의 읽기 전용 권한을 관리자를 제외한 누구에게도 제한해야 합니다.
- OpenSSH-Win64 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
- 보안 탭 아래에서 고급 버튼을 클릭합니다.
- 상속 비활성화를 클릭하여 사용자 정의 폴더 권한을 허용하고 OpenSSH-Win64 폴더에서 상위 폴더가 권한을 덮어쓰지 못하도록 설정합니다.
- 추가를 선택하고, 관리자 그룹을 찾아 완전한 권한을 부여합니다.
- 추가를 선택하고, 모두 그룹을 찾아 읽기 전용 권한을 부여합니다.
- 이 설정을 OpenSSH-Win64 폴더의 모든 하위 개체에 적용 옵션을 선택하고, 적용을 클릭합니다.
- 이제 OpenSSH-Win64 폴더에 새 파일을 만들어 권한을 테스트할 수 있습니다. Windows는 관리자 권한을 요구해야 할 것입니다.
위의 모든 단계를 시각적으로 표시한 것을 아래에서 확인할 수 있습니다.

Tmux를 사용하여 연결이 끊긴 세션 관리하기
아, 너무 귀찮아요! SSH를 통해 긴 시간이 걸리는 명령을 실행 중인데 인터넷 연결이 끊어졌습니다. 이제 Linux 서버가 어떤 상태인지 전혀 알 수 없습니다! 그 명령은 끝났을까요? 어떻게 다시 가져올 수 있을까요?
SSH와 관련하여 연결이 끊기는 세션이 문제가 될 수 있는데, 다행히도 간단한 해결책이 있습니다. 터미널 멀티플렉서(tmux)가 필요합니다.
Tmux는 터미널 멀티플렉서의 약자이자 프로그램 자체의 이름입니다.
Tmux는 SSH의 세션 관리자입니다. 연결이 끊어져도 세션을 “유지”하고 백그라운드에서 실행시킵니다. 나중에 해당 세션에 다시 연결하거나 여러 세션을 생성하고 이동할 수 있습니다.
tmux를 사용하여 끊어진 세션을 관리하려면 다음과 같이 진행합니다:
- Linux 터미널에서 아래와 같이 실행하여 tmux 유틸리티를 다운로드하고 설치합니다:
sudo zypper install -y tmux
YaST를 사용하여 tmux 유틸리티를 다운로드할 수도 있습니다.

대부분의 Linux 배포판은 다른 명령 줄 패키지 관리자를 가지고 있습니다. OpenSUSE는 zypper를 사용합니다. Arch는 pacman을 사용합니다. Ubuntu는 apt을 사용합니다. Red Hat은 dnf와 yum을 사용합니다. 다행히도, 이러한 패키지 관리자들의 구문은 대체로 유사합니다.
2. Windows 컴퓨터에서 PowerShell 콘솔을 열고 Linux 서버에 SSH로 접속합니다. 이 튜토리얼에서는 사용자 이름을 homelab으로, Linux 서버 IP를 192.168.134.169로 가정합니다.
3. 연결된 상태에서 tmux
를 실행하여 tmux를 엽니다. 하단에 녹색 바가 나타나야 합니다.
4. 텍스트를 출력하는 명령을 실행합니다. 어떤 명령이든 상관없습니다. 이 튜토리얼에서는 neofetch를 사용합니다. ls
도 실행할 수 있습니다.
5. PowerShell을 닫아 세션을 끊습니다. 이 작업은 연결이 끊긴 상황을 모방합니다.
6. SSH를 사용하여 다시 Linux 서버에 연결합니다.
7. 이전 세션에 다시 연결하기 위해 tmux a
를 실행합니다. 여전히 이전 ls
명령의 출력이 보여야 합니다. 끊김으로 인한 데이터 손실 없이 연결이 유지되었습니다!
위의 모든 단계를 시각적으로 표현한 것은 아래에서 확인할 수 있습니다.

Midnight Commander 유틸리티를
tmux
안에서 실행하려고 하면 마우스 지원이 제대로 되지 않을 수 있습니다. 이를 해결하기 위해mc -x
를 실행하면 됩니다.
로그인 시 tmux 활성화
기본적으로 SSH 세션에서는 tmux를 사용할 수 없습니다. 이를 변경하여 SSH 세션에 항상 tmux를 연결하도록 설정할 수 있습니다.
Linux 서버에 SSH로 접속한 것을 가정합니다:
- midnight commander 유틸리티를 엽니다.
2. .bashrc 파일을 선택하고 편집을 누릅니다.
.bashrc
파일은 명령 줄을 통해 로그인할 때마다 실행되는 셸(배치) 스크립트입니다.
3. 아래 셸 스크립트 코드를 텍스트 파일의 맨 아래에 추가합니다.
4. 묻는다면 종료를 선택하고 저장합니다.
5. SSH 세션을 종료하고 다시 연결하여 tmux 자동 연결을 테스트합니다. 하단에 녹색 바가 자동으로 나타나면 tmux 세션에 연결된 것입니다!
이는 tmux
가 할 수 있는 것 중 일부에 불과합니다. 이는 꽤 강력한 다중 작업 프로그램입니다. Linux 관리자에게 가장 자주 사용하는 명령어를 묻는다면 아마도 tmux
일 것입니다.
마무리
리눅스 세계의 윈도우 가이 블로그 시리즈의 최신 글은 여기까지입니다. 다음 설치 관련 내용은 ATA 블로그를 참조해 주세요!