블로그로 돌아가기

Ubuntu에서 SSH를 사용하여 원격 서버에 연결하는 방법

Ubuntu에서 SSH를 사용하여 원격 서버에 연결하는 방법

SSH란 무엇인가요?

SSH는 Secure Shell을 의미합니다. 연결이 암호화되므로 SSH를 통해 원격 컴퓨터에 안전하게 액세스할 수 있습니다. 리눅스 터미널의 ssh 명령어를 사용하면 원격 리눅스 서버에 연결하여 마치 자신의 컴퓨터인 것처럼 작업할 수 있습니다. 이 튜토리얼을 마칠 때쯤이면 다음 환경에서 SSH를 사용하여 원격 서버에 연결하는 방법을 완전히 이해하게 될 것입니다: Ubuntu.

구문

구문은 ssh 명령어를 사용하는 방법에 대한 규칙입니다. 구문의 순서를 바꿀 수는 있지만, 직접적인 형식을 따라야 합니다. 아래는 ssh 명령어를 사용하기 위한 구문 예시입니다:

연결하려는 도메인 이름 또는 IP 주소는 위의 명령어에 표시된 remote_host입니다. 이 구문은 원격 시스템과 로컬 시스템의 사용자 이름이 동일하다고 가정합니다. 하지만 사용자 이름이 다른 경우에는 다음 명령어로 지정할 수 있습니다:

서버에 연결할 때 즉시 비밀번호를 제공하여 신원을 확인해야 합니다. 로컬 세션으로 돌아가려면 exit 명령어를 입력하세요.

SSH 구성 방법

Ubuntu의 기본 sshd 구성 파일은 /etc/ssh/sshd_config에 위치해 있습니다. SSH 구성을 변경하면 SSHD 서버 설정이 자동으로 변경됩니다. 구성을 변경하기 전에 이 명령어를 사용하여 현재 버전의 파일을 백업해 두어야 합니다:

텍스트 편집기를 사용하여 파일을 엽니다:

이 파일의 대부분의 매개변수는 그대로 두는 것이 좋습니다. 하지만 주의 깊게 살펴봐야 할 몇 가지 사항이 있습니다:

포트 선언은 SSHD 서버가 연결을 대기하는 포트를 나타냅니다. 기본값은 22입니다. 특별한 이유가 없다면 이 설정을 변경할 필요가 없습니다:

호스트 키 선언은 글로벌 호스트 키가 위치한 곳을 나타냅니다:

기록해야 할 로그 수준은 이 두 항목으로 표시됩니다. SSH 사용에 문제가 있는 경우, 문제를 식별하는 가장 좋은 방법은 로그 수준을 높이는 것입니다:

이 옵션들은 구성 파일이 안전하지 않을 때 무단 로그인을 방지하기 위한 로그인 정보를 정의합니다:

이러한 매개변수 구성은 X11 포워딩 기능이라고 합니다. 이 방식을 통해 원격 시스템의 GUI를 로컬 시스템에 표시할 수 있습니다. SSH 클라이언트에 -X 옵션으로 연결하는 동안 서버에서 이 옵션을 활성화해야 합니다.

변경한 후에는 CTRL-X와 Y를 누른 다음 Enter를 눌러 파일을 저장하고 닫습니다. /etc/ssh/sshd_config의 설정을 변경한 경우, 변경 사항을 적용하려면 sshd 서버를 재시작해야 합니다:

Ubuntu 16.04 또는 Debian Jessie와 같은 systemd 시스템의 경우 다음 명령어를 사용합니다:

모든 것이 완벽하게 작동하는지 확인하기 위해 변경 사항을 철저히 테스트하십시오. 변경 사항을 적용할 때는 몇 개의 세션을 활성화된 상태로 유지하는 것이 좋습니다. 이렇게 하면 필요한 경우 구성을 복구할 수 있습니다.

키를 사용하여 SSH에 로그인하려면 어떻게 해야 할까요? 비밀번호를 사용하여 원격 시스템에 로그인하는 것도 좋지만, 키 기반 인증을 설정하는 것이 가장 좋습니다.

