[Ubuntu]SSH 패스워드 없이 서버 접속하기
안녕하세요
이번 게시물에서는 SSH Key를 통해 원격 서버에 아이디, 패스워드 없이
접속하는 법을 알아보겠습니다.
테스트 환경
- Widows 10 (Client)
- Ubuntu: Ubuntu 20.04.2.0 LTS (Server)
SSH Key 접속이란
SSH Key는 서버 접속 시 비밀번호를 대체하는 높은 보안 수준을 가지는 Key 접속방식입니다.
SSH Keys 동작방식
간략하게 SSH는 Secure SHell의 줄임말이며, 통신을 할 수 있게 해주는 하나의 protocol입니다.
SSH Key는 비대칭 암호화 방식으로 Client는 비공개 키(Private Key)를 Server는 공개키(Public Key)를 가지고 두 Key를 비교하여 둘이 일치하는지 확인하는 방식입니다.
SSH Key 접속 준비
Windows(Client) 세팅
Client가 될 Windows에서 OpenSSH 클라이언트를 확인합니다.
시작 > 프로그램 추가/제거 > 선택적 기능 > OpenSSH 클라이언트
Key 생성
- PoweShell에 아래 명령어를 명령어를 실행합니다.
ssh-keygen
뒤에 따로 옵션을 두면 바이너리나 타입을 다르게 해서 key를 생성할 수 있습니다.
- 생성하면 해당 경로에 파일이 두 개 생성됩니다.
- id_rsa : private key - 타인에게 노출되면 안 되는 파일
- id_rsa.pub : 접속하려는 원격 머신(서버)의 authorized_keys에 입력할 파일
Ubuntu(Server) 세팅
보통 Ubuntu 설치 후 SSH는 설치되어있지 않은 상태인데 확인 후
설치가 되어있지 않다면 설치를 진행한다.
- 확인 및 설치 진행
$ dpkg -l | grep openssh-server
$ sudo apt-get install openssh-server
$ sudo service ssh start
- root 계정 접속 허용
1. 설정파일 에디터로 열어주기
$ sudo vi /etc/ssh/sshd_config
2. PermitRootLogin 속성값 yes 변경
PermitRootLogin yes
3. 저장 후 ssh 서버 재시작
$ sudo service ssh restart
Ubuntu(Server) Key 세팅
- Windows에서 생성한 Key 중 id_rsa.pub 파일의 내용을 복사합니다.
- Ubuntu 서버에 authorized_keys 파일 안에 붙여 넣습니다.
$ sudo vi ~/.ssh/authorized_keys
SSH Key 접속 실행
Windows에서 Ubuntu로 SSH 접속을 실행합니다.
명령어: ssh -P 22 접속Id@Ip주소
yes 입력 엔터!
접속이 완료 된걸볼 수 있습니다.
마무리!
Client에서 Server로 SSH Key 접속하는 방법을 알아봤습니다.
이외에도 과정이나 방법은 다양하게 있으니 다른 방법을 활용하셔도 좋습니다.
예를 들면 Putty 관련 프로그램을 통해 가능하니 다양한 방법을 익히면 도움이 될 겁니다.
클라이언트와 서버가 Key 값을 통해 접속을 제어
이 부분을 생각하시면서 과정을 익히셨으면 좋겠습니다.
다음은 SSH를 통해 파일을 전송하는 방식을 알아보도록 하겠습니다.