возможно ли подключиться по ssh к серверу Ubuntu с ключами и с другого компьютера с помощью пароля?

возможно ли подключиться по ssh к серверу Ubuntu с ключами и с другого компьютера с помощью пароля?

У меня дома есть сервер Ubuntu, и я использую ключи SSH для входа через терминал с моего ноутбука. Редко, но в основном по работе, мне нужно получить доступ к этому серверу, но я не хочу копировать ключи на свой рабочий ноутбук - я бы предпочел просто использовать для этого пароль.

Итак, если я включу вход по паролю из файла конфигурации SSH, он также запросит пароль на моем ноутбуке, даже если он содержит ключи, верно?

Есть ли способ остановить такое поведение?

Спасибо.

решение1

Используйте два закрытых ключа

Настройте свою рабочую станцию, используя тот же процесс (нонеттот же самый закрытый ключ), который вы использовали при настройке ноутбука:

  • Никогда не бывает веской причины копировать закрытый ключ с какой-то другой машины. Если вы еще не сгенерировали новый закрытый ключ на своей рабочей станции, сделайте это сейчас. Также сгенерируйте соответствующий открытый ключ. В терминале на своей рабочей станции,

тип:ssh-keygen -t rsa

  • Скопируйте открытый ключ вашей рабочей станции на сервер. В терминале на вашей рабочей станции,

тип:ssh-copy-id [email protected]

(но используйте свое настоящее имя пользователя и имя хоста, а затем введите свой пароль, когда он будет запрошен).

Это установит открытый ключ вашей рабочей станции в ~/.ssh/authorized_keysфайл для этого пользователя на сервере.

  • Шага 3 нет. С этого момента вы можете войти на сервер со своей рабочей станции, и вы никогда не копировали секретный закрытый ключ своего ноутбука со своего ноутбука.

подробности

Я предполагаю, что на самом деле вы спрашиваете:

  • У меня есть сервер Ubuntu («домашний»)
  • Я вхожу на свой сервер Ubuntu со своего личного ноутбука («ноутбук»).
  • Я также вхожу на свой сервер Ubuntu со своего рабочего компьютера («рабочей станции»).

Как правильно это сделать?

  • Я полагаю, что я мог бы просто войти с тем же паролем из обоих мест. Это не может быть правильным способом, потому что все говорят, что аутентификация с открытым ключом намного лучше паролей.(а)
  • Я полагаю, что я мог бы просто скопировать закрытый ключ со своего ноутбука на свою рабочую станцию. Это не может быть правильным способом, потому что все говорят, что закрытый ключ никогда не должен покидать клиентскую машину.

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

Системы с открытым ключом, такие как SSH, лучше, чем система паролей: одна учетная запись на сервере имеет одно имя пользователя илюбое количество авторизованных открытых ключей, все они перечислены в ~/.ssh/authorized_keysфайле.

(больше деталей).

решение2

Можно заставить ваш ноутбук использовать файл ключей, даже если доступны оба подхода: пароль и ключ. Если вы в данный момент подключаетесь к , отредактируйте и добавьте:ssh [email protected] -p 22~/.ssh/config

Host your.host.tld
    PreferredAuthentications publickey

Этот файл конфигурации можно использовать, чтобы вам приходилось печатать еще меньше:

Host home
    Hostname your.host.tld
    User user
    PreferredAuthentications publickey
    Port 22

При такой конфигурации вам понадобится только ssh home.

Можно ограничить входы на основе пароля определенным IP-адресом. В /etc/ssh/sshd_config, у вас будет строка, которая отключает аутентификацию на основе пароля: PasswordAuthentication no. Чтобы включить ее для входов с определенного IP-адреса, вы можете использовать:

Match Address 12.34.56.78
    PasswordAuthentication yes

Я предлагаю вам использовать аутентификацию на основе ключей, даже если вы на работе. Это гораздо безопаснее, чем аутентификация на основе паролей, поскольку ее не так легко взломать. Вы можете иметь несколько ключей для одной учетной записи, это не должно быть проблемой.

Для более сложных директив конфигурации см. страницу руководстваssh_config(5). (для серверной части см.sshd_config(5))

решение3

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

При этом я бы никогда не включил аутентификацию по паролю на сервере, открытом для доступа в Интернет.

Связанный контент