Что мешает кому-либо скопировать свой открытый ключ ssh на мой сервер?

0

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

Я следую этому руководству и понимаю его до тех пор, пока в нем не сказано

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

Вы можете скопировать открытый ключ в authorized_keysфайл новой машины с помощью ssh-copy-id command. Обязательно смените пример имени пользователя и IP-адреса ниже.

ssh-copy-id user@123.45.56.78

Кроме того, вы можете вставить ключи с помощью SSH:

cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Я сбит с толку, потому что никто не может просто сгенерировать ключ rsa на своем локальном компьютере, а затем скопировать его на мой сервер (при условии, что они знают IP-адрес или доменное имя и имя пользователя на сервере)?

user2237160
источник
Да, вы видели из ответа DanielB. Кроме того, вам также нужно включить PasswordAuthentication, чтобы скопировать ключ. Иногда руководства не объясняют ничего хорошего, кроме того, какие команды вводить. Таким образом, способ узнать из руководства - это сделать это из руководства. В этом случае, если вы попробуете это, вы увидите, что он запрашивает пароль.
Барлоп
Хорошо, у меня есть еще один вопрос. Как это лучше, чем использовать пароли, поскольку кто-то может просто попытаться перебрать метод перебора своего ключа, поскольку все, что вам нужно для копирования ключа, это пароль.?
user2237160
или это тот случай, когда после того, как вы отключите PasswordAuthentication в настройках, больше ключей rsa не будет скопировано на сервер?
user2237160
перебор. После того, как ключ скопирован, тогда PasswordAuthentication можно установить на Нет. Тогда ssh-copy-id не может войти. Чтобы войти, ssh-copy-id войдет в ssh. Таким образом, если ключ исходного компьютера не находится на для целевого сервера и PasswordAuthentication установлено значение No, тогда ssh-copy-id не может войти, так как ssh также не может войти. По умолчанию ssh сначала пытается использовать PubKeyAuthentication, а затем PasswordAuthentication. Таким образом, если ключ работает, он не получает никаких подсказок, а если ключ не работает, вы получаете запрос пароля. И sshd часто имеет PubKeyAuthentication и PasswordAuthentication к да.
Барлоп
Я не уверен, пытается ли ssh-copy-id выполнить PubKeyAuthentication, но если это будет сделано, это будет бессмысленно. Потому что, если он может войти через ключ, то ему нечего делать, а если нет, ему все равно придется попробовать PasswordAuthentication. Кстати, ssh может, например, войти в систему, указав только PasswordAuthentication $ ssh -o "PubKeyAuthentication no" user@comp или PasswordAuthentication no, поэтому он пытается только PubKeyAuthentication. По умолчанию он пытается оба, т.е. ключ, затем, если это не удается, то пароль. И какой бы метод он ни использовал, он может работать, только если sshd_config на компьютере dest это позволяет
barlop

Ответы:

2

Вы, кажется, недоразумение. После запуска ssh-copy-id bla@example.comвы получите подсказку Password:. Без знания пароля или каких-либо других действительных учетных данных команда фактически не может работать.

Даниэль Б
источник
0

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

Дэвид Шварц
источник
Ну, как вы определяете, кому разрешено копировать ключи? Я сбит с толку, потому что весь учебник выглядит так, как будто вы выполняете операции локально на своем компьютере, а затем вдруг каким-то образом разрешается копировать ваш ключ на сервер, требуя только имя пользователя и IP-адрес
user2237160
@ user2237160 Это могут делать все пользователи без ограничений (способные получить доступ к оболочке или SCP / SFTP или выполнять команды). Почему бы не они? У них есть доступ в любом случае. Потому что для копирования ключа вам необходимо войти в систему с вашими предыдущими учетными данными (другой ключ или пароль или что-то еще).
Даниэль Б
что вы подразумеваете под «для копирования ключа, который вам необходим для входа в систему с вашими предыдущими учетными данными», в руководстве никогда не упоминалось, что вы заходите на сервер, чтобы скопировать ключ. все, что он сказал, было то, что вам нужно сделать ssh-copy-id user @ serverIPAddress. Вы говорите, что эта команда запрашивает у вас пароль пользователя?
user2237160
@DanielB подтвердил это. Вам нужен пароль. Извините за недоразумение
user2237160
Его название было сказать , «не может кто - нибудь скопировать их SSH - ключ на моем сервере? Ответ нет Нет [только те , которые имеют возможное пароль .. и когда PasswordAuthentication включена). Если кто -то может получить в то , что это будет проблема, поэтому его беспокойство является разумным, учитывая вопрос, который он задает.
Barlop