Como usar SSH-Copy-Id no Ubuntu

Como usar SSH-Copy-Id no Ubuntu
Uma das ferramentas úteis do ssh é SSH-COPY-ID que é usado para instalar a tecla SSH no servidor remoto para fazer login no servidor sem fornecer a senha para o login. Portanto, o login de assinatura único e sem senha automatizada usando SSH pode ser implementado facilmente usando esta ferramenta. Ele copia as chaves públicas para o host remoto ~/.ssh/autorizado_Keys File criando o arquivo e o diretório, se exigir, mas não modifica a permissão de nenhum arquivo ou pasta existente. Como o comando ssh-copy-id pode ser usado para a conexão ssh foi explicado neste tutorial.

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.