ssh-copy-id 없이 사용자에게 SSH 키 추가

ssh-copy-id 없이 사용자에게 SSH 키 추가

호스트에 연결하고 싶고 현재 키보드와 모니터가 연결되어 있는 경우 해당 사용자로 원격으로 연결할 수 있도록 키를 사용자에게 복사하는 방법은 무엇입니까? 기본적으로 ssh-copy-id와 동일한 작업을 수행하고 싶지만 먼저 ssh를 통해 연결할 필요가 없습니다.

답변1

키는 아래의 텍스트 파일에 저장됩니다 $HOME/.ssh/authorized_keys.

새 키를 추가하려면 키의 *.pub 파일 내용을 파일의 새 줄에 복사하면 됩니다.

또한 몇 가지 추가 정보를 제공합니다.SSH 웹사이트에서.

답변2

예를 들어 다음 명령을 사용합니다.

scp name_of_public_key.pub root@<remote IP address>:</home/user_home_folder or /root>

그런 다음 원격 호스트에 SSH를 통해 접속하고 사용자의 홈 폴더로 이동합니다.

cd

또는

cd /home/name_of_user

그런 다음 다음을 입력하십시오.

cat name_of_public_key.pub >> .ssh/authorized_keys

공개 키는authorized_keys 파일 끝에 추가됩니다. 공개 키는 비밀이 아닙니다.

답변3

이 원라이너는 프로세스를 자동화합니다.

cat .ssh/id_ecdsa.pub | xargs -i ssh NameOfServer "echo {} >> .ssh/authorized_keys"

스크립트는 임의 -i{}.

.ssh그러나 대상 컴퓨터에 폴더나 파일이 없으면 실패하므로 authorized_keys다음 스크립트는 bash 조건을 사용하여 문제를 해결합니다.

cat .ssh/id_ecdsa.pub | xargs -i ssh $1 "if [[ ! -e .ssh/authorized_keys ]]; 
then mkdir .ssh; touch .ssh/authorized_keys; fi; echo {} >> .ssh/authorized_keys"

if 문은 대상 디렉터리가 존재하는지 확인한 후 종료하거나, 대상 디렉터리를 생성한 후 종료합니다.

관련 정보