이전 글에서는 GUI 인터페이스에서 설정을 활성화하여 Cisco 스위치에 SSH 접속을 허용하는 방법을 소개했습니다. 암호화된 연결을 통해 스위치 CLI에 접근할 수 있다는 점에서 유용하지만, 여전히 사용자 이름과 비밀번호에만 의존한다는 한계가 있습니다.
높은 보안이 요구되는 민감한 네트워크 환경에서 이 스위치를 운영하고 있다면, SSH 연결에 공개 키 인증(public key authentication)을 활성화하는 것을 고려해 볼 만합니다. 실제로 최대 수준의 보안을 위해서는 사용자 이름/비밀번호와 공개 키 인증을 함께 적용하도록 설정할 수도 있습니다.
이 글에서는 SG300 Cisco 스위치에서 공개 키 인증을 활성화하는 방법과 puTTYGen을 사용해 공개 키·개인 키 쌍을 생성하는 과정을 살펴보겠습니다. 이어서 새 키로 로그인하는 방법과 함께, 키만으로 로그인할지 아니면 개인 키와 함께 사용자 이름/비밀번호 입력을 강제할지 구성하는 방법까지 단계별로 안내합니다.
참고: 이 튜토리얼을 시작하기 전에 스위치에서 SSH 서비스가 이미 활성화되어 있는지 확인하세요. 활성화 방법은 앞서 언급한 이전 글을 참조하시기 바랍니다.
공개 키 기반 SSH 사용자 인증 활성화
전반적으로 SSH에 공개 키 인증을 적용하는 과정은 어렵지 않습니다. 이 예제에서는 웹 기반 GUI를 사용해 기능을 활성화하는 방법을 보여드리겠습니다. CLI 인터페이스로도 시도해 보았지만, 제 개인 RSA 키 형식을 받아들이지 않았습니다.
CLI 방식이 정상 작동하면 GUI 없이 동일한 작업을 수행할 수 있는 CLI 명령어로 이 글을 업데이트할 예정입니다. 우선 Security(보안)를 클릭한 뒤 SSH Server(SSH 서버), 마지막으로 SSH User Authentication(SSH 사용자 인증)을 클릭합니다.

오른쪽 창에서 SSH User Authentication by Public Key(공개 키 기반 SSH 사용자 인증) 옆의 Enable(활성화) 확인란을 체크합니다. 변경 사항을 저장하려면 Apply(적용) 버튼을 클릭하세요. Automatic login(자동 로그인) 옆의 Enable 버튼은 아직 체크하지 마세요. 이에 대해서는 아래에서 자세히 설명하겠습니다.
이제 SSH 사용자 이름을 추가해야 합니다. 사용자를 추가하기 전에 먼저 공개 키와 개인 키를 생성해야 합니다. 이 예제에서는 puTTY와 함께 제공되는 프로그램인 puTTYGen을 사용하겠습니다.
개인 키 및 공개 키 생성
키를 생성하려면 먼저 puTTYGen을 실행합니다. 빈 화면이 나타나며, 아래에 표시된 기본 설정은 변경할 필요가 없습니다.

Generate(생성) 버튼을 클릭한 후 진행률 표시줄이 끝까지 차오를 때까지 빈 영역에서 마우스를 계속 움직입니다.

키 생성이 완료되면 패스프레이즈(passphrase)를 입력해야 합니다. 패스프레이즈는 기본적으로 키를 잠금 해제하는 비밀번호 역할을 합니다.

무차별 대입(brute-force) 공격으로부터 키를 보호하려면 긴 패스프레이즈를 사용하는 것이 좋습니다. 패스프레이즈를 두 번 입력한 후 Save public key(공개 키 저장)와 Save private key(개인 키 저장) 버튼을 클릭합니다. 이 파일들은 반드시 안전한 위치에 보관하세요. 가급적이면 비밀번호를 입력해야 열 수 있는 암호화 컨테이너에 저장하는 것이 좋습니다. VeraCrypt로 암호화 볼륨을 만드는 방법을 다룬 글도 참고해 보세요.
사용자 및 키 추가
이제 앞서 작업하던 SSH User Authentication 화면으로 돌아갑니다. 여기에서 두 가지 옵션 중 선택할 수 있습니다. 먼저 Administration(관리) – User Accounts(사용자 계정)로 이동해 현재 로그인용 계정이 무엇인지 확인합니다.

