2016-07-08 5 views
-1

I (очень) недавно опубликовано this вопрос в отношении tar over ssh.tar over ssh в сочетании с sshpass

Вопрос теперь имеет ответ, и теперь я задаю другой вопрос.

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

tar -cJf - ./my_folder | ssh [email protected] 'tar -xJf - -C ./path-to-my_folder/' 

Я знаю, что с ssh/scp я могу использовать sshpass -p password, чтобы остановить команду просить мой пароль каждый раз. Обратите внимание, что я не могу использовать альтернативные методы аутентификации.

Возможно ли совместить sshpass с моей приведенной выше командой, чтобы я не мог постоянно вводить пароль?

Другими словами как я должен изменить вышеприведенная команда включить sshpass, так что я не придется вводить свой пароль каждый раз, когда выполняется команда выше?

Edit: Обратите внимание на следующее работает

Например

sshpass -p <password> ssh ... blaa blaa 
sshpass -p <password> scp ... blaa blaa 
+0

Вы смотрели на следующий пост на askubuntu, http://askubuntu.com/questions/282319/how-to-use-sshpass? – mattias

+0

@mattias Я этого не видел, но, похоже, это не актуально? – user3728501

+0

Возможно, тогда я неправильно понял ваш вопрос. Вы знаете, как использовать sshpass, так что в чем проблема? – mattias

ответ

0

Я думаю, что вы можете использовать что-то вроде этого:

tar -cJf - ./my_folder | sshpass -p $remote_ssh_password ssh -o StrictHostKeyChecking=no [email protected]$remote_web_address "tar -xJf - -C ./path-to-my_folder/" 

Примечание: StrictHostKeyChecking = не избежать приглашения для подтверждение отпечатка пальца сервера. Это может создать проблему безопасности:

«Поэтому, если вы хотите узнать, разговариваете ли вы с правильным сервером (а не каким-то имперсонатором), вам просто нужно вычислить ключевой отпечаток сервера (от общественности ключ, который сервер просто послал вам) и сравнить его с «эталонным отпечатком».

Более подробную информацию можно найти на here

+0

Совершенно спасибо, что это сработало – user3728501

+0

Но почему строгий ключ проверки ключа? – user3728501

+2

@ user3728501 - 'StrictHostKeyChecking = no' не попросит принять ключ хоста, если он еще не находится в' known_hosts'. Без него сценарий остановится и попросит принять, что 'sshpass' может неверно истолковать. – alvits

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

  • Нет связанных вопросов^_^