У меня дома есть сервер Ubuntu, и я использую ключи SSH для входа через терминал с моего ноутбука. Редко, но в основном с работы, мне нужен доступ к этому серверу, но я не хочу копировать ключи на своем рабочем ноутбуке - я бы просто использовал простой пароль для этого.
Так что, если я включу пароль для входа из конфигурационного файла ssh, он также спросит меня пароль на моем ноутбуке, даже если он содержит ключи, верно?
Есть ли способ остановить это поведение?
Благодаря.
Можно заставить ваш ноутбук использовать ключевой файл, даже если доступны как пароль, так и подход на основе ключей. Если вы в настоящее время соединяетесь с 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) )
Нет, по крайней мере, с той конфигурацией, которая у меня есть, если вы включите аутентификацию по паролю, она будет запрашивать пароль, только если у вас нет ключа.
Как говорится, я бы никогда не включил аутентификацию по паролю на сервере, который подключен к Интернету.
Настройте свою рабочую станцию с помощью того же процесса (но не тот же закрытый ключ), как Вы сделали при установке ноутбука:
тип: ssh-keygen -t rsa
тип: ssh-copy-id username@hostname.net
(но используйте свое фактическое имя пользователя и имя хоста и более поздний тип в Вашем пароле, когда это попросит его).
Это устанавливает открытый ключ Вашей рабочей станции в ~/.ssh/authorized_keys
файл для того пользователя на сервере.
Я предполагаю, что то, что Вы действительно спрашиваете,
Что правильный путь состоит в том, чтобы сделать это?
У людей есть вбитый в их голову, что одна учетная запись на сервере имеет единственное имя пользователя и, конечно, единственный авторизованный пароль.
Системы с открытым ключом как ssh лучше, чем система пароля: Одна учетная запись на сервере имеет единственное имя пользователя и любое количество авторизованных открытых ключей, все они перечисленные в ~/.ssh/authorized_keys
файл.