Linux를 조금이라도 사용해 본 적이 있다면 SSH라는 도구에 대해 들어본 적이 있을 것입니다. SSH(Secure Shell)는 클라이언트와 원격 서버 간에 안전한 연결을 설정하기 위한 네트워크 프로토콜로, 사용자가 네트워크를 통해 다양한 종류의 컴퓨터에 안전하게 원격 로그인할 수 있도록 설계되었습니다. 이 글에서는 SSH를 설정하고 SSH 키를 서버에 손쉽게 복사하는 방법을 소개합니다.
SSH 설치하기
시작하려면 먼저 SSH 서버를 설치해야 합니다. 소프트웨어 센터나 패키지 관리자에서 openssh-server 패키지를 검색하여 설치할 수 있습니다. 또는 서버 환경이거나 터미널 사용을 선호한다면, 터미널을 열고 아래 명령어를 입력하세요:
# Ubuntu/Debian sudo apt install openssh-server # Fedora/CentOS/RHEL sudo dnf install openssh-server
Linux에서 SSH 활성화하기
OpenSSH 서버가 시스템에 설치되면, systemd 유닛을 시작하고 활성화해야 합니다. 이를 위해 터미널에 다음 명령어를 입력하기만 하면 됩니다:
sudo systemctl enable --now ssh
SSH 키 생성하기
OpenSSH 서버 설치가 완료되면 SSH 키 쌍(key pair)을 생성할 수 있습니다. 진행하기 전에 기존 키 쌍이 있는지 반드시 확인하세요. 새 키를 생성하면 기존 키가 덮어쓰여질 수 있기 때문입니다.
기존 키 쌍이 있는지 확인하려면 다음 명령어를 사용합니다:
ls -la ~/.ssh
기존 키 쌍이 있다면 위 명령어 실행 시 "id_rsa"와 "id_rsa.pub" 파일이 표시됩니다.
기존 SSH 키 쌍이 없음을 확인했다면 새 키를 생성하면 됩니다. 만약 기존 키가 있다면, 분실을 방지하기 위해 반드시 백업해 두세요.
새 키를 생성하려면 다음 명령어를 사용합니다:
ssh-keygen -t rsa -b 4096
위 명령어는 ssh-keygen 유틸리티를 호출하여 대화형 방식으로 SSH 키 쌍을 생성합니다. -t 옵션은 생성할 키의 유형을 지정하며, 여기서는 RSA 키를 생성합니다.
-b 옵션은 키의 비트 수를 지정하는 데 사용됩니다. RSA 키의 경우 최소 비트 크기는 1024이며, 옵션을 지정하지 않으면 기본값인 3072비트로 키가 생성됩니다.
SSH 키는 기본 위치에 저장하는 것이 좋습니다. 그래야 키를 사용해 SSH에 연결할 때마다 경로를 직접 입력하지 않아도 되기 때문입니다.
패스프레이즈(passphrase)로 키를 암호화하고 싶지 않다면 Enter 키를 눌러 건너뛰면 됩니다.
원격 서버에 키 복사하기
새로운 SSH 키 쌍을 생성했다면, 이제 관리하려는 원격 머신에 해당 키를 업로드해야 합니다.
가장 효율적인 방법은 ssh-copy-id 명령어를 사용하는 것입니다. 명령어는 다음과 같이 사용합니다:
ssh-copy-id remote_user@remote_IP
다른 파일명을 가진 키 파일을 사용 중이라면, 아래 명령어로 키 파일의 경로를 지정할 수 있습니다.
ssh-copy-id -i ~/.ssh/id_rsa remote_user@remote_IP
원격 머신에 처음 로그인하는 경우에는 지문(fingerprint)을 승인해야 합니다.
그다음 원격 사용자의 SSH 비밀번호를 입력합니다.
인증이 완료되면 ssh-copy-id 명령어가 id_rsa.pub 키의 내용을 원격 머신의 "~/.ssh/authorized_keys" 파일에 추가한 뒤 연결을 종료합니다.
원격 머신에 로그인하기
위의 모든 단계를 성공적으로 완료했다면, 이제 비밀번호 없이도 원격 서버에 로그인할 수 있습니다.
다음 명령어로 직접 확인해 보세요:
ssh remote_user@remote_ip
키에 패스프레이즈를 설정하지 않았다면 자동으로 로그인됩니다.
자주 묻는 질문(FAQ)
1. SSH는 안전한가요?
SSH는 인증된 사용자가 원격 시스템에 로그인할 수 있도록 해주는 강력한 보안 도구입니다. 하지만 그 안전성은 결국 설정 파일에 달려 있습니다. 설정이 되어 있지 않거나 잘못 구성된 SSH 서버는 해커나 제3자의 접근에 취약할 수 있습니다. 따라서 SSH 설치 직후 반드시 보안 설정을 점검해야 합니다.
2. SSH authorized_keys 파일은 어디에 있나요?
SSH authorized_keys 파일은 각 사용자의 공개 키 파일을 담고 있으며, 어떤 사용자가 서버에 로그인할 수 있는지 지정합니다. Linux에서 authorized_keys 파일은 일반적으로 사용자 홈 디렉터리의 ".ssh" 폴더 안에 위치합니다.
3. ssh-copy-id 권한 거부(permission denied) 오류는 어떻게 해결하나요?
이 오류는 원격 서버에 이미 공개 키가 설정되어 있고 비밀번호 인증이 비활성화된 경우에만 발생합니다. 이 문제를 해결하려면 먼저 서버에 로그인한 뒤, "/etc/ssh/sshd_config" 파일에서 비밀번호 인증을 활성화하고, ssh-copy-id 명령어를 다시 실행하세요.
새 키 파일 복사가 완료되면 반드시 비밀번호 인증 옵션을 다시 비활성화하는 것을 잊지 마세요.
마무리
이제 SSH를 설정하고 사용하는 방법을 익혔으니, 다음으로 할 일은 SSH 설정을 안전하게 강화하는 것입니다. Windows를 사용 중이라면 Windows에서 SSH 키 쌍을 생성하는 방법도 함께 알아두면 좋습니다.