Я не понимаю безопасности в этом заявлении: SSH не выполняет сопоставление имени пользователя, только открытый ключ с сопоставлением закрытого ключа. Это ссылка на предыдущий мой пост, где я могу быть пользователем "svn", но при условии, что у меня есть собственный ключ P / p. Разве я не притворяюсь тем, кем не являюсь?
Вот мой предыдущий вопрос с правильным ответом. Разрешения Linux с svn и Syncro
Кто-нибудь может объяснить?
Серверу, к которому вы подключаетесь, все равно, какое имя пользователя у вас на компьютере. То есть, если на вашем ноутбуке ваше имя пользователя - «foobar», вы все равно можете подключиться как «svn» на сервере. Однако ssh по умолчанию будет использовать ваше имя пользователя, поэтому при необходимости вы должны указать альтернативу.
В вашей ситуации я считаю, что поток такой:
foobar @ ваш компьютер -> ssh -> svn @ сервер
В этом случае клиент ssh будет искать закрытый ключ в вашем каталоге ~ / .ssh / (или его эквиваленте), который соответствует открытому ключу в ~ svn / .ssh / authorized_keys на сервере. Обычный вариант использования в этой ситуации, если в файле authorized_key пользователя svn должно быть довольно много открытых ключей, так что многие разные люди могут подключаться как пользователь svn, без необходимости передавать пароль пользователя svn.
Или, говоря другими словами, вы не «притворяетесь» пользователем SVN - вы становление пользователь SVN на удаленном сервере.
Поэтому, когда вы входите в систему с парой ключей для аутентификации, сервер использует открытый ключ, хранящийся в файле authorized_keys в домашнем каталоге пользователя. как говорится в другом ответе, это находится в домашнем каталоге пользователей svn, поскольку это учетная запись, которую вы используете.
Пара ключей не привязана к вашему идентификатору, ЗА ИСКЛЮЧЕНИЕМ использования этого файла. Или, точнее, эта пара ключей привязана к вашей учетной записи только через ее присутствие в файле authorized_keys в домашнем каталоге пользователей. В самом ключе нет ничего, что связывало бы его с конкретной учетной записью.
Вы можете скопировать этот файл в домашний каталог Боба, и Боб сможет войти в систему, используя эту пару ключей. (Предполагая, что разрешения были установлены правильно).
Есть ли в этом смысл?
Это просто: вы можете войти в систему как любой пользователь удаленной системы, если у вас есть действующие учетные данные - будь то пароль или закрытый ключ. На всякий случай - обратите внимание, что sshd сопоставляет ваш закрытый ключ с авторизованными ключами имени пользователя, под которым вы пытаетесь войти в систему, а не с ключом для вашего собственного имени пользователя, если он у вас есть на этом сервере.
Насколько я могу судить, запрос на то, чтобы исходное имя пользователя было таким же, обеспечило бы небольшую безопасность или ее отсутствие, поскольку, например, если вы являетесь администратором исходного сервера, вы можете создавать любые имена пользователей, какие захотите.
SSH не выполняет сопоставление имени пользователя только между открытым ключом и закрытым ключом.
Это утверждение не имеет смысла и явно ложно. SSHD потребности чтобы знать ваше имя пользователя, чтобы знать, где искать на сервере ваш открытый ключ.
Если у вас есть собственная пара открытого / закрытого ключей ssh, вы можете передать свой открытый ключ кому угодно. Они могут добавить этот ключ в файл $ HOme / .ssh / authorized_keys для любой учетной записи, к которой они хотят предоставить вам доступ.
Когда ты ssh user@host.tld
ssh будет использовать ваш закрытый ключ, хранящийся на хосте, с которого вы отправляетесь, и открытый ключ на host.tld
Хранится в ~user/.ssh/authorized_keys
для подтверждения вашей личности. Ваш открытый ключ также может быть в файле authorized_keys других пользователей, поэтому ssh otheruser@host.tld
также доставит вас.