Как использовать SSH (ssh и команды rsync)?

Как может я SSH с удаленным сервером, таким образом, я могу просмотреть файлы и отредактировать их? У меня есть имя пользователя и пароль для использования.

44
задан 23 August 2016 в 06:38

6 ответов

SSH поставляется по умолчанию во всех версиях Ubuntu, поэтому вы экономите на его установке (+1 за то, что он уже есть ;) )

За исключением, конечно, случая, когда вам нужен SSH-сервер для вашего Ubuntu-сервера. В этом случае вы бы

sudo apt-get install openssh-server 

сделали ваш компьютер/сервер готовым к использованию ssh сервера.

Использовать его довольно просто:

ssh USER@SITE, например, если мое имя пользователя cyrex, а сайт ubuntu.com, то вы бы сделали это:

ssh cyrex@ubuntu.com

Теперь скажем, что вы хотите скопировать файл с именем bubblegum. txt с вашего компьютера на ваш сайт ubuntu и хотите оставить этот файл в папке /var/www на сайте ubuntu. вы можете сделать это (при условии, что ваш пользователь имеет достаточно прав на сайте ubuntu), используя SSH's Brother, SCP (Который также поставляется по умолчанию в Ubuntu):

scp bubblegum.txt cyrex@ubuntu.com:/var/www 

Обратите внимание на : между USER@SITE и папкой, в которую вы хотите его скопировать. Это тот, который разделяет оба элемента.

Теперь скажем, что вы загружаете какой-нибудь огромный файл с помощью scp, а затем, в худшем случае, мир взрывается. Как вы можете продолжать загружать этот файл на сервер. Затем у вас есть старший брат SCP, rsync (По умолчанию идет в Ubuntu). Во многих отношениях scp и rsync делают одно и то же, но вот некоторые большие различия между ними:

  • rsync может загружать частичные файлы, оставшиеся после rsync или scp после отключения или мирового господства.
  • rsync может показывать прогресс гораздо лучше, чем scp
  • rsync может оптимизировать загрузку таким образом, что вы действительно можете сэкономить секунды или минуты на загрузке. Она также показывает в конце загрузки, сколько вы сохранили.

В любом случае, в случае, если scp не смог загрузить весь файл, rsync приходит на помощь. (Спасибо Марко Чеппи за совет. Голосуйте за его комментарий, если вам нравятся кошки... и/или собаки)

Давайте скажем, что вы сделали загрузку, упомянутую выше, из scp, и она достигла 60%. Как вы можете продолжать в этих 60%, не теряя времени на загрузку. Вы бы сделали это:

rsync --progress --partial bubblegum.txt cyrex@ubuntu.com:/var/www  

Это говорит rsync, чтобы показать прогресс в приятной человеческой читабельности с флагом --progress. Также он говорит rsync проверить и продолжить с того места, куда попал файл bubblegum.txt с флагом --partial. Также можно упростить запись с помощью параметра -P, который является таким же, как --progress и --partial, так что все выглядит следующим образом:

rsync -P bubblegum.txt cyrex@ubuntu.com:/var/www  

Вы можете даже CTRL+C выгрузить и возобновить загрузку, выполнив команду из rsync, приведенную выше. Очень здорово иметь возможность что-то возобновить в любое время и любое количество раз.

Для получения дополнительной информации для rsync, которая поставляется по умолчанию с Ubuntu, вы можете набрать следующие терминальные команды:

man rsync  
info rsync  
rsync --help

Теперь, чтобы указать порт для SSH. Указать его можно следующим образом:

ssh cyrex@ubuntu.com -p PORT. Например: ssh cyrex@ubuntu.com -p 1234, чтобы сказать ему использовать порт 1234 для службы SSH. Сначала это должно быть настроено на сервере, чтобы он заработал.

Чтобы настроить его, просто откройте на сервере файл ssh_config вот так: nano /etc/ssh/ssh_config и изменить строку с надписью # порт 22 на другой порт. Также не забудьте удалить комментарий из этой строки. Он должен выглядеть так: # порт 1234 в примере выше.

Теперь просто перезапустите сервис ssh на сервере, и все готово. Чтобы перезапустить службу, просто сделайте следующее:

sudo restart ssh

или

sudo /etc/init.d/ssh restart

