Permissão negada ao executar script via ssh

1

Eu escrevi um script que faz o download via scp e instala alguns pacotes. Chaves SSH são adicionadas ao host e quando eu corro

[root@HostB ~]# ./myscript

está tudo bem e os pacotes são baixados via scp sem pedir senha.

Eu preciso executar este script via ssh , mas quando tento

[root@HostA ~]# ssh root@HostB "./myscript"

Recebo um erro de permissão negada (publickey, password).

Quando estou tentando usar ssh -t , recebo uma solicitação de senha quando o comando scp no myscript está sendo executado.

    
por nars 03.11.2014 / 20:54

6 respostas

1

Resposta = Adicionar "bash"

Como fazer SSH em um computador e executar um script do Jenkinsfile: O arquivo é chamado "Shell Script.sh" no diretório "/ home / username / Shell Script Directory"

De Jenkinsfile:

sh "sudo ssh -i /home/user/myPemFile.pem -o StrictHostKeyChecking=no -n [email protected] \"bash /home/username/Shell\ Script\ Directory/Shell\ Script.sh\" "
    
por 29.06.2017 / 22:55
0

Meu palpite seria porque você não tem PasswordAuthentication definido como sim.

PasswordAuthentication yes

Adicione isto ao sshd_config nas máquinas e tente novamente. Isso deve solicitar senha.

Outra solução seria pegar o conteúdo de ~/.ssh/id_rsa.pub no HostA e adicioná-lo ao arquivo ~/.ssh/authorized_keys no HostB

Agora que você tem a autenticação por senha ativada, é possível instalar as chaves autorizadas com este comando:

ssh-copy-id HostB
    
por 03.11.2014 / 21:20
0

Você menciona que está usando scp dentro de seu script para fazer download de pacotes. Seu problema é com esse bit. O problema é que, quando você executa o ssh desta forma:

ssh user@host command

... não há pseudo terminal alocado para o script que está sendo executado. scp tenta solicitar uma senha, mas precisa de um pseudo terminal para isso, portanto, sem um, você obtém o erro de permissão negada (que vem de uma tentativa de autenticação de senha com falha). Se você usar ssh -t , haverá um pseudo terminal e o prompt de senha funcionará. O que você precisa descobrir é por que scp está solicitando uma senha quando executado remotamente, mas não quando executado a partir de uma sessão ssh interativa. Essa é uma pergunta diferente.

    
por 12.05.2016 / 13:37
0

Permission denied (publickey,password) error

Não tem nada a ver com as permissões no script. Você está falhando em estabelecer uma conexão ssh. Tente apenas pegar um shell no sistema remoto primeiro.

ssh -vv root@HostB

BTW geralmente não é uma boa idéia permitir o acesso direto à conta root via ssh - e o erro que você mostrou é o que se esperaria se o sshd fosse configurado com PermitRootLogin = No. A maneira correta de resolver isso é provisionar uma ação com privilégios sudo apropriados e usá-la para executar o comando.

    
por 08.04.2018 / 00:46
-2

Parece que ainda quer que você insira a senha. Quando você SSH para HostB de HostA, ele pede uma senha?

Em caso afirmativo, você precisará alterar o arquivo ssh_config ( /etc/ssh/sshd_config no RHEL / Centos) para:

PasswordAuthentication no

Se PasswordAuthentication estiver definido como sim, ele sempre solicitará uma senha.

    
por 03.11.2014 / 21:31
-3

Tente isto:

ssh root@hostb 'bash -s' < local-script.sh
    
por 12.05.2016 / 12:19