다른 사용자를 위해 ssh-copy-id를 통해 공개 키 설치


26

ssh-copy-id원격 컴퓨터에 공개 키를 설치하는 데 사용할 수 있습니다 authorized_keys. sudo능력이 있다면 다른 사용자의 공개 키를 설치하는 데 동일한 명령을 사용할 수 있습니까?

업데이트 : 로컬 및 원격 모두 Ubuntu 12.04를 사용하고 있습니다.

업데이트 2 : 새 사용자 계정 생성 및 공개 키 추가 절차 설명

  1. (원격) 새 사용자 계정을 만들어 사용자 공개 키 액세스로만 설정하십시오.
  2. (로컬) 새 사용자 계정 (ssh-keygen)의 공개 키를 생성합니다.
  3. 일반적으로 .ssh/authorized_keys원격 서버에 디렉토리와 파일 을 만든 다음 로컬로 생성 된 공개 키를 복사하여 새 사용자 계정에 붙여 넣습니다. 내가 찾고있는 ssh-copy-id것은 새로 생성 된 사용자의 공개 키를 ssh 디렉토리에 직접 설치 하는 데 사용할 수 있다는 것 입니다. 몇 가지 명령을 더 저장하기 만하면됩니다.

답변:


12

동일한 명령은 아니지만 원격 호스트에 sudo가있는 경우 ssh를 사용하여 필요한 단계를 원격으로 수행 할 수 있습니다. 다음 명령을 사용하여 ssh 키를 라즈베리의 루트 사용자에게 푸시합니다.

cat ~/.ssh/id_rsa.pub | \
  ssh pi@192.168.1.25 \
  "sudo mkdir /root/.ssh; sudo tee -a /root/.ssh/authorized_keys"
  • 고양이 내 열쇠
  • 그것을 ssh로 파이프
  • ssh는 ssh 사용자로 라즈베리에 연결합니다
  • 원격에서 sudo를 사용하여 /root/.ssh를 만듭니다.
  • 그런 다음 sudo를 "tee -a"와 함께 사용하여 stdin (첫 번째 고양이의 키를 보유 함)을 /root/.ssh/authorized_keys에 추가합니다.

이 것들을 스크립트로 모아서 원격에 chmod / chown을 추가하면 필요한 것을 얻을 수 있습니다.


아름답고 명령 분석에 감사드립니다.
Blake Frederick

1

예 :), 예를 들어 ghost @ ubuntu로 로그인하면

ssh-copy-id root@host-ip

보다시피, 호스트 서버에서로 /root/.ssh/authorized_keys끝나는 파일 키에 ghost@ubuntu있습니다.
이것은 유령 사용자가 자신의 키 페어를 복사했으며 더 이상 암호를 입력 할 필요가 없다는 것을 의미합니다. 플래그
와 함께 작동하는지 확실하지 -u <username>않지만 언제든지 다른 사용자로 로그인 할 수 있습니다

su <user_name> 

그런 다음 ssh-copy-id ...


1
/root/.ssh/authorized_keys대신에 키가 설치 /home/ghost/.ssh/authorized_keys됩니까? 방금 새 사용자를위한 공개 키를 설치하기 위해 현재 수행중인 절차를 업데이트했습니다. 더 나은 방법을 찾고 있습니다. 감사!
realguess 2018 년

이 키는 원격으로 연결하는 사용자의 집에 설치됩니다. ssh-copy-id의 -i 옵션을 사용하여 복사 할 키를 지정할 수 있지만 일반적인 ssh-copy-id를 사용하여 다른 디렉토리로 복사 할 수는 없습니다.
user2313067 2016 년

ssh-copy-id root @ host-ip보다 루트로 로그인하려는 경우 ssh-copy-id보다 유령으로 원하는 경우 키를 복사 할 사용자를 지정할 수 있습니다. ghost @ host-ip
mirkobrankovic

1
공개 키로 만 로그인 할 수 있도록 시스템이 설정되었습니다. 사용자 ghost가 새로 작성되었으므로 사용자 가 사용할 수있는 공개 키가 없습니다. 따라서 사용자의 공개 키를 먼저 설치해야 ssh-copy-id ghost@host-ip작동합니다. 그러나 감사합니다. 원격 서버의 몇 가지 추가 명령은 크게 중요하지 않습니다.
realguess

예, 먼저 펍을 생성해야합니다. 주요 지역 및 원격 서버에 대한 ssh-copi-id
mirkobrankovic
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.