Вопрос: как вы создаете ключ ssh для другого пользователя?


Я пытаюсь создать ключ ssh для другого пользователя. Я зарегистрирован как root. Могу ли я просто отредактировать файлы, созданные ssh-keygen, и изменить корень на пользователя, которого я хочу?


70
2017-10-22 19:24


Источник


Если вы создаете ключ для пользователя, у вас также должен быть защищенный метод получения секретного ключа и его фразы для пользователя. Гораздо лучше пользователь генерирует ключ, а затем просто посылает вам по электронной почте открытый ключ. - Iain
Но разве это не так сложно, если вы не разрешаете вход в систему? Если я только ключ, и я настроил нового пользователя, они не могут войти в систему, чтобы настроить свой ключ. - LVLAaron


Ответы:


Вы можете сделать это с помощью ssh-keygen, однако, помните, что закрытый ключ предназначен для пользователя, поэтому вы должны быть очень осторожны, чтобы он был безопасным - настолько же безопасным, как и пароль пользователя. Или даже безопаснее, так как пользователь вряд ли потребуется изменить его при первом входе в систему.

ssh-keygen -f anything создает два файла в текущем каталоге. anything.pub это открытый ключ, который вы можете добавить к ~/.ssh/authorized_keys на любом целевом сервере.

Другой файл, только что названный anything является закрытым ключом и поэтому должен храниться безопасно для пользователя. Расположение по умолчанию было бы ~username/.ssh/id_rsa (здесь id_rsa, который по умолчанию используется для ключей rsa). Помните, что .ssh каталог не может быть доступен для чтения или записи кем угодно, кроме пользователя, а домашний каталог пользователя не может быть доступен для записи кем угодно, кроме пользователя. Аналогично, разрешения также должны быть тесно связаны с закрытым ключом: чтение / запись только для пользователя, а каталог .ssh и закрытый ключевой файл должны принадлежать пользователю.

Технически вы можете хранить ключ в любом месте. С ssh -i path/to/privatekey вы можете указать это местоположение при подключении. Опять же, правильное владение и разрешения имеют решающее значение, и ssh не будет работать, если у вас их нет.


70
2017-10-22 19:35



+1 для выражения того, что это частный (!) Ключ - mailq
Вы предполагаете, что пользователь - настоящий человек. Если логин является неинтерактивным пользователем, используемым для выполнения служебных задач (например, выполняется запуск сценариев maine на удаленных серверах), то да, вы, вероятно, будете генерировать ключ для этого пользователя вручную. Конечно, это имеет свои последствия для безопасности, но это уже другая история. - Rilindo
@Rilindo ssh -i к закрытому ключу для непривилегированного процесса - это то, как я обрабатываю несколько автоматических процессов резервного копирования rsync. :) - Shadur
Мне не нравится такой ответ, который говорит: «Вы не должны этого делать», но не отвечайте на вопрос. Хотя это может быть правильным и полезным для контекста исходного вопроса, у других людей может быть один и тот же вопрос в другой ситуации. «ssh-ключи никогда не должны генерироваться для другого пользователя»: это верно в простом случае. Но рассмотрите несколько идентичностей одного и того же физического лица, например. В нескольких системах может быть несколько учетных записей, причем не все из них позволяют создавать ключи или позволять соответствующим образом защищать конфиденциальные ключи. - Gustave
usersили user's - User


Там в нет информации пользователя в SSH-ключах,

Последнее поле открытого ключа - это комментарий (и его можно изменить, выполнив следующую команду ssh-keygen -C newcomment).

Не нужно делать ничего особенного, чтобы сделать ключ для другого пользователя, просто поместите его в нужное место и установите разрешения.


105
2017-10-22 19:55



Это правильный ответ. - sebnukem
Я просто проверяю и подтвержу, это не просто комментарий, но его можно удалить, а клавиши все еще функционируют. Я всегда думал, что это важно! Спасибо, что дали правильный ответ. Как и комментарии выше, у меня есть причина для создания ключей для других пользователей, но я не скажу, почему, поэтому у вас нет аргументов. - FreeSoftwareServers


Станьте пользователем, используя су и запустите ключ как пользователь:

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

16
2017-10-22 19:35



Зачем указывать DSA? - Ram
Упс, привычка. Позвольте мне обновить. - Rilindo
вы должны использовать rsa (или, возможно, один из вариантов эллиптической кривой). dsa ограничена небезопасными ключами. rsa1 - это устаревший формат для ssh1, который больше никто не должен использовать. - Peter Green
мой joeuser является пользователем службы, поэтому я не могу войти в систему как они. Как разрешить пользователю службы (который просто запускает процессы) иметь ключ ssh? - Jonathan
@JonathanLeaders Вы должны указать оболочку для пользователя, когда станете этим пользователем. Что-то вроде этого: `` `[root @ ip-10-254-41-211 ~] # grep ftp / etc / passwd ftp: x: 14: 50: FTP Пользователь: / var / ftp: / sbin / nologin [root @ ip-10-254-41-211 ~] # su - ftp su: warning: невозможно изменить каталог в / var / ftp: нет такого файла или каталога Эта учетная запись в настоящее время недоступна. [root @ ip-10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $ `` ` - Rilindo


Как видно Вот, вы можете использовать chmod для изменения разрешений на чтение папки пользователя, к которому вы хотите добавить ключ SSH.

vim /home/username/.ssh/authorized_keys

Затем просто вставьте ключ в новую строку внизу этого файла


5
2018-01-09 23:42



Ссылка мертва ... - Nyxynyx