Я студент университета и очень плохо знаком с ssh и scp ... и новичок в программировании. Новейшее задание, данное нам, требует доступа к библиотекам, которые находятся только на студенческом сервере в университете. На работе они сказали, что используют SSH.
Итак, я сделал это, и я могу использовать ssh для входа на студенческий сервер, чтобы я мог компилировать с использованием библиотек, хранящихся там (программирование на C ++)
Однако я не уверен как это сделать:
в отношении б) Я пробовал следующую команду:
scp mike@ubuntu: /a1644923/testscp a1644923@uss.cs.adelaide.edu.au: a1644923
, но затем я получаю:
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:
Разумная задача - скопировать файлы с домашнего компьютера на сервер ученика. (То, что вы попробовали на втором шаге)
scp
требуется два параметра: источник и пункт назначения , и нужна только удаленная часть username@hostname
. ]
Итак, ваша команда (для одного файла для тестирования) должна выглядеть следующим образом:
scp a1644923/testscp a1644923@uss.cs.adelaide.edu.au:
Двоеточие в конце важно. Убедитесь, что в команде нет лишних пробелов. Я предполагаю, что каталог a1644923
находится в вашем текущем каталоге. Вы можете скопировать / вставить эту команду в вашу оболочку.
Если вам нужно перенести полный каталог, вы должны включить рекурсивный режим. Я предполагаю, что у вас есть каталог project1
в вашем текущем каталоге. Так что наберите
scp -r project1/ a1644923@uss.cs.adelaide.edu.au:
Запомните пробел между scp
и -r
. Команда - scp
, а -r
- это параметр, указывающий scp
работать рекурсивно, то есть копировать все ниже.
Здравствуйте, Майк, сделайте это следующим образом:
sudo apt-get install sshfs
sshfs username@server:/home/UsersHomeFolderAtServer mnt/
в локальном домашнем каталоге создайте папку mnt, а затем смонтируйте домашнюю папку с сервера на локальный компьютер. Затем вы можете работать со своими файлами локально, но они загружаются на сервер при внесении изменений.
Я бы порекомендовал скомпилировать файлы на сервере, потому что на нем может быть установлена другая версия библиотеки / пакета, чем у вас на вашем локальном компьютере.
Ошибка говорит вам, что он не может найти файл в указанном вами месте (среди прочего, stat - это функция для проверки файла на существование).
Предполагая, что файл находится в каталоге /a1644923/testscp
на удаленной машине, ваша проблема, кажется, пробелы после двоеточий; они не должны быть там. Как правило, если у вас есть пробел в имени файла, вам нужно экранировать его с помощью '\ '
или использовать кавычки. В противном случае это интерпретируется как отдельные параметры.
scp на самом деле не более сложен, чем cp, за исключением того, что он копирует с одного компьютера на другой. Но у него очень похожий синтаксис, просто для формата файла требуется дополнительный спецификатор для машины, если он отличается от вашего (вам не нужно указывать свой собственный компьютер).
Редактировать:
Из того, что вы сказали о библиотеках, находящихся на удаленном компьютере, и все такое, кажется, что вы хотите скомпилировать исходные файлы на удаленном компьютере, чтобы использовать эти библиотеки. Мне кажется, что все должно быть сделано на удаленном компьютере, поэтому ваш локальный компьютер - это просто удаленный терминал.
Когда я находился в аналогичной ситуации, я использовал те же инструменты удаленно, что и локально (gvim для редактирования, и другие стандартные инструменты Linux. Поэтому удаленная работа была такой же, как и локальная, более или менее, и не было проблем с запоминанием копировать файлы, которые были изменены, или случайно перезаписывать новые файлы старыми.