Как выполнить команду на сервере по SSH?

MSE-Script

Developer
Команда форума
Сообщения
861
Реакции
307
Баллы
63
Приветствую, друзья! Многие вебмастера пугаются, когда слышат выражения “Выполнить команду на сервере”, “Запустите в консоле сервера” и т.д.. Сегодня я поясню, что ничего сложного в этих словах нет и выполнить это действие довольно просто. Для начала немного теории:


Что такое SSH?

SSH (Secure SHell) - сетевой протокол, используемый для управления данными на сервере, выполнения служебных команд, работы с БД, настройки сервера и т.д... SSH является защищенным протоколом, это значит, что все передаваемые данные будут надежно зашифрованы.


Как подключиться к серверу по SSH?

Подключение к серверу выполняется с помощью специальных утилит. В macOS и Linux такая утилита уже встроена в ОС, для windows можно воспользоваться популярной утилитой PuTTY. Кроме утилиты для подключения, так же понадобятся данные вашего сервера: IP, логин и пароль пользователя.

Если вы пользователь windows, запустите PuTTY, введите IP-адрес своего сервера в указанное на скриншоте поле и нажмите Open:



При первом подключении вы можете получить предупреждение:

The server host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server rsa2 key fingerprint is: ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Пугаться не нужно, просто нажмите “Да”. Каждый сервер имеет уникальный ключ, называемый ключом узла. Так как вы подключаетесь к серверу впервые, PuTTY сообщит, что такого ключа в его памяти нет. Нажимая кнопку “Да” вы подтверждаете, что указанный сервер принадлежит вам.


Далее вы увидите ту самую консоль сервера с предложением ввести логин и пароль пользователя:



введите логин пользователя и нажмите клавишу Enter. Далее сервер запросит пароль указанного пользователя. Обратите внимание, при вводе пароля в консоле не будет никаких визуальных процессов. Пугаться, что “сервер завис” не нужно. После ввода пароля аналогично нажмите клавишу Enter. Если введенные данные верны, вы увидите командную строку:

Bash:
login@server ~ $
На этом этапе вас можно поздравить - подключение к серверу по SSH выполнено успешно. Думаю, ничего сложного тут нет :)

Для пользователей macOS или Linux подключение делается еще проще. Запустите терминал и введите команду:

Bash:
 ssh login@server_ip
после чего нажмите Enter. После успешного подключения введите пароль пользователя, как описано выше. Готово!


Как работать в консоле?


Для запуска команды, ее нужно ввести в строку и нажать клавишу Enter. Все команды выполняются последовательно. Они могут выполняться с аргументами, которые разделяются пробелами и без таковых.

Команда без аргументов:
Bash:
ls

Команда с аргументом:
Bash:
cd /var/www/data/

Так же, команды могут иметь опции, переключающие различные режимы:
Bash:
php -f ~/www/domain.com/modules/sitemap.php
В данном примере php - команда, -f - опция, ~/www/domain.com/modules/sitemap.php - аргумент.


Базовые команды для работы в консоле

Теперь пройдемся по небольшому списку команд, которые будут вам полезны.

ls - команда для вывода списка папок и файлов. Может принимать опции -l - вывести список в удобочитаемом виде, -а - вывести скрытые файлы и каталоги и др. Так же можно передать необязательный аргумент в виде пути, содержимое которого требуется отобразить.

cd - change directory или сменить каталог. Эта команда служит для перемещения по каталогам сервера. Например, вы находитесь в папке ~/web/, с помощью команды cd ~/web/www/domain.com вы мнгновенно перейдете по указанному пути. Запустив команду ls вы увидите содержимое каталога, в который только что перешли.

mkdir - make dir или создать каталог. Думаю, из самой расшифровки понятно, чем занимается эта команда - она создает каталоги. Требует обязательный аргумент - имя нового каталога.
Bash:
# Создать папку cache
mkdir cache

chmod - изменить права доступа. Требует 2 аргумента - новые права и имя объекта.
Bash:
# установить права 777 на папку cache
chmod 777 cache

rm - remove, команда для удаления файлов. Может принимать некоторые опции, например -f - удалить без подтверждения и -r - удалить все и обязательный аргумент в виде имени файла/пути для удаления. Будьте внимательны! Команда rm -rf . удалит все содержимое текущей папки без потверждения и раздумий!
Bash:
# удалить все содержимое каталога cache
rm -rf cache/

nano - отредактировать указанный в аргументе файл с помощью текстового редактора, может работать не на всех серверах. Пример:
Bash:
# Открыть файл db_config.php для редактирования
nano libs/data/db_config.php

touch - Создать файл с переданным в аргументе именем. Просто создать пустой файл.

pwd - print word directory или показать рабочую директорию. Аргументов не требует, после запуска отобразит путь каталога, в котором вы сейчас находитесь.

find - поиск файлов, принимает в качестве аргументов путь к папке в которой будет производится поиск и критерии для поиска:
Bash:
#  поиск все файлов в папке /uploads/
find ./uploads/

# поиск все файлов c расширением jpg в папке /uploads/
find ./uploads/ -name "*.jpg"
На сегодня все. Если эта статья была полезна, жмите "Мне нравится".
 
Последнее редактирование:

Похожие темы

Сверху