Em informática o Secure Shell ou SSH é, simultaneamente, um programa de computador e um protocolo de rede que permite a conexão com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da conexão entre o cliente e o servidor ser criptografada.Uma de suas mais utilizadas aplicações é o chamado Tunnelling, que oferece a capacidade de redirecionar pacotes de dados.
Para instalar o cliente e os server, apesar do cliente já vir instalado por default no Debian e em outras distribuições:
apt-get install openssh-client openssh-server
Para conectar via IP ou por nome, levará em conta o nome do usuario que você está logado no local de conexão, exemplo se você está como “root”, ele solicitará a senha de “root” do computador que você deseja, se tiver logado como “marcos” se no computador que você está tentando logar como “marcos” não houver este usuário, você receberá a “Conection Refused”, e se tiver, deverá colocar a senha, ou usar o nome do usuario na frente e depois por o “@” e logo após o IP ou o nome do computador, depois é só pôr a senha do usuario ex.:
ssh 192.168.1.107
ssh algumsite.com
ssh root@192.168.1.107
ssh marcos@192.168.1.107
DEBUG - LOG - faça a conexão com -vv para exibir as mensagens, ajuda na localização de problemas, tente também iniciar o iniciar o servidor em modo debug (ssh -d) e conectar com o cliente, provavelmente o servidor vai exibir as mensagens de erros, tais como permissões e etc…, exemplos:
ssh -vv marcos@localhost
ssh -v marcos@localhost
para restringir acesso, deve editar o arquivo # /etc/ssh/sshd_config, no arquivo que se abrirá, procure a linha que contém a palavra “Subsystem”, estará assim:
Subsystem sftp /usr/lib/openssh/sftp-server
bastar adicionar o “AllowUsers”, ficará assim, ex.:
Subsystem sftp /usr/lib/openssh/sftp-server
AllowUsers marcos eric camila
Enquanto não utilizada a diretiva “AllowUsers” qualquer usuário da maquina pode conectar via ssh. Quando acrescenta-la, passa a permitir apenas os usuários listados e válidos na maquina, esta diretiva prevalece sobre a regra “default” que permite login de todos.
A porta padrão do ssh é 22, por isto tem muitos scripts que ficam tentando conexão nesta porta, por este e outros motivos, pode se alterar a porta do ssh, por exemplo, alterar de 22 para porta 2222, use seu editor preferido para editar o arquivo /etc/ssh/sshd_config e procure pela linha; #Port 22 altere para Port 2222, depois de efetuar a alteração, precisa reiniciar o serviço, veja no tópico sobre instalação, para testar na própria maquina, em um konsole execute a linha de comando neste formato:
ssh -p 2222 marcos@192.168.1.107
/etc/init.d/ssh restart
Nesse exemplo abaixo vou copiar o arquivo “teste.txt” para o a máquina remota, isso será copiado para o diretório /home/marcos/, lógico, irá pedir senha antes de executar a cópia:
scp teste.txt marcos@192.168.1.102:~/
marcos@192.168.1.102's password:
ou
scp teste.txt marcos@192.168.1.102:/home/marcos/
marcos@192.168.1.102's password:
para copiar todos os arquivos e sub-diretórios a partir do Shell local para o home do usuário marcos no destino.
scp -r * marcos@192.168.1.107:~/
para copiar para um sub-diretorio especifico no micro de destino, não use (~) e informe o caminho:
scp -r * marcos@192.168.1.107:/home/marcos/pasta_server/
para copiar da máquina remota para máquina local, usa-se o ponto no final e o formato assim:
scp marcos@192.168.1.107:/home/eric/arquivo_remoto.txt .
o ponto no final da linha indica para salvar no diretório atual.Salvar em outro local, substitua o ponto “.” pelo caminho na maquina local, exemplo para salvar na maquina local em /home/marcos/tmp:
scp marcos@192.168.1.107:~/teste.txt /home/marcos/tmp
scp -r marcos@192.168.1.107:~/isos /home/marcos/tmp