All about

ssh-keygen을 사용해서 접속설정을 정상적으로 한것 같은데, 접속해보면 비밀번호를 요구하는 경우가 있습니다. 

 

1. OS 별로 개행(줄바꿈) 설정이 다른 경우

Windows에서 ssh-keygen을 통해 ssh key file을 만들어서 linux remote server에 접속하는 경우에 이런 에러를 겪을 수 있습니다(윈도우 로컬 PC에서 우분투 서버에 ssh 접속 에러), 이유는 Windows는 줄바꿈 설정이 "CRLF" 인데, linux(Ubuntu 등)은 "LF"이기 때문입니다.

CRLF와 LF의 이해는 링크를 참조해주세요.

이런 경우는 vscode에서 ssh key file을 열어보면 확인할 수 있습니다. Windows에서 생성한 파일의 경우 우측 하단에 CRLF라고 줄바꿈 설정이 기본으로 되어 있는 것을 확인할 수 있습니다. "CRLF"라고 쓰여진 곳을 클릭하면 설정을 바꿀 수 있습니다. 내가 사용하는 로컬 컴퓨터는 윈도우인데, 원격 서버가 우분투인 경우, 로컬에 Windows용 git을 설치한 후 git bash를 실행하여 ssh-keygen을 하면 이런 경우를 방지할 수 있습니다.

 

 

2. authorized_keys 파일이나 .ssh 폴더의 권한설정 문제

원격 서버의 authorized_keys 파일이나 .ssh 폴더의 파일 권한이 잘못 설정되어 있는 경우 정상적으로 접속이 되지 않을 수 있습니다. 각각의 권한을 authorized_keys 파일은 600, .ssh 폴더는 700으로 설정해주세요.

 

chmod 600 .ssh/authorized_keys
chmod 700 .ssh

 

3. HOME 디렉토리 권한설정 문제

제가 겪었던 문제로, 구글링을 해도 나오지 않는 경우였습니다. 여러명이 사용하는 원격서버인데, 제 HOME 디렉토리 권한을 777로 다 열어두었고 그대로 방치했던 경우가 있었습니다. HOME 디렉토리 권한은 711로 설정해주세요.

 

ssh-keygen이 OS나 여러가지 설정에 따라서 작동하지 않는 경우들을 정리해보았습니다.

 

4. 기타 다른 문제들

ssh 접속시 문제가 생길 경우 ssh 명령어에 -v 옵션을 넣어 무엇이 문제인지 확인해볼 수 있습니다. 아래는 예시이고, 길어서 뒷내용은 생략하였는데, 위에 제가 작성한 3가지 방법으로도 해결이 안된다면 -v 옵션을 넣어 출력 결과를 읽어보고 해결하시기 바랍니다.

C:\Users\root>ssh -p 22 -v root@215.192.21.102
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
debug1: Reading configuration data C:\\Users\\root/.ssh/config
debug1: C:\\Users\\root/.ssh/config line 1: Applying options for 215.192.21.102
debug1: Connecting to 215.192.21.102 [215.192.21.102] port 22.
debug1: Connection established.
debug1: identity file C:\\Users\\root\\.ssh\\id_rsa type 0
debug1: identity file C:\\Users\\root\\.ssh\\id_rsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_for_Windows_8.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3

너무 길어서 나머지는 생략

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading