본문 바로가기

취미, 관심/NAS, Server

[Oracle Cloud] 오라클 클라우드 프리티어 우분투 SSH key 로그인 Server refused our key 문제 해결

먼저, 저는 서버 관리자도 아니고, 개발자도 아니고, 뭣도 아니라서 설명이 제대로 되어있지 않을 수 있으며, 삽질하다 나온 결과물을 메모하는 개념이기 때문에 도움을 드리지 못할 수도, 이 방법대로 해결이 되지 않을수도 있습니다.

 

주의!

*최초에 키 등록이 잘못된 경우는 답이 없습니다.

*패스워드 로그인 안되면 못써먹습니다.

*이미 사용하고 있던 인스턴스에서만 가능합니다!

*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접속이 불가능합니다.