이전 포스팅에 sudo 명령어를 사용할 때마다 패스워드를 입력하는 것이 번거롭다고 했었는데, 그에 버금가게 귀찮은 것이 ssh 접속 시 패스워드를 입력하는 것이다.
이 귀찮은 패스워드 입력을 생략하려면 ssh key를 사용하게 되면 접속 시 패스워드를 매번 입력해 주지 않아도 된다.
1. 접속하려는 환경에 SSH 공개키 등록하기
우선 키를 사용하여 접속하기 위해서는 리눅스에 공개키를 등록해 주어야 한다.
/home/{접속하려는 계정}/.ssh/authorized_keys
접속하려는 계정 디렉토리의. ssh 폴더에 있는 authorized_keys에 공개키에 대한 정보가 담기게 되는데, 여기에 공개키를 등록해 주는 방법은 2가지가 있다.
1.2 편집기로 authorized_keys 편집하기
원시적인(?) 방법으로는 공개키의 값을 복사하여 authorized_keys 파일을 편집기로 열어 그냥 붙여 넣어주면 끝이 난다.
public 키를 편집기로 열어보면 이렇게 값이 보이는데 이 내용을 복사하여
vi ~/.ssh/authorized_keys
로 파일을 편집기로 열어준 뒤
이렇게 값을 붙여 넣은 뒤 저장하면 끝이 난다.
.ssh 폴더가 없거나 authorized_keys 파일이 없을 경우는 그냥 생성해 주면 정상적으로 동작한다.
1.2 ssh-copy-id 이용하기
ssh-copy-id를 사용하면 쉽고 빠르게 공개키를 리눅스에 등록할 수 있다.
사용 방법은
ssh-copy-id -i {공개키 파일 경로 및 파일명} {접속할 계정}@{host}
를 사용하면 된다.
물론 Windows에서 제공하는 OpenSSH에는 ssh-keygen처럼 제공하지 않는 기능인데 git CMD를 사용하면 ssh-copy-id를 사용할 수 있다.
위 경우는 키가 있는 경로로 이동하여 파일을 지정한 것이고, 굳이 이동하지 않고 경로를 적어 사용해도 된다.
이제부터 ssh 접속 시 키를 사용하여 패스워드 입력 없이 접속할 수 있게 되었다.
2. 패스워드를 사용한 접속 막기
이제 key를 사용한 ssh 접속을 설정하였으니 기존의 패스워드 입력을 통한 ssh 접속을 막는 것이 보안 상에도 좋다.
sudo vi /etc/ssh/sshd_config
를 사용하여 ssh 설정 파일을 열어준 뒤
PasswordAuthentication no
PasswordAuthentication 설정을 no로 설정해 준다.
저장을 한 뒤
sudo systemctl restart sshd
로 ssh 서비스를 재시작해주면
위와 같이 key를 사용하지 않는 접속을 허용하지 않게 된다.
'Linux' 카테고리의 다른 글
[Ubuntu] Ubuntu(우분투) 20.04 시간 서버와 시간 동기화 하기 (0) | 2021.10.16 |
---|---|
[Ubuntu] Ubuntu(우분투) 20.04 OpenJDK 설치하기 (0) | 2021.10.11 |
[Ubuntu] Ubuntu(우분투) 20.04 vim 최신버전 및 플러그인 설치하기 (0) | 2021.10.09 |
[Ubuntu] Ubuntu(우분투) 20.04 sudo 명령어 패스워드 입력 없이 사용하기 (0) | 2021.10.09 |
[Ubuntu] Ubuntu(우분투) 20.04 mirror 서버 주소 변경하기 (0) | 2021.10.09 |