Deseja escrever um simples script bash de atualização do SVN

1

Eu quero escrever um script bash simples que atualizará uma cópia de trabalho do SVN em um determinado diretório. O repositório é acessado com o protocolo svn+ssh . O processo básico que isso precisa seguir é:

#!/bin/bash

# temporarily relax firewall
iptables -I OUTPUT -p tcp --dport 12345 -j ACCEPT

svn up /path/to/working/copy
# prompt for ssh password will be here

# close firewall again
iptables -I OUTPUT -p tcp --dport 12345 -j REJECT

O que eu estou preso nele é dizer ao meu script bash para fornecer a senha para o SSH quando solicitado. Digitar a senha na linha após o comando svn up , previsivelmente, não funciona.

Isso é possível? Se não, formas alternativas de alcançar este objetivo serão apreciadas.

P.S. Eu sei que deveria estar usando a autenticação de chave pública / privada SSH, mas a pessoa que executa o servidor que hospeda o repositório SVN não está interessada em configurar isso para mim!

    
por Sam Hastings 22.02.2012 / 15:54

1 resposta

2
  

P.S. Eu sei que deveria estar usando a autenticação de chave pública / privada SSH, mas a pessoa que executa o servidor que hospeda o repositório SVN não está interessada em configurar isso para mim!

Bem, isso é muito cruel! Eu suponho que você tenha acesso SSH para fazer isso. A maioria das instalações modernas do OpenSSH não requer nenhuma configuração no servidor (após instalá-lo). Eu consideraria seriamente apenas tentar configurar uma chave SSH primeiro:

ssh-keygen
ssh-copy-id username@remotehost

Em seguida, tente apenas ssh username@remotehost . Se você entrar, mágica, se isso não acontecer, você só perdeu um minuto de sua vida:)

Depois disso, você tem opções como expect e sshpass , que são muito piores porque você codifica sua senha em texto simples. Yuk.

    
por Oli 22.02.2012 / 16:26