Как может я SSH с удаленным сервером, таким образом, я могу просмотреть файлы и отредактировать их? У меня есть имя пользователя и пароль для использования.
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 делают одно и то же, но вот некоторые большие различия между ними:
В любом случае, в случае, если 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:
, которое предоставляет доступ к нескольким опциям, включая разделяемый ресурс Windows, SSH и FTP:
Для получения дополнительной информации о SSH вы можете использовать одну из следующих команд в консоли в вашем модуле Ubuntu:
man ssh
info ssh
ssh --help
Вы можете использовать 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 на ваше имя логина, но в этом нет необходимости при вводе команд (в этом случае оболочка делает это за вас).
Если вы можете использовать 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:
.
Это поместит его в ваш домашний каталог.
ssh -X -C user@host nautilus -- no deskktop
чтобы перейти в режим gui :)
Если вы хотите просматривать сервер через Nautilus, как вы это делаете с файлами на вашей локальной машине:
Открыть "Наутилус" ("Главная папка")
Перейти к "Файлу" --> "Подключиться к серверу"
Выбрать "SSH" в разделе "Тип службы"
Поместить IP-адрес или домен в разделе "Сервер"
Добавить имя пользователя и отметить галочкой "Добавить закладку", если Вы хотите, чтобы местоположение было сохранено в закладках.
Папка должна открыться прямо для вас.
Если сервер ssh уже настроен, откройте терминал и введите:
ssh username@hostname
Вам будет предложено ввести пароль; просто введите его. Если вам нужен номер порта, добавьте -p PORTNUM
.