Como todos sabemos, o SSH é um protocolo de shell seguro que é usado para se comunicar de forma segura com outros sistemas na rede.Há muitas chances de que você deseja automatizar tarefas, como arquivos de sincronização entre dois sistemas, backup automático entre dois ou mais sistemas usando seus próprios scripts. Nesses casos, os dois sistemas devem ser logados entre si sem ter que inserir a senha manualmente pelo usuário. Neste breve guia, vamos configurar o login sem senha SSH em sistemas semelhantes a Unix. Isso significa que não precisamos inserir a senha quando SSH para outro sistema na rede.

Configure o Login sem senha SSH no Linux

Para o propósito deste guia, estaremos usando dois sistemas rodando com CentOS e Ubuntu. O CentOS é o sistema remoto, e o Ubuntu é o meu sistema local.

Aqui estão os detalhes do meu sistema local e remoto.

Host local:

  • SO : Ubuntu 16.04 LTS servidor de 64 bits
  • Endereço IP : 192.168.43.2/24

Host remoto:

  • SO : servidor de 64 bits do CentOS 7
  • Endereço IP : 192.168.43.150/24

Eu quero acessar o sistema CentOS (sistema remoto) do Ubuntu (sistema local) via SSH sem entrar na senha. Deixe-nos ver como fazê-lo.

Certifique-se de que o openssh esteja instalado em ambos os sistemas. Se não for instalado por qualquer possibilidade, você pode instalar o openssh usando o gerenciador de pacotes da distribuição. O comando a seguir instalará openssh em sistemas baseados em Ubuntu:

sudo apt-get install openssh

E, o seguinte comando irá instalar o openssh no CentOS e outros sistemas baseados em RPM:

sudo yum install openssh

Gerar SSH keypair no sistema local

ssh-keygen  cria um chaveiro, chaves privadas e públicas. A chave privada deve ser mantida em segredo. Você não deve divulgá-lo a mais ninguém. E, a chave pública deve ser compartilhada com os sistemas remotos que você deseja acessar via ssh.

Nota importante: Não gere o par de chaves como root, pois somente a raiz seria capaz de usar essas chaves. Crie pares de chaves como usuário normal.

Execute o seguinte comando no sistema local (Ubuntu no meu caso) para gerar o par de chaves.

ssh-keygen

O comando acima criará um par de chaves RSA de 2048 bits. Não insira nenhuma frase secreta. Basta pressionar a tecla ENTER e continuar com os valores padrão.

Saída da amostra:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/sk/.ssh/id_rsa): #Press ENTER
Created directory '/home/sk/.ssh'.
Enter passphrase (empty for no passphrase): #Press ENTER
Enter same passphrase again: #Press ENTER
Your identification has been saved in /home/sk/.ssh/id_rsa.
Your public key has been saved in /home/sk/.ssh/id_rsa.pub.
The key fingerprint is
SHA256:7TN6N0H6lWmvkQ8jkkJ6mk/CzLgJ1xqLKs6IYih22tE sk@ubuntuserver
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| . . |
| S .o o |
| .* o .... =. |
|. ..+EB + *..+=. |
|Oo.=.* * o.++. =.|
|@=+.= o.o. . ....|
+----[SHA256]-----+

Caso você tenha criado o par de chaves, você verá a seguinte mensagem. Basta digitar “y” para criar sobrescrever a chave existente.

/home/username/.ssh/id_rsa already exists.
Overwrite (y/n)?

Agora, criamos o par de chaves no sistema cliente. Agora, copie a chave pública SSH para o sistema remoto que você deseja acessar via SSH.

No meu caso, eu quero acessar meu sistema remoto que está sendo executado com o CentOS. Então, executei o seguinte comando para copiar minha chave pública para o sistema remoto:

ssh-copy-id ostechnix@192.168.43.150

O comando ssh-copy-id é usado para copiar a chave pública do host local para o arquivo authorized_keys do host remoto. Aqui, estou copiando a chave pública do sistema local (Ubuntu) para o sistema remoto (CentOS no meu caso). Tecnicamente falando, o comando acima copiará o conteúdo da chave ~ / .ssh / id_rsa.pub do sistema do cliente para o arquivo ~ / .ssh / authorized_keys do sistema remoto. Claro? Boa.

Digite yes para continuar a conectar-se ao seu servidor SSH remoto. E, em seguida, digite a senha do usuário do sistema remoto.

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/sk/.ssh/id_rsa.pub"
The authenticity of host '192.168.43.150 (192.168.43.150)' can't be established.
ECDSA key fingerprint is SHA256:U7I0O1OOzzbHFlhIG0HoGDr1usHzLBju6Jmr6bUB9Es.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ostechnix@192.168.43.150's password:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'ostechnix@192.168.43.150'"
and check to make sure that only the key(s) you wanted were added.

Nós adicionamos com sucesso a chave pública SSH ao servidor SSH remoto.

Agora, tente ssh o sistema remoto do sistema local:

ssh ostechnix@192.168.43.150

Agora, não pedirá que você insira qualquer senha para acessar esse sistema remoto.

Login ssh sem senha

Como você pode ver, agora posso acessar meu sistema remoto sem entrar na senha.

Anúncios