O SSH é um salva-vidas quando você precisa gerenciar um computador remotamente, mas você sabia que também pode fazer upload e download de arquivos? Usando chaves SSH, você pode pular a necessidade de inserir senhas e usá-las para scripts!
Este processo funciona em Linux e Mac OS, desde que estejam devidamente configurados para acesso SSH. Se estiver usando o Windows, você pode use o Cygwin para obter funcionalidades semelhantes às do Linux , e com um pequeno ajuste, SSH também será executado .
Copiando arquivos por SSH
A cópia segura é um comando muito útil e muito fácil de usar. O formato básico do comando é o seguinte:
scp [options] original_file destination_file
O maior problema é como formatar a parte remota. Ao endereçar um arquivo remoto, você precisa fazer isso da seguinte maneira:
usuário @ servidor: caminho / para / arquivo
O servidor pode ser um URL ou endereço IP. Isso é seguido por dois-pontos e o caminho para o arquivo ou pasta em questão. Vejamos um exemplo.
scp –P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Este comando apresenta o sinalizador [-P] (observe que é um P maiúsculo). Isso me permite especificar um número de porta em vez do padrão 22. Isso é necessário para mim devido à maneira como configurei meu sistema.
Em seguida, meu arquivo original é “url.txt” que está dentro de um diretório chamado “Desktop”. O arquivo de destino está em “~ / Desktop / url.txt”, que é o mesmo que “/user/yatri/Desktop/url.txt”. Este comando está sendo executado pelo usuário “yatri” no computador remoto “192.168.1.50”.
E se você precisar fazer o oposto? Você pode copiar arquivos de um servidor remoto da mesma forma.
Aqui, copiei um arquivo da pasta “~ / Desktop /” do computador remoto para a pasta “Desktop” do meu computador.
Para copiar diretórios inteiros, você precisará usar o sinalizador [-r] (observe que é um r minúsculo).
Você também pode combinar bandeiras. Ao invés de
scp –P –r…
Você pode apenas fazer
SCP - Mas ...
A parte mais difícil aqui é que o preenchimento da guia nem sempre funciona, então é útil ter outro terminal com uma sessão SSH em execução para que você saiba onde colocar as coisas.
SSH e SCP sem senhas
A cópia segura é ótima. Você pode colocá-lo em scripts e fazer backups em computadores remotos. O problema é que nem sempre você está por perto para digitar a senha. E, vamos ser honestos, é uma verdadeira dor colocar sua senha em um computador remoto ao qual obviamente você tem acesso o tempo todo.
Bem, podemos contornar o uso de senhas usando arquivos-chave. Podemos fazer com que o computador gere dois arquivos de chave - um público que pertence ao servidor remoto e um privado que está no seu computador e precisa ser seguro - e esses arquivos serão usados em vez de uma senha. Muito conveniente, certo?
No seu computador, digite o seguinte comando:
ssh-keygen –t rsa
Isso irá gerar as duas chaves e colocá-las em:
~ / .ssh /
com os nomes “id_rsa” para sua chave privada e “id_rsa.pub” para sua chave pública.
Depois de inserir o comando, você será perguntado onde salvar a chave. Você pode pressionar Enter para usar os padrões mencionados acima.
Em seguida, você será solicitado a inserir uma senha longa. Pressione Enter para deixar em branco e, em seguida, faça-o novamente quando solicitar confirmação. A próxima etapa é copiar o arquivo de chave pública para o computador remoto. Você pode usar o scp para fazer isso:
O destino da sua chave pública está no servidor remoto, no seguinte arquivo:
~ / .ssh / authorized_keys2
As chaves públicas subsequentes podem ser anexadas a esse arquivo, da mesma forma que o arquivo ~ / .ssh / known_hosts. Isso significa que se você quiser adicionar outra chave pública para sua conta neste servidor, deverá copiar o conteúdo do segundo arquivo id_rsa.pub em uma nova linha no arquivo authorized_keys2 existente.
Considerações de Segurança
Não é menos seguro do que uma senha?
Em um sentido prático, não realmente. A chave privada gerada é armazenada no computador que você está usando e nunca é transferida, nem mesmo para ser verificada. Esta chave privada SÓ combina com aquela chave pública, e a conexão precisa ser iniciada a partir do computador que possui a chave privada. RSA é bastante seguro e usa um comprimento de 2048 bits por padrão.
Na verdade, é muito semelhante em teoria a usar sua senha. Se alguém souber sua senha, sua segurança será perdida. Se alguém tiver seu arquivo de chave privada, a segurança será perdida para qualquer computador que tenha a chave púbica correspondente, mas eles precisam acessar seu computador para obtê-la.
Isso pode ser mais seguro?
Você pode combinar uma senha com arquivos de chave. Siga as etapas acima, mas insira uma senha longa. Agora, quando você se conectar por SSH ou usar SCP, precisará do arquivo de chave privada adequado assim como a senha correta.
Depois de inserir sua senha longa uma vez, você não precisará digitá-la novamente até que feche a sessão. Isso significa que na primeira vez que você usar o SSH / SCP, você precisará inserir sua senha, mas todas as ações subsequentes não exigirão isso. Depois de sair do computador (não o remoto) ou fechar a janela do terminal, você terá que entrar novamente. Dessa forma, você não está realmente sacrificando a segurança, mas também não é assediado por senhas o tempo todo.
Posso reutilizar o par de chaves pública / privada?
Esta é uma ideia muito ruim. Se alguém encontrar sua senha e você usar a mesma senha para todas as suas contas, agora essa pessoa terá acesso a todas essas contas. Da mesma forma, seu arquivo de chave privada também é supersecreto e importante. (Para mais informações, dê uma olhada em Como recuperar após o comprometimento da senha do seu e-mail )
É melhor criar novos pares de chaves para cada computador e conta que você deseja vincular. Dessa forma, se uma de suas chaves privadas for capturada de alguma forma, você comprometerá apenas uma conta em um computador remoto.
Também é muito importante observar que todas as suas chaves privadas são armazenadas no mesmo lugar: em ~ / .ssh / no seu computador, você pode usar TrueCrypt para criar um contêiner criptografado seguro, então criar links simbólicos em seu diretório ~ / .ssh /. Dependendo do que estou fazendo, eu uso isso super-paranoid método super-seguro para me tranqüilizar.
Você usou SCP em algum script? Você usa arquivos de chave em vez de senhas? Compartilhe sua experiência com outros leitores nos comentários!