본문 바로가기
인간세상의 종말이 도래해따/오류

[windows openssh] ssh 연결 시 ssh-key 등록 이후에도 비번 입력하라고 뜨는 오류

by 민곰 2024. 10. 31.
728x90

# 도움이 될 만한 상황

- 윈도우 환경을 서버로 했을 때, ssh 원격 접속 시 계속해서 비밀번호 입력 요청이 뜸- ssh-key를 설정해서 비번없이 원격 접속하고 싶은데 비밀번호 입력 요청이 뜸

 

# 환경 (로컬과 서버 모두 Windows)

1. 로컬 Desktop

- Windows 10

- OpenSSH Client 설치했음 (시스템 > 선택적 기능 > OpenSSH 클라이언트)

 

2. 서버 Laptop

- Windows 10

- OpenSSH Server 설치했음 (시스템 > 선택적 기능 > OpenSSH 서버)

 

# 문제

1. 데스크탑에서 노트북의 Windows 를 서버로 접속하기 위해, 로컬과 서버의 sshd 설정을 모두 끝냈다.

2. vscode로 연결하기 위해 로컬의 C:\User\[유저이름]\.ssh\config 파일을 아래와 같이 설정했다.

# Host [식별가능한 호스트 이름:임의 설정]
#    HostName [서버 IP 주소]
#    User [서버의 유저이름]
#    Port [서버에서 열어놓은 포트번호]
#    IdentityFile [로컬에 저장한 sshkey 경로]

Host work-windows
    HostName 121.xxx.xxx.xxx
    User serveruser
    Port 31313
    IdentityFile ~\.ssh\id_rsa

3. ssh-keygen을 이용해 발급받은 키 파일을 연동해 IdentityFile을 설정했기 때문에, 정상적으로 서버에 연결하면 비번 입력 없이 연결되어야 한다. 그런데, 계속해서 비밀번호 입력창이 떴다. ㅠㅠㅠㅠ

4. 로컬 vscode의 Connect to Host... 로 3번과 같은 현상이 계속되어, 디버깅을 위해 Windows Command Prompt 에서 작업을 시작했다.

 

# 디버깅

1. 로컬의 명령 프롬프트 창을 열어, 아래와 같이 ssh 연결 명령어를 입력했다. 디버깅을 위해 -vvv 옵션을 추가했다.

# ssh -vvv -p [포트번호] -l [서버의 유저이름] -i [ssh key 파일 경로:C:\Users\[유저이름]\.ssh\id_rsa] [서버 ip주소]
ssh -vvv -p 31313 -l serveruser -i C:\Users\localuser\.ssh\id_rsa 122.xxx.xxx.xxx

 

더보기

# 출력결과

...

debug1: Connecting to domain.edu [121.xxx.xxx.xxx] port 31313.
debug1: Connection established.
debug1: identity file C:\\Users\\[localuser]/.ssh/rsa_key_file type 0
debug3: Failed to open file:C:/Users/[localuser]/.ssh/id_rsa-cert error:2
debug3: Failed to open file:C:/Users/[localuser]/.ssh/id_rsa-cert.pub error:2

...

> ssh key 의 cert error에 대해서 검색하기 시작했다.

 

# 해결

1. 디버깅 결과로 검색 중에 서버의 유저가 관리자 권한을 갖고 있을 경우, C:\ProgramData\ssh\administrators_authorized_keys 에서 ssh key를 찾으려고 시도한다는 것을 알아냈다.

유저 권한에서 관리자 권한을 빼는 방법도 있었지만, 해당 경로에 administrators_authorized_keys라는 파일을 만들어 주기로 했다.

 

2. C:\Users\[서버 유저명]\.ssh\authorized_keys 파일을 C:\ProgramData\ssh\administrators_authorized_keys 로 복사했다. 관리자 권한이 필요하다는 팝업이 떠서 승인했다.

 

3. 2번의 방법을 거치자, ssh 연결 시도가 바로 성공했다.

vscode에서도 Connect to Host...를 다시 시도했더니, 이제는 비밀번호 입력 요청이 사라지고 제대로 서버의 Windows 환경에 정상적으로 접속되었다!!! 

 

 

728x90

댓글