
Предположим, у меня есть удаленная система с именем «remotesystem» и учетная запись пользователя «foouser» в этой системе.
Я знаю, что в моей локальной системе я могу сгенерировать пару ключей SSH как локальный пользователь "foouser", поместить открытый ключ в файл "/home/foouser/.ssh/authorized_keys" на "remotesystem". Когда я подключаюсь по SSH как "foouser" из моей локальной системы в "remotesystem", SSH использует пару ключей для моей аутентификации.
Но что, если мое локальное имя пользователя не совпадает с именем пользователя на удаленной системе? То есть, что, если я хочу подключиться по SSH как локальный пользователь "baruser" к "remotesystem"? Очевидно, мне нужно будет сгенерировать пару ключей для "baruser" и добавить открытый ключ в "/home/foouser/.ssh/authorized_keys". Затем я должен иметь возможность "ssh foouser@remotesystem", будучи локально зарегистрированным как "baruser", и SSH будет использовать пару ключей для аутентификации, верно?
Я спрашиваю, потому что пытаюсь заставить работать аутентификацию ключа в этом сценарии, но безуспешно. Я не уверен, связано ли это с несоответствием имени пользователя или с проблемой конфигурации сервера SSH на удаленной системе.
решение1
Да, вы можете это сделать, именно так, как вы описали.
baruser@here ~$ ssh-add -l 4096 10:b3:fd:29:08:86:24:a6:da:0a:dd:c6:1e:b0:66:6a id_rsa (RSA) baruser@here ~$ ssh foouser@remotesystem сообщение motd и т.д. foouser@remotesystem ~$
решение2
Это небольшое отступление, но...
Если вы всегда используете одно и то же имя пользователя для удаленного сервера, вам также может быть полезно добавить хост в конфигурацию ssh:
Host remotesystem
User baruser
Таким образом, вам не придется помнить о необходимости указывать имя пользователя при входе в систему, и вы исключите это, если в будущем возникнут проблемы с ключами.
решение3
Ваше локальное имя пользователя не имеет значения (кроме того, что закрытый ключ должен находиться в домашнем каталоге вашего локального пользователя). Просто скопируйте ключ в раздел удаленного пользователя, authorized_keys
и это сработает.
решение4
При возникновении любых проблем, связанных с ssh, первое, что следует сделать, — увеличить уровень детализации клиента:
ssh пользователь@машина -vvv
Если это не даст вам никаких сведений о причине неполадки, вам необходимо изменить уровень ведения журнала на сервере и перезапустить демон.
LogLevel DEBUG3
Вы должны найти вывод отладки в /var/log/auth.log (или там, где ssh настроен для входа в систему). После того, как вы нашли проблему, не забудьте вернуть ее к тому состоянию, в котором вы ее нашли.