SharedIT | 묻고 답하기(AMP)

public key 로 ssh 접속 : windows 10 -> linux : 실패. linux->linux 는 잘됨.


안녕하세요.

혹시나 해서 질문 올립니다. 비슷한 현상을 겪으신 분들이나 의견 있으신 분들 답변 부탁드립니다.


사무실에서 사용하는 PC 는 MS 윈도우 10 / MS 윈도우 11 입니다.

작업서버는 리눅스 ( 주로 레드햇, centos , rocky ) 입니다.


리눅스 서버끼리는 ssh 로 잘 넘어다니고요.

실제로는 ssh-keygen 으로 public key 를 등록해서 암호 입력 없이 로그인 / 로그아웃 합니다.


윈도우에서 리눅스로 접속할 때도 ssh 로 잘 넘어다닙니다. ssh 로 접속해서 작업하고, 정상 접속 됩니다.



문제는, public key 를 서버에 넘겨주고 password 없이 ssh 접속하는게 안 됩니다. 공개 키 파일을 서버에 넘겨줬는데도, 암호를 물어봅니다.




자동화를 위해서 Windows PowerShell 에서 vbs 스크립트를 작성했습니다만,


1. Windows PowerShell 에서 ssh 암호 입력 정상 작동


> ssh 접속아이디@리눅스서버


위 커맨드는 정상 작동합니다. 암호를 입력하면 정상 로그인 됩니다. 예를 들면


> ssh user1@linux1.com ## 정상 작동.



2. Windows PowerShell 에서 ssh 공개키 이용 실패. 암호 입력 요구.


> ssh-keygen ## 윈도우에서 공개키 생성.


> scp id-rsa.pub 접속아이디@리눅스서버:/home/접속아이디/.ssh/authorized_keys


> ssh 접속아이디@리눅스서버


위와 같이, 공개 키 파일을 리눅스 서버에 복사해서 authorized_keys 로 복사했는데도 , ssh 로 접속했을 때 암호 입력을 요구합니다.



근데 이게 MS Windows -> linux 접속 때만 이렇고,

linuxA서버 -> linuxB서버 접속 때는 공개 키 방식으로 접속해도 정상적으로 암호 입력 없이 진행됩니다.




혹시 비슷한 현상을 겪으신 분들, 혹은 다른 분들이라도 의견 주시면 대단히 감사하겠습니다.

이상입니다. 즐거운 하루 되시기 바랍니다.

Tags : 태그가 없습니다.

2개의 답변이 있습니다.

Simon.Park
  0 추천 | 일 년 이상 전

키배보 방식을 사용하려다 보면 환경마다 오류가 나는 경우가 많이 발생합니다.

보안 관련 파일 하나만 건드려도 기존에 되던 것도 안되는 경우가 많거든요.

왜 오류가 나는지 찾아서 해당 오류를 해결해 줘야 하는데,

var 및 log 및 secure 파일에 있는 내용을 한번 확인 해 보세요~~

wansoo
  0 추천 | 일 년 이상 전

public 키를 생성해서 접속하려는 클라이언트마다 복사해 집어 넣거나 등록해 주고 하는 작업들이 번거로워서...


그냥 암호 입력 방식으로해서 사용하고 있네요.


암호 입력 방식으로 사용하지만 자동으로 입력되게 해서...



윈도에 ssh 클라이언트로는 putty를 설치하면 함께 딸려 설치되는 plink가 사용하기 편하고 좋더군요.


putty를 설치한 후에, plink.exe만 따로 복사해서 빼내어 다른 컴퓨터에 별도 설치하지 않고서도 그냥 단순히 특정 폴더에 복사해 넣어 두고 실행 시켜도 잘 작동해서... 라이브러리 비슷하게 사용하는 할 수 있어 너무 괜찮은 것 같고...



plink id@서버주소 - p 암호 - ssh - no - antispoof  수행할명령


으로 사용하면 윈도 상에서도 리눅스에 한줄 명령으로 명령을 수행시킨 후에 결과를 받아 볼 수 있어 배치 파일 등에서 명령을 수행 시키고 결과에 따라 어떤 작업을 처리할 때 아주 유용하게 사용하고 있고요.




이 방식으로  DB 쿼리 수행, 휴대폰 문자 메시지 전송, 개발 언어를 이용해서 리눅스 웹 서버에 어떤 결과를 처리하는 용도 등등으로 다양하게 활용하고 있는 상황이네요.

wansoo | 일 년 이상 전

plink id@서버주소 -p 암호 -ssh - no-antispoof 

위의 명령에서 

no-antispoof 옵션이 없을 경우에 사람이 Enter key를 수동으로 입력해야 하는 상황이 발생되지 않도록 하기 위해서 넣는 옵션인데...

앞에 -를 붙여서 옵션을 지정해야 하는데 하이폰과 no를 붙이면 여기에 글이 올라가지 않고 블락이 걸려 버리기 때문에 글을 올리기 위해서 - 와 no-antispoof 사이이 빈칸을 하나 넣어서 표기해서 올렸네요~