Versão avaliada: Debian 11 + SSH
Instalar pacote no servidor
# apt install ssh
Desativar autenticação por senha de usuário, para isso no servidor ajuste o parâmetro de configuração:
# vi /etc/ssh/sshd_config
.....
Port 2222
AddressFamily inet
....
PermitRootLogin no
....
#PasswordAuthentication no <- Descomente caso esteja usando chave de acesso encriptada
$ sudo systemctl restart sshd.service
Gerar a chave em seu computador. Altere os campos em negrito com a informação correta.
$ ssh-keygen -t [ed25519|rsa] -b 4096 -C "<Hostname ou IP>" <- Ira gerar um novo arquivo em ~/.ssh do user logado
Generating public/private rsa key pair.
Enter file in which to save the key (/home/<USER>/.ssh/id_rsa): /home/<USER>/.ssh/id_<Hostname ou IP>
Enter passphrase (empty for no passphrase): <- Se inserir será solicitado quando logar no servidor na primeira vez
Enter same passphrase again:
Your identification has been saved in id_<Hostname ou IP>
Your public key has been saved in id_<Hostname ou IP>.pub
The key fingerprint is: SHA256:gR+lLAX1Bg45MAnltwFpvibODvy4NCKY8QtbK0nyBtc <Hostname ou IP>
The key's randomart image is:
+---[RSA 3072]----+
| .o=+o++ . |
| .+o0o* = |
| o. =.* o |
| .. = + |
|. . .. Ss |
|==o E |
|X@oo |
|*=Oo |
|.*=.... |
+----[SHA256]-----+
Disponibilizar a chave no servidor, para isso temos duas forma de distribuir o arquivo com a chave a manual e enviando ao servidor de destino.
No dispositivo onde foi gerada a chave execute o comando abaixo para enviar a chave para o servidor de destino. Altere os campos em negrito com a informação correta.
$ ssh-copy-id -i ~/.ssh/id_<Hostname ou IP>.pub <USER>@<Hostname ou IP>:~/.ssh/authorized_keys -p 2222
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/alexandro/.ssh/id_<Hostname ou IP>.pub"
/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
<USER>@<Hostname ou IP>'s password: Insira a senha do usuário
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -i /home/<USER>/.ssh/id_<Hostname ou IP> '<USER>@<Hostname ou IP>'"
and check to make sure that only the key(s) you wanted were added.
Nota: A chave é adicionada no arquivo /home/suporte/.ssh/authorized_keys do servidor
Realize teste de acesso
$ ssh suporte@<NOME_SERVER ou IP_SERVER> -p 2222
Ou
$ ssh <NOME_SERVER ou IP_SERVER> -p 2222 <- Esta forma funciona se existir usuário com o mesmo nome ao que esta logado.
No servidor de origem abra o arquivo e copie a chave:
# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EA.....NYhq7l5sDPdcC/wCJe/6xHzk= root@home10
Acesse o servidor de destino e crie o arquivo authorized_keys e cole a chave copiada anteriormente:
# mkdir /root/.ssh
# vi /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EA.....NYhq7l5sDPdcC/wCJe/6xHzk= root@home10
Ajuste a permissão do arquivo:
# chmod 400 /root/.ssh/authorized_keys
A partir da versão 7.9 do ssh existem mudanças no uso do serviço SSH para acessar o root com as permissões no Debian.
Sem alterar as configurações do SSH, primeiramente acessamos o usuário com permissões mais baixas e depois acessamos como root, e para isso precisamos acessar com um parâmetro diferente do antigo su.
$ ssh user@<IP_COMP_REMOTO>
$ su
# su - root
# <- Prompt root
Ou
$ ssh user@<IP_COMP_REMOTO>
$ su - <- Pode usar "su -" sem o complemento
# <- Prompt root
Link: 1 /
install putty-tools