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

scp -i "cygdrive/c/users/userid/privkey..." user@linux:/dirA/dirB/* .

Когда я запускаю эту команду в окне win2008, он регистрируется в окне Linux, сопоставляет ключи и отправляет файлы в окно win2008. Если я не укажу ключ, он запросит у меня пароль.

Я сгенерировал ключи на коробке win2008 с помощью ssh-keygen. Я добавил ключ Linux в настройке winsshd под открытыми ключами. Затем я взял ключ из ssh-keygen и положил его на коробку с Linux.

Где команда scp ищет ключ? Как я могу запустить scp из окна win2008, не передавая ключ в качестве параметра?

2 ответа2

0

Если я правильно понимаю ваш вопрос, есть несколько вариантов ...

  1. установить расположение файла идентификации по умолчанию так же, как это делается для SSH, как описано здесь ... https://stackoverflow.com/questions/84096/setting-the-default-ssh-key-location

  2. или псевдоним вашей команды scp для включения модификатора, например так ... alias scp='scp -i /path/of/keyfile'

Они оба должны работать, но я рекомендую вариант 1 вместо варианта 2. Это более правильный способ сделать это.

0

Я думаю, что нашел свой ответ. Очевидно, что scp ищет файл закрытого ключа с именем id_dsa И хочет, чтобы файл находился в каталоге .ssh. Однажды я нашел home/.ssh в структуре каталогов cygwin (еще один ключевой элемент головоломки), добавил файл закрытого ключа с именем id_dsa и выполнил команду scp без опции -i, это сработало. Спасибо всем за посылку «умных» вибраций на моем пути, чтобы я смог разобраться с этим. Больше не сбит с толку! Мне нравятся все предложения, сделанные здесь. Ценю быструю обратную связь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .