Servidor SSH: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 56: Linha 56:


==Executar aplicativos gráficos via SSH==
==Executar aplicativos gráficos via SSH==
É possível executar aplicativos gráficos via SSH fazendo alguns ajustes no servidor:
É possível executar aplicativos gráficos via SSH fazendo alguns ajustes na configuração do servidor:
  vim /etc/ssh/sshd_config  
  vim /etc/ssh/sshd_config  
:Altere as linhas no arquivo sshd_config:  
:Altere as linhas no arquivo sshd_config:  
Linha 65: Linha 65:
  /etc/init.d/ssh restart  
  /etc/init.d/ssh restart  
:Conecte-se ao servidor via SSH usando:
:Conecte-se ao servidor via SSH usando:
  ssh -X -C user@endereçoIPserver
  ssh -X -C user@endereçoServidor
:Chame o aplicativo normalmente.
:Chame o aplicativo normalmente.



Edição das 11h33min de 17 de novembro de 2015

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-get 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.
Instalação do cliente SSH

O cliente SSH normalmente vem instalado no Linux, mas pode ser instalado com:

sudo apt-get install openssh-client 

A configuração do cliente SSH é mantida no arquivo:

/etc/ssh/ssh_config
Teste com cliente acessando 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 
Altere as linhas no arquivo sshd_config:
Protocol 2
PermitRootLogin without-password
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 chave de autenticação pública

Um servidor SSH pode ser acessado sem que seja necessário digitar uma senha na hora do acesso. Para tal é necessário o uso de chaves de autenticação pública.

O acesso ao servidor com chave de autenticação pública é ú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 pública utilizam diferentes algoritmos para encriptar suas chaves, como o RSA1, RSA, DSA ou ECDSA. Dentre estes, o RSA (Rivest-Shamir-Adleman) é o algoritmo recomendado para servidores SSH, considerado o mais seguro e também o mais utilizado hoje em dia, possibilitando autenticar e transmitir dados criptografados até o seu destino.

Uma chave de autenticação pública RSA é gerada utilizando a seguinte sequência de comandos [1]:

Passo 1

Gerar a chave de autenticação pública 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 (certificado de autenticação) 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çoIPservidor
  • 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.

Teste do funcionamento

Transferir um arquivo do cliente ao servidor usando o comando scp:

scp arquivo user@endereçoIPservidor:.

Referências

  1. ALENCAR, M. SSH com chave de autenticação pública, 2011. http://www.vivaolinux.com.br/dica/SSH-com-chave-de-autenticacao-publica

--Evandro.cantu (discussão) 13h58min de 16 de novembro de 2015 (BRST)