2 votes

Aide SSH et SCP

Je suis étudiant à l'université, et très novice en matière de ssh et de scp... et novice en matière de programmation. La dernière mission qui nous a été confiée nécessite l'accès à des bibliothèques qui ne se trouvent que sur le serveur des étudiants de l'université. Pour travailler à la maison, on nous a dit d'utiliser SSH.

C'est donc chose faite, et je peux utiliser ssh pour me connecter au serveur de l'étudiant, afin de pouvoir compiler en utilisant les bibliothèques qui y sont stockées (programmation C++).

Cependant, je ne suis pas sûr de savoir comment faire l'un ou l'autre :

  • compiler les fichiers sur mon ordinateur local dans le terminal de connexion des étudiants. OU
  • j'utilise scp pour copier les fichiers sur lesquels je travaille dans mon dossier @student, afin de pouvoir compiler tout en étant connecté.

en ce qui concerne la question b), j'ai essayé la commande suivante :

scp mike@ubuntu: /a1644923/testscp a1644923@uss.cs.adelaide.edu.au: a1644923

mais ensuite je comprends :

ssh: connect to host ubuntu port 22: Connection refused
cp: cannot stat `/a1644923/testscp': No such file or directory
a1644923@uss.cs.adelaide.edu.au's password:

1voto

guntbert Points 12407

La meilleure chose à faire est de copier les fichiers de votre ordinateur personnel sur le serveur de l'étudiant. (Ce que vous avez essayé dans la deuxième étape)

scp nécessite deux paramètres : source y destination et seule la partie éloignée a besoin de username@hostname .

Ainsi, votre commande (pour un fichier à tester) devrait être la suivante :

scp a1644923/testscp a1644923@uss.cs.adelaide.edu.au:

Les deux points à la fin sont importants. Veillez à ce qu'il n'y ait pas de blancs supplémentaires dans la commande. Je suppose que le répertoire a1644923 se trouve dans votre répertoire actuel. Vous pouvez copier/coller cette commande dans votre Shell.

Si vous devez transférer un répertoire complet, vous devez activer le mode récursif. Je suppose que vous avez un répertoire project1 dans votre répertoire actuel. Tapez donc

scp -r project1/ a1644923@uss.cs.adelaide.edu.au:

Attention au vide entre scp y -r . La commande est scp y -r est un paramètre, indiquant scp pour travailler de manière récursive, c'est-à-dire pour copier tout ce qui se trouve en dessous.

0voto

edl Points 11

Bonjour Mike, faites comme ceci :

sudo apt-get install sshfs

sshfs username@server:/home/UsersHomeFolderAtServer mnt/

dans votre répertoire personnel local, créez le dossier mnt, puis montez votre dossier personnel depuis le serveur vers votre machine locale. Vous pouvez alors travailler sur vos fichiers localement, mais ils sont téléchargés sur le serveur lorsque vous les modifiez.

Je recommanderais de compiler les fichiers sur le serveur parce qu'il peut avoir une version de bibliothèque/package différente de celle que vous avez sur votre machine locale.

0voto

RHaguiuda Points 757

L'erreur vous indique qu'il ne peut pas trouver le fichier à l'emplacement que vous avez spécifié (stat est une fonction qui teste l'existence d'un fichier, entre autres choses).

En supposant que le fichier se trouve dans un répertoire /a1644923/testscp sur la machine distante, le problème semble venir des espaces après les deux points ; ils ne devraient pas se trouver à cet endroit. En général, si vous avez un espace dans un nom de fichier, vous devez l'échapper avec '\ ' ou utiliser des guillemets. Sinon, ils sont interprétés comme des paramètres distincts.

scp n'est pas plus compliqué que cp, si ce n'est qu'il copie d'une machine à l'autre. La syntaxe est très similaire, mais le format de spécification du fichier nécessite un spécificateur supplémentaire pour la machine, si elle est différente de la vôtre (vous n'avez pas besoin de spécifier votre propre machine).

Editer :

D'après ce que vous avez dit à propos des bibliothèques qui se trouvent sur l'ordinateur distant et tout le reste, il semble que vous vouliez compiler les fichiers sources sur l'ordinateur distant pour utiliser ces bibliothèques. Il me semble que tout doit être fait sur l'ordinateur distant, de sorte que votre ordinateur local n'est en fait qu'un terminal distant.

Lorsque j'étais dans une situation similaire, j'utilisais les mêmes outils à distance que localement (gvim pour l'édition, et d'autres outils Linux standard. Travailler à distance était donc plus ou moins la même chose que travailler localement, et il n'y avait pas de problème pour se rappeler de copier les fichiers qui étaient modifiés, ou d'écraser accidentellement les nouveaux fichiers avec les anciens.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X