Servidor SSH: mudanças entre as edições
Sem resumo de edição |
|||
Linha 15: | Linha 15: | ||
O cliente e o servidor SSH se comunicam utilizando como camada de transporte o '''protocolo TCP''' e o servidor fica aguardando por pedidos de conexão na '''porta 22'''. | O cliente e o servidor SSH se comunicam utilizando como camada de transporte o '''protocolo TCP''' e o servidor fica aguardando por pedidos de conexão na '''porta 22'''. | ||
==Instalação do servidor SSH== | |||
Para instalar o '''servidor SSH''', digite: | Para instalar o '''servidor SSH''', digite: | ||
Linha 35: | Linha 35: | ||
/etc/ssh/ssh_config | /etc/ssh/ssh_config | ||
--> | --> | ||
;Acesso ao servidor SSH | ==Servidor SSH em instância Multipass== | ||
O '''servidor SSH''' já vem instalado nas instâncias criadas no '''Multipass'''. | |||
Entretanto, é necessário realizar uma configuração para permitir acesso remoto, usando senha, a partir de outras máquinas. | |||
;Configuração no servidor SSH no Multipass: | |||
Abrir um shell na instância: | |||
multipass shell nome_instancia | |||
Mudar para o diretório: | |||
/etc/ssh | |||
Editar o arquivo de configuração: | |||
nano sshd_config | |||
Comentar a linha abaixo com o caractere #: | |||
#PasswordAuthentication no | |||
===Acesso ao servidor SSH=== | |||
A partir de uma máquina com o cliente SSH é possível fazer acesso remoto ao servidor SSH com o comando: | A partir de uma máquina com o cliente SSH é possível fazer acesso remoto ao servidor SSH com o comando: |
Edição das 18h24min de 26 de janeiro de 2022
Servidor Remoto SSH
Um servidor pode ser acessado remotamente através da aplicação de acesso remoto SSH (Secure Shell).
A aplicação de SSH é uma aplicação cliente/servidor, na qual um programa cliente, através de um terminal, poderá fazer um login remoto no servidor.
O programa do lado cliente é diferente do programa do lado servidor, pois no servidor a aplicação de acesso remoto deve estar ativa e aguardando conexões por parte dos clientes.
O SSH possibilita acesso remoto seguro, através do uso de criptografia na conexão entre o cliente e o servidor.
O cliente e o servidor SSH se comunicam utilizando como camada de transporte o protocolo TCP e o servidor fica aguardando por pedidos de conexão na porta 22.
Instalação do servidor SSH
Para instalar o servidor SSH, digite:
sudo apt install openssh-server
A configuração do servidor SSH é mantida no arquivo:
/etc/ssh/sshd_config
Para verificar se o serviço de acesso remoto com SSH está ativo, digite:
ps -aux|grep ssh
- Se o serviço estiver ativo, o processo sshd deve estar na lista dos processos rodando.
Servidor SSH em instância Multipass
O servidor SSH já vem instalado nas instâncias criadas no Multipass. Entretanto, é necessário realizar uma configuração para permitir acesso remoto, usando senha, a partir de outras máquinas.
- Configuração no servidor SSH no Multipass
Abrir um shell na instância:
multipass shell nome_instancia
Mudar para o diretório:
/etc/ssh
Editar o arquivo de configuração:
nano sshd_config
Comentar a linha abaixo com o caractere #:
#PasswordAuthentication no
Acesso ao servidor SSH
A partir de uma máquina com o cliente SSH é possível fazer acesso remoto ao servidor SSH com o comando:
ssh user@endereçoServidor
- onde user é o nome de login do usuário e endereçoServidor é o endereço IP ou nome de domínio do servidor.
Para testar o servidor, execute comandos de arquivo e navegue na estrutura de diretórios do servidor, usando comandos como:
ls cd
scp (secure copy)
Com o acesso remoto via SSH ao servidor é possível ao cliente copiar arquivos do cliente para o servidor, e vice-versa, com o comando scp:
- Cópia de arquivos do cliente para o servidor, por exemplo:
scp arquivo user@endereçoServidor:.
- Obs: No exemplo acima pode-se especificar um caminho para o arquivo. O "." indica que o arquivo será copiado para o diretório /home do usuário.
- Cópia de arquivos do servidor para o cliente, por exemplo:
scp user@endereçoServidor:/caminho/arquivo .
- Obs: No exemplo acima o arquivo será copiado diretamente do diretório /caminho (usar preferencialmente caminho absoluto). O "." indica que o arquivo será copiado no diretório corrente do terminal do cliente.
Executar aplicativos gráficos via SSH
É possível executar aplicativos gráficos via SSH fazendo alguns ajustes na configuração do servidor:
vim /etc/ssh/sshd_config
- Verifique se a linha no arquivo sshd_config está configurada como:
X11Forwarding yes
- Reinicie o serviço:
/etc/init.d/ssh restart
- Conecte-se ao servidor via SSH usando:
ssh -X -C user@endereçoServidor
- Chame o aplicativo normalmente.
SSH com chaves de autenticação
Um servidor SSH pode ser acessado sem que seja necessário digitar uma senha na hora do acesso. Para tal o SSH oferece a possibilidade de utilizar um par de chaves de autenticação, na qual uma chave de autenticação pública é instalada no servidor que será acessado e uma chave de autenticação privada é mantida na máquina cliente.
O acesso ao servidor com chaves de autenticação é útil, por exemplo, quando queremos que um script transfira dados entre um computador e outro para realizar backup usando um servidor remoto.
Geração de chaves de autenticação pública
As chaves de autenticação utilizam diferentes algoritmos para criptografar suas chaves, como o RSA1, RSA, DSA ou ECDSA.
Dentre os diversos algoritmos para criptografar as chaves, o RSA (Rivest-Shamir-Adleman) é considerado um dos mais seguros e também o mais utilizado hoje em dia, possibilitando autenticar e transmitir dados criptografados até o seu destino.
As chaves de autenticação RSA são gerada utilizando a seguinte sequência de comandos [1]:
- Passo 1
- Gerar as chaves de autenticação no cliente com o comando ssh-keygen, utilizando a conta de usuário que será utilizada para acessar o servidor remoto:
ssh-keygen -t rsa
- Deixe todos o campo de senha em branco e pressione apenas 'ENTER' até que volte ao terminal.
- Este comando vai gerar os arquivos id_rsa (chave de autenticação privada) e id_rsa.pub (chave de autenticação pública) no diretório ~/.ssh/.
- Passo 2
- Copiar a chave de autenticação pública para o servidor, o que pode ser feito com o comando ssh-copy-ip:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@endereçoServidor
- O comando ssh-copy-ip inclui a chave pública id_rsa.pub dentro do arquivo de chaves autorizadas (./ssh/authorized_keys) no servidor.
- Com isto, o cliente passa a ter acesso ao servidor remoto sem a necessidade de digitar a senha.
- O arquivo .ssh/id_rsa.pub é composto por uma única linha, que contém a chave de autenticação pública e a identificação do usuário e da máquina cliente.
- Teste do funcionamento
- Transferir um arquivo do cliente ao servidor usando o comando scp:
scp arquivo user@endereçoServidor:.
SSH com login automático
Quando se usa chaves de autenticação, geradas sem senha como sugerido anteriormente, é possível acessar remotamente os servidores SSH sem a necessidade de digitar senhas. Esta é uma opção interessante quando se faz acesso frequente a servidores remotos [2].
Caso as chaves de autenticação sejam geradas com senha, também é possível salvar as senhas na memória para não precisar digita-las a casa acesso. Isto pode ser realizado com os comandos:
ssh-agent ssh-add
- O comando vai solicitar a senha para as chaves RSA e guardá-las na memória.
Referências
- ↑ ALENCAR, M. SSH com chave de autenticação pública, 2011. http://www.vivaolinux.com.br/dica/SSH-com-chave-de-autenticacao-publica
- ↑ MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.
--Evandro.cantu (discussão) 13h58min de 16 de novembro de 2015 (BRST)