Use o ssh-keygen, copie o arquivo .ssh / que é gerado para o outro servidor, acrescente o conteúdo ao arquivo ./.ssh/authorized_keys e, em seguida, você poderá ssh no outro servidor sem nenhuma senha.
Estou tentando copiar um banco de dados de um servidor para outro. Eu tentei usar o seguinte comando e está ficando preso ao digitar as senhas ssh. Se eu colocar a senha de um servidor, ele reclama do outro e vice-versa.
ssh root@server1 mysqldump --databases db | ssh root@server2 mysql
Eu consegui fazer a transferência mantendo os lixões temporariamente no meu computador, apenas me perguntando se há uma maneira de fazer isso funcionar.
Use o ssh-keygen, copie o arquivo .ssh / que é gerado para o outro servidor, acrescente o conteúdo ao arquivo ./.ssh/authorized_keys e, em seguida, você poderá ssh no outro servidor sem nenhuma senha.
Usar autenticação de chave é definitivamente uma maneira válida de fazer isso e o que eu provavelmente faria. Se por algum motivo você não puder fazer isso, poderá colocar um pipe nomeado na máquina intermediária em vez de armazenar o arquivo lá.
mkfifo relaypipe
ssh root@server1 mysqldump --databases db > relaypipe #auth & send to background
ssh root@server2 mysql < relaypipe
Se, por algum motivo, você não puder usar a autenticação de chave e precisar inserir duas senhas para concluir isso, poderá usar um FIFO:
mkfifo myfifo
# In terminal session one, or a screen window, etc.
ssh root@server2 mysql < myfifo
# In terminal session two:
ssh root@server1 mysqldump --databases db > myfifo