[시놀로지/헤놀로지] SSH Key 잃어버렸을 때 & Permission Denied 뜰 때
개인적으로 탐구하다가 알아낸 사실로 기록도 할 겸 정보공유도 하고 싶어서 이렇게 글을 쓰게 됐습니다.
일단 제가 겪고 있던 문제는
- 헤놀에서 ssh 연결 시 패스워드 입력이 아닌 ssh key로 로그인을 하는것을 원해서 ssh key 설정을 모두 완료함
- 그러나 ssh key가 파일의 권한이 잘못되었거나 그룹이 잘못되어 Permission Denied가 뜨며 ssh를 접속할 수 없는 상태(이를 트러블슈팅 이라고 부른다고 하네요 문제를 해결하는것이 트러블 슈팅이라고 합니다.)
- 평일에는 외부에서 생활하고 있기 때문에 헤놀컴이 있는 집으로 갈 수 없는 상황
- Telnet 접속도 잘 안되고 보안적인 문제로 시도를 안하고 있던 상황
트러블 슈팅
이때 제 머리속에서 생각난게, 시놀로지의 DSM에서 작업 스케줄러를 사용하면 이 문제를 해결할 수도 있겠구나 라는 생각을 하게 됩니다.
그리고 스크립트를 작성하기 위해 ChatGPT에게 스크립트를 작성해 달라고 말했습니다.
#!/bin/bash
# SSH 설정 파일 백업
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup
# 퍼블릭 키 인증 비활성화
sed -i 's/^PubkeyAuthentication yes/PubkeyAuthentication no/' /etc/ssh/sshd_config
# 패스워드 인증 활성화
sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
# SSH 서비스 재시작
synosystemctl restart sshd
*DSM 7부터는 'synoservice' 라는 명령어가 'synosystemctl' 로 변경되었다고 합니다. 7.0 이전 버전을 사용하시는 경우 기존 명령어로 사용해주시면 됩니다.
아무튼 이제 제가 해야 할 일은 DSM의 작업 스케줄러에 위의 스크립트 코드를 붙여넣는 일밖에 남지 않았습니다.
이렇게 작업 스케줄러에 스크립트를 붙여넣어주고, 저장을 합니다.
물론 코드 실행 사용자는 root으로 지정해 주셔야 합니다!!
이렇게 하고 ssh를 접속해보면 다시 접속되는걸 확인하실 수 있습니다.
이렇게 작업 스케줄러로 코드를 실행해서 ssh pubkey로 로그인을 해제하고 기존에 사용하던 방법인 패스워드 로그인 방법으로 바꾸었습니다.
작동이 잘 되어서 다시 패스워드로 로그인을 할 수 있게 되었습니다!
여러분들도 저와 같은 문제를 겪게 되신다면 이런 방법으로 해결해보시는것을 추천드릴게요!
다음에 ssh key를 이용해서 로그인 할 수 있는 방법을 찾아서 다시 정보글로 찾아오도록 하겠습니다 :D
https://svrforum.com/nas/249973
'문제 발생 시 이를 해결하는 과정'입니다.
cmt alert