Copiando arquivos por ssh sem senha

2

Meu supervisor me deu acesso remoto ao seu computador fazendo login por meio do ssh no meu computador local. Embora eu esteja conectado (e possa visualizar qualquer arquivo que eu deseje através do vi, emacs), como posso copiar arquivos para o meu computador local sem ter a senha?

scp , por exemplo, solicita a senha. A partir de uma pesquisa na Internet, parece que a criação de chaves públicas para ignorar as senhas de scp exige pelo menos uma entrada de senha durante a instalação. Desde que eu não sou administrador neste computador, estou impedido de instalar novos programas, como sugerido aqui .

    
por Doubt 08.07.2013 / 19:34

2 respostas

1

Se você tem um shell ativo no computador remoto, e assumindo que o emulador de terminal suporta copiar e colar (o que todos os populares fazem), você deve ser capaz de copiar e colar a chave pública uma vez gerada; algo como tee >> ~/.ssh/authorized_keys , seguido por colar o conteúdo do arquivo de chave pública, seria exibido. Você deseja ter certeza de que não há quebras de linha estranhas no resultado.

Ao fornecer esta resposta, eu suponho que você consultou seu supervisor e obteve autorização para fazer essa alteração. Caso contrário, fazê-lo, na melhor das hipóteses, colocaria seu trabalho em risco extremamente justificado; um funcionário indigno de confiança é pior do que nenhum, e, francamente, se você fez isso com a minha conta e eu não tinha feito isso com antecedência, eu demitiria você no ato.

    
por 08.07.2013 / 20:09
1

O SSH permite que você execute comandos no sistema remoto. Sem nenhum comando especificado, ele cria um arquivo e inicia o shell, que é provavelmente a única maneira que você está acostumado a invocá-lo.

Se você deseja executar o cat para exibir um arquivo em vez de lançar um shell, basta executar:

ssh remote_host cat /remote/file/to/view

Isso exibirá o arquivo remoto e retornará ao seu prompt de shell local.

Se você deseja salvar esse arquivo, apenas redirecione a saída para o arquivo local que deseja salvá-lo como:

ssh remote_host cat /remote/file/to/view > local/file/to/create

Se você quiser copiar um diretório inteiro, você pode canalizar a saída do tar sobre a sessão ssh:

ssh remote_host tar cf - /dir/to/copy | tar xvf -

O processo de tar local (aquele que extrai o arquivo) irá desmembrar o primeiro / último caso você tenha especificado um caminho absoluto no processo remoto, como no exemplo acima. O exemplo criaria uma hierarquia de pasta dir / para / copy no diretório atual do seu host local. Se você quiser remover componentes de caminho adicionais, use a opção --strip-components .

Como um aparte, se você quiser se conectar ao host e editar o arquivo no vi em uma única etapa, você terá que dizer ao ssh para criar um arquivo para você usando a opção -t :

ssh -t remote_host vi file/to/edit

Se for invocado interativamente (nenhum comando especificado, por isso, lança um shell), é inteligente o suficiente para criar o arquivo por padrão. Com um comando especificado, você deve explicitamente dizer para criar o arquivo.

Veja a página de manual do ssh para mais detalhes.

    
por 08.07.2013 / 23:25