Существует ли путь к пользователю к ssh как другой пользователь, использующий ssh_keys? Например, я имею, размещают B и C.
User X SSHes from A to B as himself ( A -- as X --> B )
Now the user wants to SSH to C from B but as a diff account ( Y ) B --- as Y ---> C
Мне сохранили ключи в/home/Y/.ssh/[id_rsa | id_rsa.pub]
Теперь, Когда X находится на B и выполнениях ssh Y@C
это выберет ключ SSH от Y? или если ключ указан в команде с флагом-i, как ssh Y@C -i /home/Y/.ssh/id_rsa
Первое не работало на меня, это попросило пароль, когда я скопировал ключи к своему домашнему пути dir, т.е. в /home/X/.ssh/
и дал разрешение, оно работало.
Идеально я хотел бы позволить любому луг SSH B к SSH к C как Y. И я не хочу копировать ключ к каждому, люди размещают dir. Как я пошел бы о с этим?Спасибо.
Это становится все более распространенным заблуждением вокруг разрешения ssh
. Просто наличие открытого ключа на удаленном сервере не дает никому возможности аутентифицироваться, используя соответствующий закрытый ключ.
Выполните sshd человека
и поищите информацию о файле authorized_keys
. Этот файл, remoteserver:~remoteuser/.ssh/authorized_keys
, является тем, к чему обращается демон remoteeserver'ssh при принятии решения о том, какой(ие) закрытый(ые) ключ(ы) принять для входящей аутентификации.
Вам не нужно копировать закрытый ключ во все домашние каталоги пользователей; вам нужно собрать копии открытых ключей всех пользователей и поместить их в C:~Y/.ssh/authorized_keys
, по одному ключу на строку. Пользователи могут затем ssh Y@C
; хотя в зависимости от какого публичного ключа они дали вам (или вы собрали), им может понадобиться указать соответствующий закрытый ключ с -i /home/X/.ssh/id_rsa_relevant_private_key
.
Если вы даже не хотите этого делать, вы должны разрешить всем (соответствующим) пользователям на C sudo /bin/su - Y
; заставьте их войти как самих себя, затем используйте sudo
для изменения идентификации.
Правка после вашего комментария ниже: да, это сделает: но это также сделает невозможным отзыв доступа любого пользователя к этой учетной записи, т.к. есть только один ключ. Это кошмар обслуживания и безопасности, и вы ни при каких обстоятельствах не должны этого делать.
Я сделал предложение выше о sudo
на тот случай, если вы почувствуете, что это так.
SSH авторизация в основном состоит из 3 файлов для каждого пользователя. id_rsa - закрытый ключ, используемый для авторизации id_rsa.pub - публичный ключ authorized_keys - файл, содержащий открытые ключи, используемые для входа в систему
Поместите ваш открытый ключ X пользователя на C-сервере в авторизованные_ключи, принадлежащие Y-пользователю. Помните о правильных разрешениях!
Для доступа без пароля всем пользователям необходим их открытый ключ. Обходного пути здесь нет, но вставка копирования - не лучший метод. Используйте инструмент распыления по вашему выбору.
PS: чтение ключа от другого пользователя совсем небезопасно. Оставайтесь простыми :)
.