Pré -requisitos:
Antes de iniciar as etapas deste tutorial, as etapas a seguir serão necessárias para concluir.
Ative o serviço SSH no Ubuntu se não estiver ativado antes.
Gere os pares de chaves ssh para executar os comandos no servidor remoto. Execute o seguinte comando para criar a chave pública e a chave privada. A chave privada será armazenada no servidor remoto e as chaves públicas serão armazenadas no cliente com segurança.
$ ssh -keygen -t rsa
Execute o seguinte comando para abrir o sshd_config Arquivo usando o Nano Editor para adicionar algumas configurações necessárias.
$ sudo nano/etc/ssh/sshd_config
Adicione as seguintes linhas no arquivo para ativar o login root e a autenticação baseada em senha.
PasswordAuthentication Sim
Permitrootlogina sim
Execute o seguinte comando para reiniciar o serviço SSH.
$ sudo serviço ssh reinicialização
Sintaxe:
A sintaxe do comando ssh-copy-id é dada abaixo. Ele suporta várias opções, que são explicadas posteriormente.
ssh-copy-id [-lv] [-i keyfile] [-o option] [-p porta] [user@] hostName
Diferentes opções do comando ssh-copy-id:
Os propósitos de usar diferentes opções de comandos SSH-Copy-ID foram descritos nesta parte do tutorial.
Opção | Propósito |
-Eu -Keyfile | É usado para copiar a chave pública que é armazenada em um arquivo. Pode ser usado várias vezes. |
-eu | É usado para copiar as chaves atualmente mantidas pelo ssh-agent. Ele usa como padrão se a opção -i não for especificada. |
-o SSH-OPTION | É usado para passar a opção diretamente para SSH. Pode ser usado várias vezes. |
-P porta | É usado para se conectar com a porta especificada no host remoto, em vez da porta padrão que é 22. |
-v | É usado para passar o valor de -v para ssh. |
Chave de copiar para o servidor:
Você precisa autorizar a chave pública na máquina do servidor para estabelecer a conexão SSH sem usar nenhuma senha. Depois de criar a chave pública, o comando ssh-copy-id pode adicionar a chave como uma chave autorizada na máquina do servidor.
Execute o seguinte comando da máquina do servidor para adicionar qualquer chave pública recém -criada como uma chave autorizada do servidor.
$ ssh-copy-id fahmida@fahmida-virtualbox
A saída a seguir aparecerá se a chave pública já existir no servidor remoto; Caso contrário, a chave será adicionada.
É mencionado anteriormente que a opção -i é usada com o comando ssh-copy-id para adicionar a chave pública do arquivo. Se você armazenasse a chave pública recém -criada no arquivo padrão, o nome do arquivo seria id_rsa.bar. Mas você definiu qualquer nome de arquivo ao criar os pares de chaves e use esse nome de arquivo com a opção -i. Eu armazenei a chave pública no arquivo padrão.
Execute o seguinte comando da máquina do servidor para adicionar a chave pública à máquina do servidor. O comando copiará a chave para o servidor e a configurará para adicionar a chave ao Autorizado_keys arquivo para acessar o servidor.
$ SSH-COPY-ID -I ~//.ssh/id_rsa fahmida@fahmida-virtualbox
A saída a seguir aparecerá se a chave pública não adicionar antes da máquina do servidor.
Verifique a conexão:
Depois de adicionar a chave ao servidor, você deve verificar se a máquina cliente pode se conectar com o servidor. O nome de usuário da máquina do servidor é 'Fahmida' e a máquina cliente é 'simmin' aqui. Portanto, faça login na máquina cliente primeiro para testar a conexão.
Execute o seguinte comando para adicionar a identidade do servidor à máquina cliente.
$ ssh-add
Execute o seguinte comando ssh sem nenhuma opção para estabelecer uma conexão com a máquina do servidor. Se a autenticação baseada em senha estiver ativada na máquina do servidor, o usuário deverá fornecer uma senha válida para estabelecer uma conexão com o servidor.
$ ssh fahmida@fahmida-virtualbox
A saída a seguir mostra que a identidade do servidor foi adicionada à máquina cliente. Em seguida, a senha do usuário do servidor solicitou a conexão porque a autenticação baseada em senha foi ativada na máquina do servidor aqui. O nome de usuário é alterado para 'fahmida' do 'Yesmin' no prompt de comando que indica que a conexão foi estabelecida corretamente depois de dar a senha válida.
Se você quiser mencionar o nome do arquivo da chave pública com o local para estabelecer a conexão com o servidor, execute o seguinte comando ssh com a opção -i. Exigirá se você armazenar a chave pública no nome do arquivo definido pelo usuário. Eu usei o nome do arquivo padrão no momento da geração de chaves que é id_rsa.
$ ssh -i ~/.ssh/id_rsa fahmida@fahmida-virtualbox
Ele solicitará a senha como antes para estabelecer a conexão com o servidor. A saída mostra que a conexão foi estabelecida corretamente e o nome de usuário do prompt de comando mudou. Você pode alterar o arquivo de configuração do servidor para desativar a autenticação baseada em senha, se não quiser fornecer uma senha sempre que quiser se conectar com o servidor.
Conclusão:
Os usos do comando ssh-copy-ID para se conectar com o host remoto foram descritos neste tutorial usando duas contas de usuário do host local para ajudar os leitores a conhecer a função deste comando corretamente.