예시에서는 스위치에 접근하기 위한 akishore라는 계정이 하나 있습니다. 현재 이 계정으로 웹 기반 GUI와 CLI 모두에 접근할 수 있습니다. SSH User Authentication 페이지로 돌아가면, SSH User Authentication Table (by Public Key)에 추가할 사용자 이름은 Administration – User Accounts에 등록된 것과 동일하게 할 수도 있고 다르게 할 수도 있습니다.
동일한 사용자 이름을 선택하면 Automatic Login 아래의 Enable 버튼을 체크할 수 있으며, 이후 스위치에 로그인할 때 개인 키의 사용자 이름과 비밀번호만 입력하면 곧바로 접속됩니다.
반대로 다른 사용자 이름을 선택하면, 먼저 SSH 개인 키의 사용자 이름과 비밀번호를 입력하라는 프롬프트가 나타나고, 이어서 일반 사용자 이름과 비밀번호(Admin – User Accounts에 등록된 것)를 추가로 입력해야 합니다. 추가 보안을 원한다면 다른 사용자 이름을 사용하고, 그렇지 않다면 기존 계정과 같은 이름으로 지정하는 것이 편리합니다.
Add(추가) 버튼을 클릭하면 Add SSH User(SSH 사용자 추가) 창이 나타납니다.

Key Type(키 유형)이 RSA로 설정되어 있는지 확인한 뒤, 메모장 같은 프로그램으로 앞서 저장한 공개 SSH 키 파일을 엽니다. 전체 내용을 복사해 Public Key(공개 키) 입력란에 붙여넣습니다. Apply(적용)를 클릭하고, 상단에 Success(성공) 메시지가 표시되면 Close(닫기)를 클릭하면 됩니다.
개인 키로 로그인하기
이제 개인 키와 비밀번호를 사용해 로그인만 하면 됩니다. 이 시점에서 로그인을 시도하면 자격 증명을 두 번 입력해야 합니다. 한 번은 개인 키용, 한 번은 일반 사용자 계정용입니다. 자동 로그인을 활성화하면 개인 키의 사용자 이름과 비밀번호만 입력하면 됩니다.
puTTY를 열고 평소처럼 Host Name(호스트 이름) 상자에 스위치의 IP 주소를 입력합니다. 단, 이번에는 puTTY에 개인 키도 불러와야 합니다. Connection(연결)을 확장한 다음 SSH를 확장하고 Auth를 클릭합니다.

Private key file for authentication(인증용 개인 키 파일) 아래의 Browse(찾아보기) 버튼을 클릭해 앞서 puTTYGen에서 저장한 개인 키 파일을 선택합니다. 이후 Open(열기) 버튼을 클릭해 연결합니다.
첫 번째 프롬프트는 login as이며, SSH 사용자로 추가한 사용자 이름을 입력하면 됩니다. 기본 사용자 계정과 동일한 이름을 사용했다면 큰 차이가 없습니다.

예시에서는 두 사용자 계정 모두 akishore를 사용했지만, 개인 키용과 기본 사용자 계정용으로 서로 다른 비밀번호를 설정했습니다. 원한다면 비밀번호를 동일하게 맞출 수도 있지만, 특히 자동 로그인을 활성화하는 경우 굳이 그럴 필요는 없습니다.
스위치에 접속할 때마다 두 번 로그인하는 것이 번거롭다면, SSH User Authentication 페이지에서 Automatic login 옆의 Enable 확인란을 체크하세요.

이 옵션이 활성화되면 이제 SSH 사용자의 자격 증명만 입력하면 곧바로 로그인됩니다.

절차가 다소 복잡해 보일 수 있지만 직접 사용해 보면 논리가 자연스럽게 이해될 것입니다. 앞서 언급했듯이 개인 키를 올바른 형식으로 변환하는 데 성공하면 CLI 명령어도 정리해 공유할 예정입니다. 여기의 지침을 따르면 SSH를 통한 스위치 접근이 훨씬 더 안전해질 것입니다. 진행 중 문제가 발생하거나 궁금한 점이 있다면 댓글로 남겨 주세요.