← Back to blog

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

Category
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의 더 고급 기능들을 계속해서 학습할 수 있습니다.

즐거운 컴퓨팅 되세요!

 

Akshay Nagpal

작성자 · CloudSigma

댓글

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