Eu estou tentando escrever um script que empurra um site para o meu servidor, onde os arquivos do site estão na minha máquina local para teste.
Ele funciona agora, usando rsync
para atualizar o servidor e, em seguida, ssh
para obter o servidor para executar um script que faz algumas coisas (ou seja, reinicie o apache - o site usa WSGI).
O problema é que eu tenho que inserir minha senha para o servidor duas vezes, que eu não gosto muito.
Existe uma maneira de fazer isso para que eu só tenha que inserir minha senha uma vez? Eu particularmente não quero ter que digitar minha senha, então eu gostaria de ter alguma maneira de fazer isso sem a ssh-key
coisa.
Respostas:
Procure as opções
-M
e-S
emssh(1)
. A idéia é abrir uma conexão principal com o servidor e, em seguida, fazer vários acessos como conexões escravas através do soquete aberto. Veja tambémControlMaster
eControlPath
nossh_config(5)
manual.fonte
Nós temos uma configuração complicada semelhante em nossa universidade. Os usuários são obrigados a usar o login de senha.
Eventualmente eu aprendi sobre o
expect
que pode automatizar isso.No meu caso, tornei meu programa um pouco ilegível para que a senha não ficasse óbvia.
Enfim - primeiro exemplo bem legível que encontrei está aqui :
A ideia é recriar completamente o processo do seu logon manual. Portanto, você precisará saber de antemão quais "perguntas" seu script encontrará e o que ele deve responder.
Também o comando no meu caso foi
Substitua a string
expect
para o que é mostrado no seu caso - e também respostas de entrada, como será necessário lá.Então, por exemplo, se você tiver que digitar sua senha duas vezes - adicione outra
Não esqueça de adicionar os comandos para colocar o seu site no script;) Será parecido com:
fonte
Há perguntas semelhantes com outra resposta descritiva que você pode encontrar AQUI .
Apenas no caso de ser útil, eu fiz este script genérico com dois
rsync
processos diferentes seguindo a sugestão de Kusalananda:fonte