Как сделать так, чтобы ssh вошел как правильный пользователь?

8

Я использую ssh на разных машинах, в основном на Linux. Учетные записи на этих машинах различаются по схеме именования: если меня зовут First Last, то у меня есть учетные записи: first, flast, last_f, lastf, и иногда мне нужно войти в систему как root. Для каждой машины, которую я использую, я бы хотел, чтобы клиент openssh знал, какую учетную запись использовать, когда я не указываю в командной строке.

Таким образом, вопрос заключается в следующем: как мне сделать ssh server«Правильно», если имя пользователя не указано?

bstpierre
источник

Ответы:

18

Вы можете создать configфайл в своем домашнем .sshкаталоге, в котором можно указать пользователя по умолчанию, файл идентификации и т. Д. И назначить его для псевдонима, который можно использовать для подключения.

Например, вы можете поместить это в ~/.ssh/configфайл:

Host example
    HostName example.com
    User first_last
    IdentityFile ~/.ssh/example_rsa
    Port 22
    RSAAuthentication yes
    PubkeyAuthentication yes

Host example2
    HostName example2.com
    User last_first
    # other parameters as needed

Затем вы можете просто ввести ssh exampleили ssh example2в командной строке для подключения.

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

Больше информации и подробностей о том, что вы можете указать в конфигурационном файле на справочной странице ssh_config .

Рич Адамс
источник
3
Безусловно, вы можете указать сколько угодно в одном файле .config. У меня более 20 без проблем. Я просто оставляю пробел между каждым отдельным хостом, который, вероятно, не требуется, но делает его более читабельным.
Рич Адамс
1
Разве это не configфайл? Без точки в начале?
Данадам
1
@rich пытался заставить вас показать другой сайт в вашем примере; Надеюсь, вы не возражаете против того, чтобы я пошел вперед и бросил это.
Quackote Quixote
4
Отступы, отличные от строк, содержащих «Host foo», значительно помогают в поддержке.
InnaM
1
@CristianCiupitu: Учитывая, что это вопрос Linux, вряд ли я бы назвал справочную страницу OpenBSD официальной. В Linux есть ssh (например, GSSAPIKeyExchange ), которые недоступны в версии BSD.
Денис
1

По ответу Рича Адама я узнал для PuTTY, где он хранит свои настройки.

Все это хранится в дереве реестра, вы найдете его в HKEY_CURRENT_USER\Software\SimonTatham(Саймон Тэтхэм, разработчик PuTTY).
Там вы можете увидеть, как определяется хост.

guerda
источник
1

Если вы хотите изменить его для КАЖДОГО сайта:

Отредактируйте свой, ~/.ssh/configчтобы иметь это:

Host *
    User buck
hopeseekr
источник