Eu tenho dois servidores. Ambos os servidores estão no CentOS 5.6. Quero fazer o SSH do Servidor 1 para o Servidor 2 usando uma chave privada que tenho (Chave Privada OpenSSH SSH-2).
Eu não sei como fazê-lo no unix. Mas o que fiz no Windows usando o Putty foi alimentar minha chave privada OpenSSH para gerar putty-gen e gerar uma chave privada no formato PPK.
No entanto, eu estaria criando um script bash do servidor 1 que executará alguns comandos no servidor 2 via SSH.
Como SSH para o servidor 2 usando meu arquivo de chave privada do servidor 1?
ssh-copy-id user@machine
Respostas:
Você precisa da sua chave pública SSH e da sua chave privada ssh. Chaves podem ser geradas com
ssh_keygen
. A chave privada deve ser mantida no servidor 1 e a chave pública deve ser armazenada no servidor 2.Isso está completamente descrito na página de manual do openssh, então citarei muito disso. Você deve ler a seção 'Autenticação'. Além disso, o manual do openSSH deve ser realmente útil: http://www.openssh.org/manual.html
Por favor, tenha cuidado com o ssh, pois isso afeta a segurança do seu servidor.
De
man ssh
:Isso significa que você pode armazenar sua chave privada em seu diretório pessoal em .ssh. Outra possibilidade é dizer ao ssh através do
-i
comutador de parâmetros para usar um arquivo de identidade especial. Também deman ssh
:Isto é para a chave privada. Agora você precisa introduzir sua chave pública no Servidor 2. Novamente, uma citação de
man ssh
:A maneira mais fácil de obter isso é copiar o arquivo no Servidor 2 e anexá-lo ao arquivo allowed_keys:
A autorização via chave pública deve ser permitida para o daemon ssh, consulte
man ssh_config
. Geralmente, isso pode ser feito adicionando a seguinte instrução ao arquivo de configuração:fonte
ssh -i keyfile
obrigado!ssh-copy-id
:ssh-copy-id -i ~/.ssh/foo.id_rsa remote.example.com
.ssh-add
depois de criar uma chave no computador do qual você está se conectando. é isso que causa dor de cabeça para a maioria das pessoas.$ ssh -i ~/.ssh/id_rsa [email protected]
, recebo o erro[email protected]: Permission denied (publickey).
: tenho a chave criada, adicionada localmente usandossh-add
e adicionada como chave autorizada no servidor remoto.Eu usei o ssh com a opção -i para adicionar sua chave aqui.
Se você deseja passar arg1, arg2 com o arquivo .sh, basta passá-lo após o arquivo .sh e use um espaço de uso para separá-lo.
ssh -i home/avr/new.pem [email protected] "/var/www/beta/betatolive.sh mmin 30"
fonte
chmod 600 home/avr/new.pem
A primeira coisa que você precisa fazer é ter certeza de executar o comando keygen para gerar as chaves:
Em seguida, use este comando para enviar a chave ao servidor remoto, modificando-a para corresponder ao nome do servidor.
fonte
ssh-copy-id user@hostname
vez dissoAnexe a chave pública (
id_[rd]sa.pub
) da sua máquina de origem (de onde você está usando o~/.ssh/authorized_keys
ssh ) ao arquivo do servidor de destino para o nome de usuário no qual você deseja ssh. Se você perdeu a chave pública, convém criar uma novassh-keygen
. O uso dos argumentos padrão para isso deve ser bom para a maioria dos propósitos. Se você precisar de instruções mais detalhadas, existem milhares de tutoriais no Google.fonte
Use
ssh-copy-id
no Servidor 1, supondo que você tenha o par de chaves (gerado comssh-keygen
):Agora você deve poder ssh no Servidor 2 com ssh usando a chave privada
De fato, se você verificar o
cat ~/.ssh/authorized_keys
Servidor 2, verá que a chave pública foi anexada a você.fonte