ПРИМЕЧАНИЕ - Вы также можете использовать SSH из GUI инструментов, таких как filezilla, которые предлагают возможность использовать ssh вместо ftp. ssh также доступен из меню Ubuntu:

enter image description here

, которое предоставляет доступ к нескольким опциям, включая разделяемый ресурс Windows, SSH и FTP:

enter image description here

Для получения дополнительной информации о SSH вы можете использовать одну из следующих команд в консоли в вашем модуле Ubuntu:

man ssh  
info ssh  
ssh --help
49
ответ дан 22 November 2019 в 23:59

Вы можете использовать sshfs, чтобы смонтировать удаленный каталог в вашу локальную файловую систему.

Смотрите https://help.ubuntu.com/community/SSHFS:

Использование командной строки

Теперь, предполагая, что на удаленной машине запущен SSH-сервер, просто выполните команду SSHFS для монтирования удаленной директории. В этом примере удаленной директорией будет /projects на удаленном хосте далеко. Локальной точкой монтирования является ~/far_projects.

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

Для размонтирования,

fusermount -u ~/far_projects

Для добавления в /etc/fstab,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

Обратите внимание, что при редактировании fstab вы должны изменить $USER на ваше имя логина, но в этом нет необходимости при вводе команд (в этом случае оболочка делает это за вас).

6
ответ дан 22 November 2019 в 23:59

Если вы можете использовать Vim, Pico и т.д., вы можете использовать терминал:

ssh MYUSER@mysite.com

Введите пароль, и вы в игре. Отсюда все как в обычном терминале, за исключением того, что у вас нет GUI.

Примечание, вы можете добавить опцию '-X', и если на вашем сервере настроен X-сервер, вы можете запускать программы с графическим интерфейсом. Просто введите их имя, если вы добавили -X, и это запустит окно GUI.

Теперь, вы, вероятно, захотите настроить вход без пароля. Если у вас уже нет ключа, наберите ssh-keygen и просто нажмите enter для всех настроек по умолчанию. Затем выполните ssh-copy-id MYUSER@mysite.com. После этого просто введите ssh MYUSER@mysite.com и вам не нужно будет вводить пароль!

Если ваше имя пользователя совпадает с именем пользователя вашего ноутбука, вам не нужно MYUSER@. Вы можете просто сделать ssh mysite.com. Вы также можете использовать -l MYUSER вместо MYUSER@

Если Вам нужен графический интерфейс, Nautilus может это сделать. Файл -> Соединитесь с сервером -> [выберите 'SSH', затем введите регистрационные данные] -> Соединитесь.

Если вы хотите просто скопировать один файл, используйте scp [безопасная копия].
scp MYUSER@mysite.com:path/to/file.dat ./

Это копирует файл "~/путь/к/файлу.dat" в вашу текущую директорию. Обратите внимание, если у вас нет косой черты или тильды после :, он будет действовать так, как будто вы находитесь в вашем домашнем каталоге [~/]]. Если вы хотите загрузить, scp ./local_file.dat MYUSER@mysite.com:. Это поместит его в ваш домашний каталог.

2
ответ дан 22 November 2019 в 23:59

ssh -X -C user@host nautilus -- no deskktop чтобы перейти в режим gui :)

0
ответ дан 22 November 2019 в 23:59

Если вы хотите просматривать сервер через Nautilus, как вы это делаете с файлами на вашей локальной машине:

  1. Открыть "Наутилус" ("Главная папка")

  2. Перейти к "Файлу" --> "Подключиться к серверу"

    Connect to server

  3. Выбрать "SSH" в разделе "Тип службы"

  4. Поместить IP-адрес или домен в разделе "Сервер"

    Select SSH

  5. Добавить имя пользователя и отметить галочкой "Добавить закладку", если Вы хотите, чтобы местоположение было сохранено в закладках.

Папка должна открыться прямо для вас.

23
ответ дан 22 November 2019 в 23:59

Если сервер ssh уже настроен, откройте терминал и введите:

ssh username@hostname

Вам будет предложено ввести пароль; просто введите его. Если вам нужен номер порта, добавьте -p PORTNUM.

4
ответ дан 22 November 2019 в 23:59

Другие вопросы по тегам:

Похожие вопросы: