Programming/Qt

[Qt] github에 push 하기 위한 win-ssh-askpass 대안 qtc-askpass

변화의 물결1 2025. 6. 8. 11:09

 

 

안녕하세요.

 

 github에 push 하기 위해 ssh-key 생성 시 암호를 설정했다면, Qt에서 원격지로 전송할 때 암호창이 나타나지 않아서 bash에서 수동으로 passphrase(암호)를 입력하는 경우 있을 겁니다.

 

 설정창에는 기본으로 win-ssh-askpass 실행파일로 되어 있는데, 파일이 다운로드하거나 찾을 수 없어서 bash로 하는 경우가 있는데,  qt에서 지원해 주는 ssh 암호창이 있어 공유해 봅니다.

 


 

1. github에 push 할 경우 문제 상황

 

 로컬에서 git을 사용할 때는 원격지 전송이 필요하지 않기 때문에 문제가 없지만, 원격지로 push 하면 아래와 에러가 발생합니다.

 

 특별한 설정을 하지 않았다면, win-ssh-askpass를 찾아 시도하지만, 파일이 없다고 나와 실행되지 않습니다. 기본적으로 설치한 상태에서는 파일을 찾을 수 없었습니다.

 

 

01:01:12 Running in "D:\Project\02_qt\ComportFree": "D:\Program Files\Git\cmd\git.exe" push

ssh_askpass: exec(win-ssh-askpass): No such file or directory

git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.

 

Please make sure you have the correct access rights

and the repository exists.

The command "D:\Program Files\Git\cmd\git.exe push" terminated with exit code 128.

 

 

2.  ssh-askpass.exe 무엇인가?

 

 그래서 ssh-askpass.exe 이것이 무엇이기에 잘 보이지 않는가 궁금해서 찾아봤습니다.

 

 ssh-askpass는 그래픽 사용자 인터페이스(GUI)를 통해 SSH 키의 암호(passphrase)를 입력받는 프로그램입니다.

 SSH 클라이언트(예: ssh.exe, git)가 터미널 환경이 아닌 GUI 환경에서 실행될 때, 암호를 입력할 터미널이 없으므로 ssh-askpass를 호출하여 암호 입력 창을 띄웁니다.

 

 

3. 해결방법 (대안)

 

 Qt Creator는 원격 장치 배포 등을 위해 SSH 연결을 사용할 때 자체적으로 ssh-askpass와 유사한 기능을 제공합니다.

 이 실행 파일의 이름은 qtc-askpass이며, 일반적으로 Qt Creator 설치 경로 내의 libexec/qtcreator/ 폴더에 위치합니다.

 

 Qt Creator의 Preferences > Devices > SSH 설정에서 "Path to ssh-askpass executable" 필드를 보면 이 qtc-askpass가 기본값으로 설정되어 있는 것을 확인할 수 있습니다.

 

 

 

4. 설정 방법

 

 Preferences -> Version Control -> General 메뉴로 들어가서 SSH prompt command 항목에 위의 대안에서 본 경로 및 파일로 수정하고 확인하면 됩니다.

 

 

 

5. push 실행

 

 아래 화면과 같이 암호 입력창이 나타납니다. 암호를 입력하면 Push가 정상적으로 되는 것을 알 수 있습니다. 단, 원격 설정 같은 기본 사항들이 제대로 갖춰져 있을 때만 해당합니다.

 

 

 

 

감사합니다.

 

 

 

<참고 사이트>

1. [Git (7)] Github 비밀번호 입력 없이 pull/push 하기(github ssh key 설정)

https://goddaehee.tistory.com/254

 

 

 

반응형