@Nordman99

Почему не могу закинуть открытый ключ SSH из Линукса в Windows?

Всем доброго дня, такая ситуация - хочу из линукса, Убунта 20.04, подключится в Windows 10 20H2 удаленно по SSH
всё настроил, и на Убунте и на винде служба sshd работает порт слушает, сгенерил и на винде и на убунте ключи,
пробовал для начала подключится без авторизации по ключам - только по паролю, всё ОК, из убунты к винде подключился выполнил

$ssh user@ipaddress

ввёл пароль и всё, я в винде, но нужна авторизация по ключам,
В /etc/ssh/sshd_config строчку PubkeyAuthentication yes выставил
Также и в винде в файле c:\windows\system32\openssh\sshd_config
sshd и там и там перезапустил

выполняю

$ssh-copy-id user@ipaddress

получаю вот такой вывод:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@ipaddress's password: 
"exec" �� ���� ����७��� ��� ���譥�
��������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���.
�⪠���� � ����㯥.
���⥬� �� 㤠���� ���� 㪠����� ����.

тогда выполняю

$ssh-copy-id user@ipaddress &> ~/ssh_log (Кстати где SSH вёдёт свои логи? в /var/log/ ненашел ничего)
смотрю в ~/ssh_log, там следующее:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
"exec" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Отказано в доступе.
Системе не удается найти указанный путь.


Что делать?
читал https://qna.habr.com/q/1010371 но советы оттуда явно не имеют отношения к моей проблеме
  • Вопрос задан
  • 1294 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Нужно полистать конфигурацию вашего sshd сервере на винде и посмотреть где он считает должны быть публичные ключи пользователя.
Это может быть и $USERHOME/.ssh/authorized_keys и $USERHOME/.ssh/authorized_keys2 и что-нибудь еще.
ssh-copy-id может не знать про то, где должны лежать публичные ключи в винде, его нет смысла использовать в данном случае.

Прочитайте документацию к sshd серверу под виндой чтобы понять где он ищет публичные ключи пользователя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
1. Нужно в %programdata%\ssh\sshd_configпрописать
Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys

2. ssh-copy-id не будет работать с windows. Попробуйте
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'

если не получается пробуйте scp
scp ~/.ssh/id_rsa.pub WINDOWS_IP:C:/Users/YOU/.ssh/authorized_keys

если не получается переносите флешкой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы