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

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

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

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

Благодаря.

4
задан 14 April 2012 в 23:37

3 ответа

Можно заставить ваш ноутбук использовать ключевой файл, даже если доступны как пароль, так и подход на основе ключей. Если вы в настоящее время соединяетесь с ssh user@your.host.tld -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) )

0
ответ дан 14 April 2012 в 23:37

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

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

0
ответ дан 14 April 2012 в 23:37

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

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

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

тип: ssh-keygen -t rsa

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

тип: ssh-copy-id username@hostname.net

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

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

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

подробнее

Я предполагаю, что то, что Вы действительно спрашиваете,

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

Что правильный путь состоит в том, чтобы сделать это?

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

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

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

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

2
ответ дан 14 April 2012 в 23:37

Другие вопросы по тегам:

Похожие вопросы: