[Oracle Cloud] 오라클 클라우드 프리티어 우분투 22.04 업데이트 후 SSH key 로그인 Server refused our key 문제 해결
![[Oracle Cloud] 오라클 클라우드 프리티어 우분투 22.04 업데이트 후 SSH key 로그인 Server refused our key 문제 해결](/content/images/size/w2000/wordpress/2022/10/1-25-1.png)
먼저, 저는 서버 관리자도 아니고, 개발자도 아니고, 뭣도 아니라서 설명이 제대로 되어있지 않을 수 있으며, 삽질하다 나온 결과물을 메모하는 개념이기 때문에 도움을 드리지 못할 수도, 이 방법대로 해결이 되지 않을수도 있습니다.
주의!
*최초에 키 등록이 잘못된 경우는 답이 없습니다.
*패스워드 로그인 안되면 못써먹습니다.
*이미 사용하고 있던 인스턴스에서만 가능합니다!
*key 생성시 최신버전의 puttygen 등을 이용해서 생성하세요. – 만약 제대로 되었다면 이 포스팅을 볼 일이 없긴 합니다.
*이 방법은 보안상 취약한 기존 방식의 키를 계속해서 사용하도록 하는 방식이므로, 이왕이면 키를 재생성해서 사용하시는게 더 좋습니다.
오라클 클라우드 프리티어로 3개의 인스턴스를 사용하고 있는데, 한개는 잘 되는데 나머지 두개가 SSH로그인이 잘 안되는 문제가 생겼습니다.
아마 이 글을 보시는 분들은 Server refused our key 를 해결하려고 여기저기 뒤적이다 보니 결국 인스턴스 재생성을 하라고 하는데, 제경우 arm 방식의 4코어 24GB 인스턴스를 너무 힘들게 생성했던 터라, 어떻게든 처리를 하고 싶었어요.
일단 key쌍 생성 및 적용까진 되었다고 봅니다.
puttygen으로 하셔도, mobaxterm으로 하셔도 상관없습니다.
1. 오탈자 확인
제 경우 파일명을 잘못 넣어서 안되는걸 몇시간동안 삽질한적도 있었습니다 -_-;;;;;;; 기본적으로 확인해봅시다.
2. 폴더 권한 설정
.ssh 폴더는 700, 내부 파일은 600이 되어야 하며 소유자는 사용자가 되어야만 합니다.
3. 설정 확인
이후로는 대부분 설정 문제입니다.
sshd_config의 log 레벨을 DEBUG3으로 설정합니다.
#LogLevel INFO 를
LogLevel DEBUG3 으로요
sudo vim /etc/ssh/sshd_config #LogLevel INFO LogLevel DEBUG3
아래 명령을 이용해 로그인 로그를 추적합니다.
sudo tail -f /var/log/auth.log
이제 로그파일이 변경될때 쭉~ 올라올거에요.

비밀번호 자동 입력이 있다면 꺼두세요. 그래야 key방식 로그인이 실패해서 비밀번호를 물어보고 멈추니까요.

이런식으로 어디서 오류가 났는지 확인합니다. 제 경우에는 KeyTypes를 지정해주고 해결했어요.
sudo vim /etc/ssh/sshd_config
명령을 입력하여 설정파일을 열어봅니다. nano를 쓰셔도 됩니다. 편한거 쓰세요
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PubkeyAcceptedKeyTypes ssh-rsa
위 설정이 되어있는지 확인합니다. 마지막 세번째줄이 없다면, 적당한곳에 넣어줍니다. 저는 AuthorizedKeysFile 아래에 바로 넣었어요.
만약 안된다면.. PubkeyAcceptedKeyTypes 를 ssh-rsa
설정을 바꾸셨다면
sudo systemctl restart sshd
SSH 데몬을 재시작해줍니다.
자, 이제 로그인을 다시 해봅니다!
Authenticating with public key "Imported-Openssh-Key: 경로"
이 메시지가 뜬다면 성공!
추가로, 오라클 프리티어의 경우 ubuntu, opc 계정이 기본값일거에요.
보안상 기본값을 그냥 쓰는건 좋지 않으니, 새 계정을 생성하시고 sshd_config 파일 안 Include 아래쪽에
AllowUsers 사용자명 DenyUsers ubuntu opc
이렇게 해두시면 ubuntu나 opc로는 ssh접속이 불가능합니다.