Como tornar o script automatizado para obter senha por conta própria?

1

Eu tenho um script que está fazendo sftp alguns arquivos de um servidor para outro, como dentro do script script.ksh Eu tenho as linhas abaixo;

sftp user@ip_address << EOF
cd path
put file1
bye
EOF

Quando estou executando o script como

./script.ksh

Está pedindo uma senha como abaixo:

Password:

Aqui eu tenho que passar a senha manualmente, pois esta não é uma senha menos conexão.

Eu quero tornar esse script automatizado, que quando o prompt Password ocorrer, ele deverá usar a senha por conta própria. Alguém pode ter alguma sugestão, por favor.

    
por PriB 30.04.2015 / 22:17

5 respostas

3

Por design, o ssh não permite a incorporação de senhas - é porque ele possui um mecanismo para autenticação não interativa usando pares de chaves pública-privada.

Então eu sugiro que você considere isso como seu primeiro porto de escala. Geralmente é tão simples como:

  • execute ssh-keygen no seu cliente.
  • adicione o id_rsa.pub to ~/.ssh/authorized_keys no seu servidor.

Se essa não for uma opção por algum motivo, a opção de fallback será expect , o que permite que você envie uma senha para o ssh.

    
por 30.04.2015 / 22:35
1

Espero que isso ajude você:

#!/usr/bin/expect

spawn sftp USERNAME@ip_address:/path/to/folder
expect "Password:"
send "PASSWORD\n"
expect "sftp>"
send "put file1\n"
expect "sftp>"
send "bye\n"

ou se você não quiser dedicar todo o script a esperar:

#!/bin/sh

expect << 'EOS'
spawn sftp USERNAME@ip_address:/path/to/folder
expect "Password:"
send "PASSWORD\n"
expect "sftp>"
send "put file1\n"
expect "sftp>"
send "bye\n"
EOS
    
por 29.06.2016 / 08:58
0

Eu acho que você pode usar o comando scp

Você deve criar uma chave ssh. Como gerar uma chave

Agora, você pode copiar os arquivos em outro servidor.

scp file [email protected]:/path/

Espero que funcione

    
por 30.04.2015 / 23:56
0

Isso é muito fácil. Especialmente se o arquivo / etc / hosts contiver o IP e o nome do outro servidor.

Primeiro, gere uma chave pública que possa ser compartilhada com o outro computador.

ssh-keygen

Basta pressionar enter para as três perguntas.

Em seguida, anexe sua chave pública ao outro servidor assim:

ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host

em que host remoto pode ser o nome do arquivo / etc / hosts ou o endereço IP.

Ele irá solicitar que você aceite a chave do outro host - você responde sim (não apenas y) Em seguida, ele solicitará a senha do outro servidor.

É isso. Sua chave agora foi anexada ao arquivo .ssh / authorized_key do host remoto.

Para usá-lo, basta executar scp ou ssh normalmente e você verá que ele não solicita mais o paswsword do host remoto.

    
por 02.05.2017 / 21:12
-2
echo "ftping files to destination"
USER='(username)'
PASSWD='(********)'
sftp user@ip_address << EOF
quote USER $USER
quote PASS $PASSWD
cd path
put file1
bye
EOF
    
por 28.06.2016 / 18:04