내 로컬 컴퓨터에서 SSH 키를 생성했습니다.
그런 다음 다음 명령을 사용하여 공개 키를 서버에 복사했습니다
ssh-copy-id username@remote_host
. 순조롭게 진행되었습니다.~/.ssh/id_rsa.pub
내 로컬 컴퓨터가 내 서버에 복사되었음을 확인했습니다my_user's_home_directory/.ssh/authorized_keys
. 거기에는 다른 파일이 없습니다.또한 동일한 공개 키를 Gitlab에 복사했습니다.
git clone
서버에 저장소를 저장 하려고 하면 다음 과 같은 메시지가 나타납니다.
[email protected]: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
- 내 서버에 충분히 쉽게 SSH를 통해 연결할 수 있습니다. 하지만 내 서버에는 내 개인 키가 없기 때문에 ssh git clone을 할 수 없다는 것이 이해가 됩니다. 여기서 일반적인 절차는 무엇입니까? 일반 https 다운로드를 수행할 수 있습니다. 이것이 표준 경로입니까?
답변1
ssh -A
키 자체를 보내지 않고 원격 서버의 로컬 키를 사용하는 원격 호스트에 ssh-agent를 전달하는 데 사용할 수 있습니다 .
이것이 안전한 옵션처럼 보이지만 이것만 수행하십시오.원격 서버를 절대적으로 신뢰하는 경우(즉, 기본적으로 이를 활성화하지 마십시오). 전달된 ssh-agent는 귀하와 동일한 원격 사용자 또는 루트 권한을 가진 사람이 사용할 수 있습니다.
그런 식으로 진행하기로 결정했다면 에이전트에 키를 추가하여 ssh-add -c
키가 사용될 때 확인 메시지가 표시되도록 하는 것이 좋습니다.
답변2
git은 분산되어 있습니다. Gitlab에서 PC로 가져온 다음 PC에서 서버로 푸시할 수 있습니다. SSH 클라이언트는 둘 다에 대한 PC이므로 개인 키나 전달된 에이전트가 서버에 닿지 않습니다.
또는 여러 개의 SSH 키를 가질 수 있습니다. PC용 개인용과 서버용이 다릅니다. 관리할 키가 더 많지만 서비스 계정 스타일로 별도로 모니터링하고 제어할 수 있습니다.
또는 git을 배포 도구로 사용하지 마세요. 패키지나 다른 아카이브를 생성하고 다른 소프트웨어처럼 설치하세요.