본문 바로가기
컴퓨터일반

Synology NAS SSH 암호 없이 접속 설정하기, vscode GIT Permission denied error 사례

by __observer__ 2022. 10. 24.
반응형

현재 저는 Synology NAS 에 SSH 를 설정해서 사용하고 있고 개인적인 코드는 Synology NAS에 GIT 을 설치하여 관리하고 있습니다.

Tortoisegit 에서 SSH 를 통해 GIT push, pull 을 하는 경우에는 패스워드를 입력하라는 UI가 나오면서 문제 없이 push, pull 을 할 수 있었습니다.

그런데 vscode 에서 GIT push, pull 을 하는 경우에는 패스워드를 입력하라는 메시지도 나오지 않고 아래와 같은 에러 메시지가 나오더군요.

Permission denied (publickey, password).

에러 메시지를 보고 알 수 있는 바는 ssh 로 서버를 접속하려면 publickey 또는 password 를 입력해야 되는데 password 를 입력하는 UI가 뜨질 않으니 결론적으로는 publickey 를 등록 해야 되겠구나 라는 생각을 하게 됐습니다.

아래 주소에 Synology NAS 에 ssh key 를 등록하는 방법이 나와있더군요.

https://kb.synology.com/en-uk/DSM/tutorial/How_to_log_in_to_DSM_with_key_pairs_as_admin_or_root_permission_via_SSH_on_computers

SSH 로 Synology NAS 서버에 접속할 때 패스워드를 물어보게 되는데 RSA 키를 등록해 놓으면 패스워드를 물어보지 않고 자동으로 접속을 할 수가 있습니다.

위 주소의 내용에 대해서 다시 한번 정리를 해 보면 절차는 아래와 같습니다.


1. PC 에서 ssh-key 를 생성합니다. 본 과정은 Powershell 을 관리자 권한으로 실행 후 ssh-keygen 명령어를 타이핑 하면 됩니다. 중간에 뭔가 입력하라고 나오면 그냥 엔터를 몇 번 눌러 주면 됩니다. ssh-keygen 과정이 완료가 되면 아래와 같이 id_rsa.pub, id_rsa 파일이 생성됩니다.

C:\Users\<username>\.ssh\id_rsa.pub

C:\Users\<username>\.ssh\id_rsa

2. NAS 의 /home/.ssh 폴더에 위에서 만든 id_rsa.pub 파일을 복사 붙여 넣기 합니다. .ssh 폴더가 없는 경우에는 폴더를 생성한 후에 진행하시면 됩니다.

3. authorized_keys 파일에 id_rsa.pub 파일의 내용을 등록합니다.

본 과정은 ssh 로 접속을 해서 아래와 같은 명령어로 진행할 수 있습니다. 명령어를 보시면 아시겠지만 단순히 id_rsa.pub 파일의 내용을 authorized_keys 파일에 한줄 추가 하는 것입니다.

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

command line 명령이 불편하신 분들은 텍스트 편집기에서 authorized_keys 파일에 id_rsa.pub 파일의 내용을 복사 붙여 넣기 해서 만드셔도 될것 같네요.


위 단계에 따라 설정을 완료한 후에 PC 에서 ssh 명령으로 NAS 에 접속해보면 더이상 패스워드를 물어보지 않는 것을 확인할 수 있었고

ex ) ssh myadmin@10.17.28.75 -p 22

vscode 의 push, pull 과정의 에러도 더 이상 나오지 않는 것을 알 수 있었습니다.

반응형

댓글