SSH 인증키 생성 및 패스워드 없이 서버 접근하는 방법
인증키에 생성 및 서버 접근에 대해서 알아보기 전에 간략하게 SSH가 무엇인지 알아보도록 합시다.
SSH(Secure Shell)는 원격 컴퓨터를 안전하게 제어하기 위한 네트워크 프로토콜입니다.
사용자가 특정 네트워크에 연결된 다른 컴퓨터에 접근하고, 명령을 실행하거나 파일을 전송할 수 있도록 해주는 도구
암호화 : SSH는 모든 통신을 암호화하여 네트워크를 통해 전송되는 데이터의 안전성을 보장합니다. 이로 인해 중간에서 데이터를 가로채도 이해할 수 없게 되어, 기밀 정보의 유출을 방지합니다.
인증 : SSH는 사용자 인증을 위해 비밀번호 또는 디지털 서명이 포함된 SSH 키를 사용할 수 있습니다. SSH 키를 사용하면 비밀번호를 매번 입력하지 않고도 안전하게 접속할 수 있습니다.
포트 포워딩 : SSH는 네트워크 서비스를 안전하게 터널링하는 기능을 제공합니다. 이는 원격 서버에 안전하게 접근하거나, 보안이 약한 프로토콜의 통신을 보호하는 데 사용됩니다.
HOST : MAC OS
SERVER : Rocky Linux 9.x Version
SSH 키 생성 맥의 터미널을 열고 ssh-keygen -t rsa 명령어를 실행
RSA 알고리즘을 사용하는 SSH 키를 생성합니다.
키를 생성하면서 키의 저장 위치나 비밀번호에 대한 질문이 나옴(첫번째 사진 참고)
키의 저장 위치를 변경하거나 비밀번호를 설정하고 싶지 않다면, 그냥 엔터를 눌러 기본 설정을 사용하면 됩니다.
이 과정을 마치면 ~/.ssh/id_rsa라는 비공개 키와 ~/.ssh/id_rsa.pub라는 공개 키가 생성됩니다. 비공개 키는 절대로 외부에 노출되어서는 안되는 보안 정보입니다.
$ ssh-keyge -t rsa
$ ls ~/.ssh
2. 공개 키를 리눅스 서버에 복사 다음
맥의 공개 키를 리눅스 서버에 복사해야 합니다. ssh-copy-id 명령어를 이용
$ ssh-copy-id [사용자@서버ip]
복사 완료 후 서버 측에서 ls -l ~/.ssh 디렉터리를 확인
하단 사진처럼 인증키가 있으면 설정 완료.
위에 단계까지 설정 후 다시 ssh 접근을 시도하면 비밀번호 없이 접근 가능
추가적으로 패스워드 로그인을 막아야 보안에 좋기 때문에 하단 설정은 개인 환경에 맞춰서 진행합니다.
[44][06:07:14]admin:~$ sudo vi /etc/ssh/sshd_config
ssh 설정 파일로 이동 후 하단 66번 줄 패스워드 인증 방식에 주석을 제거하고 ‘no’ 기입 후 저장합니다.
간단하게 서비스 재기동을 해주시면 설정이 완료됩니다.
감사합니다.