키 기반 인증이란 무엇인가요?

키 기반 인증은 개인 키(private key)와 공개 키(public key)라고 하는 두 개의 키 쌍을 생성합니다. 개인 키는 사용자의 컴퓨터에 있으며 보호되고 비밀로 유지됩니다. 공개 키는 누구에게나 공개되거나 액세스하려는 모든 서버에 저장될 수 있습니다. 키 쌍을 사용하여 연결을 시도하면 서버는 공개 키를 사용하여 사용자 컴퓨터를 위한 메시지를 생성합니다. 사용자는 개인 키를 사용해야만 이 메시지를 읽을 수 있습니다. 그런 다음 사용자 컴퓨터는 서버로 응답을 다시 보내고, 서버는 사용자가 진짜임을 알게 됩니다. 키를 설정한 후에는 전체 프로세스가 백그라운드에서 자동으로 완료됩니다.

SSH 키 생성 방법

SSH 키는 로그인하려는 컴퓨터에서 생성해야 합니다. 일반적으로 이는 로컬 컴퓨터입니다. 명령줄에 다음을 입력하십시오:

그런 다음 엔터 키(ENTER KEY)를 눌러 기본값을 수락합니다. 그러면 ~/.ssh/id_rsa.pub 및 ~/.ssh/id_rsa에 키가 생성됩니다. 다음으로, 아래 명령어를 입력하여 .ssh 디렉토리로 이동합니다:

다음은 파일 권한입니다:

list files in .ssh folder

보시다시피, 소유자만 id_rsa 파일을 읽고 쓸 수 있습니다. 따라서 이 파일을 안전하게 보관해야 합니다. 하지만 id_rsa.pub 파일은 공유할 수 있으며 이 작업에 적합한 권한을 가집니다. 다음 단계는 이 구문을 사용하여 공개 키를 서버로 전송하는 것입니다:

그러면 SSH 세션이 시작되며 인증을 위해 비밀번호를 사용해야 합니다. 비밀번호를 입력하면 공개 키가 서버’의 인증된 키 파일로 복사되어 다음번에는 비밀번호 없이 로그인할 수 있게 됩니다.

비밀번호 인증을 비활성화하는 방법

SSH 키가 생성되면 비밀번호 전용 인증을 비활성화하여 서버의 보안을 향상시킬 수 있습니다. 콘솔을 사용하는 대신 서버에 설치된 공개 키와 함께 개인 키를 사용하여 서버에 로그인할 수 있습니다.

참고: 이 단계를 진행하기 전에 서버에 공개 키를 설치했는지 확인하십시오. 그렇지 않으면 접속이 차단됩니다!

이 명령어를 사용하여 sshd 설정 파일을 엽니다:

맨 앞의 #을 삭제하여 password Authentication check라고 적힌 줄의 주석을 해제합니다. 그런 다음 값을 “no”로 변경할 수 있습니다:

PubkeyAuthentication 및 ChallengeResponseAuthentication은 기본적으로 설정되어 있으며 다음과 같이 보여야 합니다:

이 두 설정은 변경하지 않아야 합니다. 그런 다음 변경 사항을 적용한 후 파일을 저장하고 닫습니다. 다음으로, 아래 명령어를 사용하여 SSH 데몬을 재시작합니다:

마지막으로 비밀번호 인증이 비활성화되었으며, 이제 SSH 키 인증을 통해서만 서버에 액세스할 수 있습니다.

결론

이 튜토리얼에서는 Ubuntu에서 SSH를 사용하여 원격 서버에 안전하게 연결하는 방법을 보여드렸습니다. 시스템 관리자라면 SSH 사용법을 배우는 것이 필수적이므로, 이 튜토리얼을 마스터한 후에는 SSH의 더 고급 기능들을 계속해서 학습할 수 있습니다.

즐거운 컴퓨팅 되세요!

 

author

Akshay Nagpal

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

아직 댓글이 없습니다. 첫 번째로 작성해 보세요.