호스트에 연결하고 싶고 현재 키보드와 모니터가 연결되어 있는 경우 해당 사용자로 원격으로 연결할 수 있도록 키를 사용자에게 복사하는 방법은 무엇입니까? 기본적으로 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 문은 대상 디렉터리가 존재하는지 확인한 후 종료하거나, 대상 디렉터리를 생성한 후 종료합니다.