콘텐츠
SSH(Secure Shell)
SSH 는 네트워크를 통해 특정 컴퓨터, 서버 등에 접속하는 프로토콜 입니다. 주로 회사에서 Putty로 리눅스, 유닉스 서버에 접속할 때 자주 사용하게 되죠.
시놀로지(Synology) 또한 리눅스 기반 OS를 제공하는 제품으로 SSH 프로토콜을 사용할 수 있도록 쉽게 제공하고 있습니다. 그리고 NAS에 Putty 유틸리티를 통해서 쉽게 접근이 가능하죠.
단, SSH 로 서버에 접속하려면 계정 정보로 아이디와 패스워드가 필요합니다.
SSH 공개키 인증
SSH는 로그인 시 패스워드가 아닌 키 인증 방식을 통해 로그인 할 수 있는 방식을 제공 합니다. 이는 접속하려는 클라이언트 측에서 키를 생성하고 이를 서버에 등록함으로 SSH로 패스워드 없이 접속 가능하게 해줍니다.
SSH 키 생성
SSH 키는 클라이언트 측(개인 PC, 노트북 등)에서 생성합니다. 저는 Windows 환경 기준에서 설명하겠습니다.
Windows 기준 SSH 키 생성
- CMD 혹은 PowerShell을 연다. (win + R 을 눌러 cmd 나 powershell 을 입력하면 열립니다.)
- 명령어로 ‘ssh-keygen’을 입력한다.
입력하면 여러 메시지가 나오는데 전부 엔터를 누르면 됩니다. 그럼 다음과 같이 출력 됩니다.
출력 된 메시지를 보면 경로가 나와 있는데 해당 경로의 .ssh 로 가보면 id_rsa, id_rsa.pub 파일이 보입니다.
이 파일 중 pub 는 공개키, 나머지 하나는 개인키가 됩니다.
- 공개키: 다른 PC, 사용자, 서버 등에게 공유하는 키 입니다. 서버엔 이 공개키를 등록하여 SSH Key 인증을 하게 됩니다.
- 개인키: 개인키는 절대로 공개되어서는 안되는 고유의 키 입니다. 안전하게 보관하고 공개하면 안됩니다.
Synology 서버에 공개키 등록
공개키가 있다면 다음 방법으로 서버에 등록해 봅시다.
Windows 기준 SSH 키 등록
먼저 Synology NAS 에서 SSH 용 계정으로 접속해 줍니다. 그리고 파일 탐색기를 통해 공개키 파일(.pub)를 업로드 해줍니다.
저는 DSM 내의 File Station을 이용 했습니다.
그 후 Putty 등의 SSH 접속 유틸리티로 NAS를 연결 합니다. 그 다음 다음 명령어를 입력해 주면 키 등록이 완료 됩니다.
cat 키 이름.pub >> authorized_keys
BashSSH 비밀번호 없이 접속해보기
공개키를 등록 했다면 cmd 혹은 PowerShell 에서 다음 명령어로 접속을 시도해 봅시다. 비밀번호 없이 정상적으로 연결 된다면 키 등록이 완료 된 것입니다.
ssh 계정 이름@서버 정보 -p 포트번호
Bash비밀번호를 계속 요구하는 경우
공개키 등록 이후에도 계속 비밀번호를 입력하면 다음 방법으로 해결할 수 있습니다.
Git Bash 이용
만약 사용자 PC 에 깃(Git) 이 설치되어 있다면 Git Bash 를 이용해 Key 를 등록해볼 수 있습니다. 먼저 Git Bash 를 실행해 기존과 같이 ‘ssh-keygen’ 명령어로 공개키를 생성 합니다.
key 를 생성 했다면 다음 명령어로 서버에 키를 등록할 수 있습니다. 아래 명령어는 리눅스 기반 명령어로 cmd 나 PowerShell 에선 사용할 수 없습니다.
참고로 경로도 리눅스 기반으로 작성되어야 하기 때문에 위의 출력 문의 경로를 참고해서 작성해 주세요.
만약 기본 SSH 포트를 사용 중이면 ‘-p 포트번호’ 는 생략되어도 됩니다.
ssh-copy-id -i .pub파일경로 -p 포트번호 계정명@서버 주소(IP, 도메인 등)
Bash성공 시 대략 다음 명령어가 출력됩니다.
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “공개키.pub”
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
그 후 다음 명령어를 입력할 시 비밀번호 없이 SSH 연결이 된다면 완료 된 것입니다.
ssh 계정 이름@서버 정보 -p 포트번호
Bash저의 경우 Git Bash, CMD, VSCode 등에서 패스워드 없이 정상 접속 되었습니다.