2013-02-20 1 views
1

Я последовал за следующие шаги:Всегда спрашивать пароль при SCPing файл в Linux Server с компьютера Windows, используя Maven 2.2:

  1. Created ключ SSH с идента ABC на окна машины с помощью Git Баш.

  2. Скопировано открытый ключ сервера Linux с идента корня:

    scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/.

    Она запросила пароль и скопировать файл.

  3. SSH root @ Linuxserver с помощью git bash -> введенный пароль сервера Linux -> зарегистрирован на сервере linux.

  4. Скопировано открытый ключ authorized_keys в .ssh на Linux сервере:

    cat id_rsa.pub >> authorized_keys

  5. SSH корень @ Linuxserver с помощью Git Баш -> входит в систему без запроса пароля

  6. SCP через Maven Безразлично 't работать без проблем и всегда запрашивать пароль. Даже пароль root от Linux не работает, и он продолжает запрашивать пароль снова и снова.

Ниже в файл настроек в Maven:

<server> 
    <id>Linuxserver</id> 
    <username>ABC</username> 
    <privateKey>${user.home}/.ssh/id_rsa</privateKey> 
    <filePermissions>664</filePermissions> 
    <directoryPermissions>775</directoryPermissions> 
    <configuration></configuration> 
</server> 

Ниже приводится выдержка из pom.xml:

<extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ssh</artifactId> 
     <version>1.0-beta-6</version> 
    </extension> 
</extensions> 

... 

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>wagon-maven-plugin</artifactId> 
     <version>1.0-beta-3</version> 
     <configuration> 
     <serverId>Linuxserver</serverId> 
     <fromFile>${project.parent.basedir}/projectname/filename</fromFile> 
     <url>scp://Linuxserver.com/testdirectory</url> 
     </configuration> 
     <executions> 
     <execution> 
      <id>upload-file-to-server</id> 
      <phase>verify</phase> 
      <goals> 
      <goal>upload-single</goal> 
      </goals> 
     </execution> 
     </executions> 
</plugin> 

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

+0

Пожалуйста, нажмите ctrl + k и поместите код внутри создаваемого раздела, чтобы он мог быть обернут и выглядел надлежащим образом для отображения. – Shail

+0

Вы пытались запустить Maven с '-X 'посмотреть, есть ли какой-нибудь интересный вывод отладки? Вы можете выполнить поиск по выходному файлу для имени пользователя SSH и посмотреть, не случилось ли что-либо. –

ответ

0

Возьмем пример:

localuser $ ssh [email protected]

Теперь SCP или SSH с помощью проверяет две вещи (с учетом открытого ключа авторизации):

  1. Закрытый ключ из использования выдавшего SSH команда, обычно ~/.ssh/id_rsa. В примере это будет /home/localuser/.ssh/id_rsa

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

Я не знаю много о Maven конфигурации, но кажется, что вы пытаетесь войти в систему как пользователь ABC, в этом случае пользователь должен ABC у вас есть ключ вашего локального пользователя в файле authorized_keys

+0

Правильно.И это то, за чем я последовал. Открытый ключ пользователя ABC был скопирован на authorized_keys, и поэтому руководство командной строки SSH через командную строку git bash отлично работает без запроса пароля. Но этого не происходит через wagon-maven-plugin, который я использую. Как выбрать мой SSH-ключ пользователя ABC при использовании этого плагина Maven? Я думаю, что недостающий кусок здесь. Опять же, git bash хорошо выполняет эту работу, потому что знает, что я являюсь пользователем ABC. – user2091559

+0

Наконец-то я смог решить это после 3 дней борьбы и более 50 неудачных попыток. Вот преступник: scp: //Linuxserver.com/testdirectory user2091559

+0

классный :) .. теперь пожалуйста upvote :) – ShadyKiller

Смежные вопросы