Posso inserir a senha como parâmetro para o SCP em vez de ser solicitada?
Como posso salvar a senha ao copiar um arquivo usando SCP? Esta pergunta é semelhante, mas as respostas tratam de eliminar completamente a senha SSH.
Responder1
Existem várias opções:
- usando sshpass
Execute o comando:
sshpass -p 'password' scp filename user@host:
Instale o sshpass:
- Ubuntu:
sudo apt install sshpass
sshpass - provedor de senha ssh não interativo
sshpass é um utilitário projetado para executar ssh usando o modo conhecido como autenticação de senha "interativa com teclado", mas em modo não interativo.
ssh usa acesso TTY direto para garantir que a senha seja realmente emitida por um usuário de teclado interativo. O Sshpass executa o ssh em um tty dedicado, fazendo-o pensar que está obtendo a senha de um usuário interativo.
O comando a ser executado é especificado após as próprias opções do sshpass. Normalmente será "ssh" com argumentos, mas também pode ser qualquer outro comando. O prompt de senha usado pelo ssh está atualmente codificado em sshpass.
- Usandoesperar(ou outro roteiro)
escreva um script que injetará a senha assim que identificar o prompt de senha ssh
- Usando ssh com par de chaves (em vez de usar senha)
IMHO - Esta é a forma mais segura e não requer o uso de senhas.
Utilizar chave pública/privada para realizar ssh
ou scp
operar sem a necessidade de inserir senha.
Mais informações podem ser encontradas emesta resposta
Informações detalhadas podem ser encontradasaqui
Responder2
Já existe uma resposta sobre como fazer isso, então vou me concentrar no porquê não.
- Se você passar uma senha na linha de comando, ela poderá ser espionada por um usuário local, usando
ps
ou qualquer outro lister de processos. - Criar senhas difíceis de adivinhar e fáceis de lembrar é difícil: portanto, não use senhas com ssh.
Em vez disso, use uma chave pública/privada e um agente de chave para lembrar temporariamente sua chave.