Esse processo funciona no Linux e no Mac OS, desde que estejam configurados corretamente para o acesso SSH. Se você estiver usando o Windows, poderá usar o Cygwin para obter uma funcionalidade semelhante ao Linux e, com alguns ajustes, o SSH também será executado.
Copiando arquivos por SSH
A cópia segura é um comando realmente útil e é muito fácil de usar. O formato básico do comando é o seguinte:
scp [options] original_file destination_file
O maior kicker é como formatar a parte remota. Quando você endereça um arquivo remoto, você precisa fazê-lo da seguinte maneira:
user@server:path/to/file
O servidor pode ser um URL ou um endereço IP. Isto é seguido por dois pontos, depois o caminho para o arquivo ou pasta em questão. Vamos ver 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”.
Para copiar diretórios inteiros, você precisará usar o sinalizador [-r] (observe que é um r minúsculo).
scp –P –r …
Você pode apenas fazer
scp –Pr …
A parte mais difícil aqui é que a conclusão da guia nem sempre funciona, por isso é ú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
Cópia segura é ótima. Você pode colocá-lo em scripts e fazer backups em computadores remotos. O problema é que você nem sempre pode estar por perto para digitar a senha. E, sinceramente, é muito difícil colocar sua senha em um computador remoto ao qual você obviamente tem acesso o tempo todo.
Bem, podemos contornar usando senhas usando arquivos-chave. Podemos fazer com que o computador gere dois arquivos chave - um público que pertence ao servidor remoto e um privado que está no seu computador e precisa ser seguro - e estes 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.
Em seguida, você será solicitado a inserir uma frase secreta. Pressione Enter para deixar este campo em branco e, em seguida, faça-o novamente quando solicitar a confirmação. O próximo passo é copiar o arquivo de chave pública para o seu computador remoto. Você pode usar scp para fazer isso:
~/.ssh/authorized_keys2
Chaves públicas subseqüentes podem ser anexadas a este arquivo, da mesma forma que o arquivo ~ /.ssh / known_hosts. Isso significa que, se você quiser adicionar outra chave pública à sua conta nesse servidor, copiará o conteúdo do segundo arquivo id_rsa.pub para uma nova linha no arquivo authorized_keys2 existente.
Considerações de segurança
Isso não é menos seguro que uma senha?
Em um sentido prático, não realmente. A chave privada que é gerada é armazenada no computador que você está usando e nunca é transferida, nem mesmo verificada. Essa chave privada SOMENTE corresponde a essa chave pública, e a conexão precisa ser iniciada a partir do computador que possui a chave privada. O RSA é bastante seguro e usa um comprimento de 2048 bits por padrão.
Na verdade, é bastante semelhante ao uso da sua senha. Se alguém souber sua senha, sua segurança sairá da janela. Se alguém tiver seu arquivo de chave privada, a segurança será perdida em qualquer computador que tenha a chave pubiana correspondente, mas precisará de acesso ao seu computador para obtê-lo.
Isso pode ser mais seguro?
Você pode combinar uma senha com arquivos de chave. Siga as etapas acima, mas insira uma senha forte. Agora, quando você se conectar por SSH ou usar o SCP, precisará do arquivo de chave privada adequado assim como a senha adequada.
Depois de inserir sua frase-senha uma vez, você não será solicitado novamente até fechar sua sessão. Isso significa que, na primeira vez que você fizer SSH / SCP, precisará inserir sua senha, mas todas as ações subseqüentes não exigirão isso. Depois de sair do computador (não do controle remoto) ou fechar a janela do terminal, você terá que inseri-lo 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, elas agora terão acesso a todas essas contas.Da mesma forma, seu arquivo de chave privada também é super secreto e importante. (Para mais informações, dê uma olhada em Como recuperar depois que sua senha de e-mail for comprometida)
É melhor criar novos pares de chaves para todos os computadores e contas que você deseja vincular. Dessa forma, se uma de suas chaves particulares for pega de alguma forma, você comprometerá apenas uma conta em um computador remoto.
Também é muito importante notar que todas as suas chaves privadas são armazenadas no mesmo lugar: em ~ /.ssh / no seu computador, você pode usar o TrueCrypt para criar um container seguro e criptografado e criar links simbólicos em seu ~ /.ssh / diretório. Dependendo do que estou fazendo, uso esse método superparanoide super seguro para deixar minha mente à vontade.
Você usou SCP em algum script? Você usa arquivos de chave em vez de senhas? Compartilhe sua própria experiência com outros leitores nos comentários!