6Aug

Como copiar arquivos remotamente por SSH sem inserir sua senha

SSH é um salvavidas quando você precisa gerenciar remotamente um computador, mas você sabia que também pode carregar e baixar arquivos? Usando chaves SSH, você pode ignorar ter que inserir senhas e usar isso para scripts!

Este processo funciona em Linux e Mac OS, desde que estejam adequadamente configurados para acesso SSH.Se você estiver usando o Windows, você pode usar o Cygwin para obter funcionalidades semelhantes a Linux, e com um pouco de ajuste, o SSH também será executado.

Copiando arquivos sobre SSH

A cópia segura é um comando realmente útil, e é muito fácil de usar. O formato básico do comando é o seguinte:

scp [opções] original_file destination_file

O maior kicker é como formatar a parte remota. Quando você aborda um arquivo remoto, você precisa fazê-lo da seguinte maneira:

usuário @ servidor: caminho /to/ arquivo

O servidor pode ser um URL ou um endereço IP.Isto é seguido por dois pontos, então o caminho para o arquivo ou pasta em questão. Vejamos um exemplo.

scp -P 40050 Desktop / url.txt yatri@192.168.1.50: ~ /Desktop/ url.txt

Este comando possui o sinalizador [-P]( note que é um P principal).Isso me permite especificar um número de porta em vez do padrão 22. Isso é necessário para mim por causa da forma como eu 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ê precisa fazer o contrário? Você pode copiar arquivos de um servidor remoto de forma semelhante.

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]( note que é r de minúsculas).

Você também pode combinar bandeiras. Em vez de

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 rodando para que você saibaonde colocar as coisas.

SSH e SCP sem senhas

A cópia segura é excelente. Você pode inseri-lo em scripts e fazer backups em computadores remotos. O problema é que você nem sempre pode estar por perto para inserir a senha. E, sejamos honestos, é uma grande dor real para colocar sua senha em um computador remoto, você obviamente tem acesso o tempo todo.

Bem, podemos usar o uso de 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 esteja no seu computador e que 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 gerará as duas chaves e colocá-las em:

~ /.ssh/

com os nomes "id_rsa" para sua chave particular e "id_rsa.pub" parasua chave pública.

Depois de entrar no comando, você será solicitado a salvar a chave. Você pode pressionar Enter para usar os padrões acima mencionados.

Em seguida, você será solicitado a inserir uma frase secreta. Pressione Enter para deixar este espaço em branco, depois faça isso novamente quando solicitar confirmação. O próximo passo é 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 subseqüentes podem ser anexadas a este arquivo, bem como o arquivo ~ /.ssh/ known_hosts. Isso significa que, se você quisesse adicionar outra chave pública para a sua conta neste servidor, você copiaria o conteúdo do segundo arquivo id_rsa.pub para uma nova linha no arquivo authorized_keys2 existente.

Considerações sobre segurança

Não é menos seguro do que uma senha?

Em um sentido prático, na verdade não. A chave privada gerada é armazenada no computador que você está usando, e nunca é transferida, nem mesmo para ser verificada. Esta chave privada SOMENTE coincide com essa única 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 em teoria ao uso de sua senha. Se alguém conhece sua senha, sua segurança sai da janela. Se alguém tiver o seu arquivo de chave particular, a segurança será perdida para qualquer computador que tenha a chave pública apropriada, mas eles precisam acessar 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 frase secreta forte. Agora, quando você se conecta ao SSH ou usa o SCP, você precisará do arquivo de chave particular apropriado , bem como do , a senha apropriada.

Uma vez que você inseriu sua senha passada uma vez, não será solicitado novamente até você fechar sua sessão. Isso significa que a primeira vez que você SSH / SCP, você precisará inserir sua senha, mas todas as ações subseqüentes não o exigirão. Depois de sair do seu computador( não o remoto) ou fechar a janela do terminal, então você terá que inseri-lo novamente. Desta 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úblico / privado?

Esta é uma idéia muito ruim. Se alguém encontrar sua senha, e você usa a mesma senha para todas as suas contas, então elas agora têm acesso a todas essas contas. Da mesma forma, seu arquivo de chave particular também é super secreto e importante.(Para mais informações, veja como recuperar depois de sua senha de e-mail estar comprometida)

É melhor criar novos pares de chaves para cada computador e conta que deseja vincular. Dessa forma, se uma das suas chaves privadas for pego de alguma forma, então você só compromete uma conta em um computador remoto.

Também é importante notar que todas as suas chaves privadas estão armazenadas no mesmo local: em ~ /.ssh/ em seu computador, você pode usar o TrueCrypt para criar um contêiner seguro e criptografado, e criar links simbólicos em seu diretório ~ /.ssh/.Dependendo do que estou fazendo, eu uso este super-paranóico super-seguro método para colocar minha mente à vontade.

Você usou o SCP em qualquer script? Você usa arquivos-chave em vez de senhas? Compartilhe sua própria experiência com outros leitores nos comentários!