ssh-copy-id 권한이 거부되었습니다.

ssh-copy-id 권한이 거부되었습니다.

프로젝트에 대한 git 저장소를 설정하려고 하는데 매번 비밀번호를 다시 입력하지 않아도 되도록 ssh 키를 사용하고 싶습니다. 나는 우연히 ssh가 복사 작업을 하도록 할 수 있는 가능성을 발견했지만 ssh-copy-id그것은 나에게는 작동하지 않는 것 같습니다.

$ ssh-copy-id -i git@server
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: 
"/c/Users/Me/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to 
filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are 
prompted now it is to install the new keys
git@server's password:
sh: 1: cannot create .ssh/authorized_keys: Permission denied

편집하다:나는 다음과 같이 문제를 해결했습니다. - su를 통해 루트에 로그인 -authorized_keys 파일의 소유권을 chown git /home/git/.ssh/authorized keysgit으로 변경한 다음 git에 다시 로그인 - 마지막으로 rw 권한을 600 via로 변경하고 chmod 600 ~/.ssh/authorized keys키를 성공적으로 복사했습니다.

답변1

계정이 git 전용으로 사용되는 경우 관리자는 해당 계정을 제한된 계정으로 설정하여 git 명령만 실행할 수 있도록 하는 것이 좋습니다. 특히 git 액세스는 계정의 자격 증명 및 제한 사항을 변경하는 데 충분하지 않습니다. 이는 ~/.ssh/authorized_keys사용자가 쓸 수 없는 를 통해 수행됩니다. 일반적으로 웹 인터페이스와 같은 자격 증명을 설정하는 대역 외 메커니즘이 있습니다.

관리자라면 Git 계정 설정 방법을 더 깊이 이해해야 합니다. SSH 서버 구성을 확인하십시오( /etc/sshd_config또는 파일이 있는 위치를 /etc/ssh/sshd_config확인하십시오 ( 설정). 파일을 찾으면 공개 키를 추가하십시오. 파일은 단지 행 목록일 뿐이며 각 파일에는 일반적으로 공개 키의 직접 사본이 포함됩니다. 키 사용에 대한 제한사항(예:) 파일 끝에 추가해야 하는지 구성을 확인하십시오 .authorized_keysAuthorizedKeysFileauthorized_keys.pubcommand="git-shell" nopty no-agent-forwarding no-port-forwarding no-X11-forwarding

답변2

이 오류를 검색할 때 첫 번째 검색 결과에 이 질문이 나왔으므로 솔루션도 추가하겠습니다.

제가 아는 한, 허가와는 아무런 관련이 없습니다. 어떤 이유로든(실제로 빠른 수정 사항을 찾았기 때문에 알아보려고 하지 않았습니다) 프로그램은 ssh 명령을 실행할 때 올바른 ID 파일을 찾지 않았습니다. 한 가지 해결 방법은 SSH 프로그램이 사용하려는 원격 서버에 SSH 키를 추가하는 것입니다. 명령에 -v를 추가하면 명령을 실행할 때 SSH 프로그램이 수행하는 작업을 관찰할 수 있습니다.

ssh -v username@your-host-ip-or-domain 

그런 다음 SSH 프로그램이 로컬 컴퓨터(예: Mac)에서 사용하려는 공개 키를 가져옵니다.

cat ~/.ssh/id_rsa.pub

...이를 리모컨의 Authorized_keys 파일에 추가하세요.

~/.ssh/authorized_keys

제 경우의 또 다른 더 나은 해결책은 로컬 SSH 구성 파일에 사용자 정의 호스트를 추가하는 것입니다. 내 Mac에서는 다음과 같습니다.

/Users/my-user-name/.ssh/config

예를 들어 여기에 다음과 같은 내용을 추가할 수 있습니다.

Host mynewserver
        HostName some.IP.number.or.domain
        Port 20000 #if custom port is used and not the default 22
        User the_root
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_for_my_new_server

그런 다음 다음을 실행하면 됩니다.

ssh mynewserver

...짜잔

답변3

"A"와 "B"라는 2대의 컴퓨터가 있다고 가정하고 이제 A에서 "B"로 연결하려고 합니다.

따라서 머신 B에서 다음을 수행하십시오.

vi /etc/ssh_sshd_config

이제 이 두 줄을 검색하여 아래와 같이 변경합니다.

PasswordAuthentication yes

PermitRootLogin yes

이제 "B" 시스템에서 sshd 서비스를 다시 시작하십시오.

service sshd restart

이제 "A" 시스템에서 "B" 시스템으로 키를 복사하면 제대로 작동하기를 바랍니다.

ssh-copy-id [email protected]

관련 정보