O SSH (Secure Shell) é um protocolo de rede e é aplicado no login remoto de utilizadores numa rede de computadores. Fornece um canal seguro para ligação client/servidor. A ligação via SSH a um computador remoto permite-nos levar a cabo muitas operações nesse computador remoto como se estivéssemos junto a esse mesmo computador.
Neste pequeno artigo abordo a utilização do SSH em sistema Linux, mais concretamente em Fedora.
Normalmente o SSH já vem instalado no Fedora, entretanto podemos verificar se se encontra no sistema através do comando:
$ rpm -qa openssh-server
e caso estiver instalado vai printar o nome do pacote e a versão.
- “rpm” é a extensão do pacote
- “-q” (query)
- “-a” (all)
- “-qa” (query all) procurar em todos os pacotes
- “openssh-server” é o nome do pacote
$ rpm -qa openssh-server
openssh-server-8.7p1-3.fc35.x86_64
Para este laboratório podemos usar o GNOME Boxes (já vem pré instalado no Fedora) ou usar o VirtualBox pelo que deve ser baixado e instalado.
Vamos supor que tudo já se encontra preparado, temos um Sistema Linux instalado no nosso VirtualBox que vamos usar como Cliente
Os primeiros passos
- Verificar se temos openssh-server instalado, o comando acima indicado
- No Server verificar o estado do sshd.service se está activo
$ systemctl status sshd.service
- Caso não estiver activo devemos iniciar o serviço sshd:
$ sudo systemctl start sshd.service
- Caso quisermos que sshd.service fique habilitado em cada boot
$ sudo systemctl enable sshd.service
- Verificar qual o IP do Server. No terminal digite:
$ ifconfig
-
Vai aparecer qualquer coisa assim:
enp3s0: flags=4163
mtu 1500 inet 192.168.1.x Circundei com bordo verde o nosso IP que vai ser utilizado.
Gerando SSH key no lado Cliente
Caso queira logar como root a chave deve ser gerada no terminal como root
# ssh-keygen
Output
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mas se quiser logar como utilizador normal a chave ssh deve ser gerada como utilizador normal.
$ ssh-keygen
[username@fedora ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa): Created directory '/home/username/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/username/.ssh/id_rsa Your public key has been saved in /home/username/.ssh/id_rsa.pub The key fingerprint is: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Copiar a chave SSH para o Server
Se a chave ssh foi gerada como root:
# ssh-copy-id root@192.168.1.x
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.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 root@192.168.1.x's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@192.168.1.x'" and check to make sure that only the key(s) you wanted were added.
Se a chave ssh foi gerada como utilizador normal:
$ ssh-copy-id username@192.168.1.x
The authenticity of host '192.168.1.x (192.168.1.x)' can't be established. ED25519 key fingerprint is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? 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 username@192.168.1.x's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@192.168.1.x'" and check to make sure that only the key(s) you wanted were added.
A configuração original no /etc/ssh/sshd_config não permite root login
Mas como isto é sómente para fins de teste/experimento, vamos editar o ficheiro sshd_config para que possamos logar como root
Abra o ficheiro sshd_config no editor vi:
# vi /etc/ssh/sshd_config
Procure esta linha no ficheiro sshd_config com este comando de busca:
/PermitRootLogin
Esta é a configuração original:
#LoginGraceTime 2m #PermitRootLogin prohibit-password #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 $ ssh-copy-id username@192.168.1.x
Vamos editar e fazer a seguinte alteração adicionando "PermitRootLogin yes":
#LoginGraceTime 2m #PermitRootLogin prohibit-password PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 $ ssh-copy-id username@192.168.1.x
Conectando ao Server via SSH
Como root
ssh root@192.168.1.x
ou
ssh -l root 192.168.1.x
Como usuário normal
ssh nome_de_usuario@192.168.1.x
ou
ssh -l nome_de_usuario 192.168.1.x
Após fazermos o nosso teste como root podemos reverter o sshd_config para a sua forma original e assim passarmos a logar só como usuário normal a não ser que por alguma conveniência haja a necessidade de logar como root
# vi /etc/ssh/sshd_config
Procure esta linha no sshd_config com este comando de busca:
/PermitRootLogin
#LoginGraceTime 2m #PermitRootLogin prohibit-password #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 $ ssh-copy-id username@192.168.1.x
Se chegou até cá, obrigado pela paciência e espero que este artigo tenha sido de alguma utilidade.
Sem comentários:
Enviar um comentário