23

ssh-copy-id может быть использован для установки вашего открытого ключа в authorized_keys ключах удаленного компьютера. Может ли та же команда использоваться для установки открытых ключей других пользователей, если у вас есть возможность sudo ?

Обновление: и локальный, и удаленный используют Ubuntu 12.04.

Обновление 2: описание процедуры создания новой учетной записи пользователя и добавления открытого ключа

  1. (удаленно) Создайте новую учетную запись пользователя и установите для нее только доступ с открытым ключом пользователя.
  2. (локальный) Создать открытый ключ для новой учетной записи пользователя (ssh-keygen).
  3. Обычно я создаю на удаленном сервере каталог и файл .ssh/authorized_keys , затем копирую и вставляю открытый ключ, сгенерированный локально, в учетную запись нового пользователя. Что я ищу, так это то, что если я смогу использовать ssh-copy-id чтобы установить открытый ключ вновь созданного пользователя непосредственно в каталог ssh. Просто чтобы сохранить еще пару команд.

2 ответа2

8

Не та команда, но если у вас есть sudo на удаленном хосте, вы можете использовать ssh для удаленного выполнения необходимых шагов. Я использую следующую команду, чтобы передать мой ключ ssh пользователю root моего raspberry:

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 на удаленную сторону, и вы получите то, что вам нужно.

1

Да, :) Если вы, например, зарегистрированы как ghost @ ubuntu и вы

ssh-copy-id root@host-ip

Затем вы увидите на главном сервере в файле /root/.ssh/authorized_keys ключ, заканчивающийся ghost@ubuntu .
Это означает, что пользователь-призрак скопировал свою пару ключей и ему больше не нужно вводить пароль.
Я не уверен, что теперь он будет работать с флагом -u <username> , но вы всегда можете войти как другой пользователь с

su <user_name> 

а затем ssh-copy-id ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .