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

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


==Cópia remota com servidor SSH (scp — ''secure copy'')==
== scp (''secure copy'') Cópia remota no servidor SSH==


Com o acesso remoto via SSH ao servidor, é possível ao cliente copiar arquivos do cliente para o servidor, e vice-versa:
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:
*Cópia de arquivos do cliente para o servidor, por exemplo:
  scp arquivo user@endereçoIP:.
  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.
: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:
*Cópia de arquivos do servidor para o cliente, por exemplo:
  scp user@endereçoIP:/caminho/arquivo .
  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.
: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.



Edição das 11h32min 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) Cópia remota no servidor SSH

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 no 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çoIPserver
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)