ajuda SSH e SCP

2

Sou um estudante universitário e muito novo em ssh e scp ... e novo em programação. A mais nova tarefa atribuída a nós requer o acesso a bibliotecas que estão apenas no servidor do aluno na universidade. Para trabalhar em casa, eles disseram para usar SSH.

Então eu fiz isso, e eu posso usar o ssh para fazer logon no servidor do aluno, para que eu possa compilar usando as bibliotecas armazenadas lá (programação em C ++)

No entanto, não sei como fazer:

  • compila os arquivos no meu computador local no terminal de login do aluno. OU
  • use o scp para copiar os arquivos em que estou trabalhando para a pasta @student, para que eu possa compilar enquanto estiver conectado.

com relação a b) Eu tentei o seguinte comando:

scp mike@ubuntu: /a1644923/testscp [email protected]: a1644923

mas depois fico:

ssh: connect to host ubuntu port 22: Connection refused
cp: cannot stat '/a1644923/testscp': No such file or directory
[email protected]'s password:
    
por Mike 17.08.2013 / 03:20

3 respostas

1

O mais sensato é copiar os arquivos do seu computador doméstico para o servidor do aluno. (O que você tentou no segundo passo)

scp requer dois parâmetros: source e destination , e somente a parte remota precisa de username@hostname .

Portanto, seu comando (para um arquivo para teste) deve ser:

scp a1644923/testscp [email protected]:

O cólon no final é importante. Certifique-se de não ter espaços vazios extras no comando. Eu suponho que o diretório a1644923 esteja em seu diretório atual. Você pode copiar / colar esse comando no seu shell.

Se você precisar transferir um diretório completo, deverá ativar o modo recursivo. Estou supondo que você tenha um diretório project1 em seu diretório atual. Então digite

scp -r project1/ [email protected]:

Mente o espaço em branco entre scp e -r . O comando é scp e -r é um parâmetro, informando scp para trabalhar recursivamente, ou seja, copiar tudo abaixo.

    
por guntbert 17.08.2013 / 22:31
0

Olá Mike faça assim:

sudo apt-get install sshfs

sshfs username@server:/home/UsersHomeFolderAtServer mnt/

no seu diretório home local, crie a pasta mnt e monte sua pasta pessoal do servidor para a sua máquina local. Você pode então trabalhar com seus arquivos localmente, mas eles são enviados para o servidor quando você faz alterações.

eu recomendo compilar os arquivos no servidor porque ele pode ter uma versão de biblioteca / pacote diferente da que você tem em sua máquina local.

    
por enigma 17.08.2013 / 03:43
0

O erro está dizendo que ele não pode encontrar o arquivo no local que você especificou (stat é uma função para testar um arquivo, entre outras coisas).

Supondo que o arquivo esteja em um diretório /a1644923/testscp na máquina remota, seu problema parece ser os espaços após os dois-pontos; eles não deveriam estar lá. Geralmente, se você tiver um espaço em um nome de arquivo, precisará escapar com '\ ' ou usar aspas. Caso contrário, é interpretado como parâmetros separados.

scp realmente não é mais complicado que cp, exceto que copia de uma máquina para outra. Mas tem uma sintaxe muito semelhante, apenas o formato de especificação de arquivo precisa de um especificador extra para a máquina, se for diferente do seu (você não precisa especificar sua própria máquina).

Editar:

Do que você afirmou sobre as bibliotecas que estão no computador remoto e tudo, parece que você deseja compilar os arquivos de origem no computador remoto para usar essas bibliotecas. Parece-me que tudo é esperado para ser feito no computador remoto, então o seu computador local é basicamente apenas um terminal remoto.

Quando eu estava em uma situação semelhante, eu usava as mesmas ferramentas remotamente como localmente (gvim para edição e outras ferramentas padrão do Linux. Trabalhar remotamente era o mesmo que trabalhar localmente, mais ou menos, e não havia problema em lembrar para copiar arquivos que foram alterados ou substituir acidentalmente novos arquivos por antigos.

    
por Marty Fried 17.08.2013 / 03:54