scp funziona dalla riga di comando ma non dallo script della shell - permesso negato


1

Sto migrando alcune cartelle home da una scatola Linux ad un'altra usando scp. Ho salvato la mia chiave pubblica nel file authorized_keys della casella di destinazione e il seguente comando funziona perfettamente quando lo digito nella riga di comando:

scp myArch.tar root@myOtherServer:/root/dumps

... tuttavia quando lo inserisco in una sceneggiatura del genere ...

#!/bin/bash
tar -cf /tmp/$1.tar $1; wait
scp /tmp/$1.tar root@myOtherServer:/root/dumps

.. e chiamalo passando un nome di cartella come parametro, ottengo il seguente errore.

[root@myHost home]# /root/migrate myHomeFolder
Permission denied (publickey).
lost connection

Qualche idea su quale potrebbe essere il problema?


Puoi aggiungere un'eco $ HOME allo script? Mi chiedo se lo script non abbia la variabile d'ambiente per far sapere dove si trova .ssh.
Paul,

Suppongo che intendevi esportare $ HOME - sempre lo stesso errore
Xoundboy il

Intendevo "eco" in modo da poter dare un'occhiata al valore su cui lo script pensava fosse impostato. Ma forzare il problema funziona altrettanto bene. Penso che potrebbe essere il momento di eseguire la registrazione dettagliata sul server.
Paul,

Puoi anche usare il parametro -i sul comando scp per assicurarti che stia inviando la giusta chiave privata, e -v per vedere se ci sono stati dei problemi
Paul,

Risposte:


0

prova a eseguire lo script con sudo ./script.sh potrebbe essere perché stai scrivendo in / root


No. Non funziona ... comunque, perché mai? sudo si applica solo al computer locale - il problema qui è la connessione al telecomando
Xoundboy

0

Molto probabilmente è dovuto al fatto che shebang ha avviato una nuova istanza della shell bash, in cui l'agente ssh non è stato impostato. Per essere sicuro, puoi aggiungere la seguente riga all'inizio dello script:

ssh-add -l >> $HOME/ssh.log 2>&1

esegui lo script e controlla cosa ottieni in ssh.o

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.