Como copiar a pasta clone para o computador remoto em uma linha?

0

Eu tenho duas máquinas com a mesma estrutura de pastas. Um é o meu computador pessoal, o outro é um computador remoto. Às vezes, quero que um programa seja executado no computador remoto. No momento eu sempre preciso

  1. ssh para o computador remoto
  2. Digite minha senha
  3. copie a pasta manualmente usando o rsync

Mesmo se eu escrevesse um script para o rsync (como o mostrado abaixo), eu ainda precisaria digitar minha senha toda vez ou codificá-la dentro do script bash (o que seria estúpido).

#!/bin/bash/
pathToSync="/path/to/my/Folder/"
rsync -r -l -p --progress "$pathToSync"/ myUsername@nameOfRemoteComputer:"$pathToSync"

Alguém tem uma ideia de como resolver este problema de forma mais eficiente? Que no final eu só preciso escrever

sync myFolder nameOfRemoteComputer

A pergunta foi respondida.
Como adição à resposta correta dada abaixo. Aqui estão os comandos bash para tornar ssh e rsync funcionando sem precisar digitar senhas. No tipo de computador cliente:

mkdir ~ / .ssh # Talvez esta pasta já exista   chmod 700 ~ / .ssh   cd ~ / .ssh   ssh-keygen -t rsa # Isso cria uma chave pública   cp authorized_keys authorized_keys_Backup # Isso faz backup de chaves antigas / existentes   cat id_rsa.pub > > ~ / .ssh / authorized_keys   ssh-copy-id nameOfRemoteComputer

Feito! (- > Verifique se o ssh funciona sem senha agora) (Eu tenho o mesmo nome de usuário no cliente e no computador remoto, caso contrário seria ssh-copy-id myRemoteUsername@nameOfRemoteComputer )

    
por mcExchange 19.01.2016 / 14:59

1 resposta

3

SCP

Como você tem acesso ssh, basta usar o comando scp para fazer seu trabalho.

No terminal, digite:

scp -r /path/to/my/folder myUsername@nameOfRemoteComputer:/path/to/my/folder

Se você também usa o mesmo nome de usuário em ambos os computadores, você pode até mesmo omitir myUsername@ e digitar:

scp -r /path/to/my/folder nameOfRemoteComputer:/path/to/my/folder

O nome do copunidador remoto pode ser um IP, um nome de domínio ou um nome atribuído em /etc/hosts .

Evite digitar senha para conexão SSH

Você pode configurar um par de chaves SSH entre seu servidor e sua máquina local.

Sugiro que você use o aplicativo Senhas e chaves . Deve vir pré-instalado no Ubuntu.

Novopardechaves

Pressioneoverde+ecrieumanovaSecureShellKey.Sigaascaixasdediálogoparacriarumnovopardechaves.

Aqui você pode encontrar os comandos do terminal para gerar o par de chaves id_rsa e id_rsa.pub , você precisará obter uma cópia de id_rsa.pub em seu servidor para fazer o par de chaves funcionar.

Adicione o conteúdo de id_rsa.pub ao arquivo ~/.ssh/authorized_keys em seu servidor em uma nova linha. Você poderia usar o comando: cat id_rsa.pub >>~/.ssh/authorized_keys após o login no ssh.

Se você definir uma frase secreta para a chave privada, precisará inserir a frase secreta para desativá-la. Não atribua senha para facilitar o uso.

    
por Torrien 19.01.2016 / 15:09