• Запуск Команд на Удаленном Linux Сервере через SSH
  • Долгое Подключение по SSH — Убираем Задержку
  • Установить Предупреждающее Сообщение (Баннер) в SSH
  • Быстрое Подключение с SSH Алиасами
  • Бэкап Сайта по FTP с помощью Wget
  • 10 Примеров : Копирование файлов через SSH

Запуск Команд на Удаленном Linux Сервере через SSH

Выполнение Команд на Удаленном Linux Сервере

$ ssh [user]@[server] ‘[command]’

Узнать uptime удаленного сервера

$ ssh root@192.168.1.1 ‘uptime’

Перезагрузить удаленный сервер

$ ssh root@192.168.1.1 ‘reboot’

Запуск Нескольких Команд через SSH

СПОСОБ 1 :

$ ssh [user]@[server] ‘[command 1]; [command 2]; [command 3]’

Узнать Uptime и Disk Usage

$ ssh root@192.168.1.1 ‘uptime; df -h’

СПОСОБ 2 :

$ ssh [user]@[server] ‘[command 1] | [command 2] | [command 3]’

Узнать Memory Usage и Load Average

$ ssh root@192.168.1.1 ‘free -m | cat /proc/loadavg’

СПОСОБ 3 :

$ ssh [user]@[server] << EOF
command 1
command 2
command 3
EOF

Показать Версию Ядра, информацию о CPU и кол-во RAM

$ ssh root@192.168.1.1 << EOF
uname -a
grep «model name» /proc/cpuinfo
grep MemTotal /proc/meminfo
EOF

Выполнение Локального Скрипта на Удаленном Linux Сервере

$ ssh [user]@[server] ‘bash -s’ < [local_script]

Запустить Локальный Скрипт ‘local_script.sh’ на Удаленной Машине

$ ssh root@192.168.1.1 ‘bash -s’ < local_script.sh

Долгое Подключение по SSH — Убираем Задержку

Проблема : При подключении к серверу по SSH, после того как я ввел Логин, приглашение для ввода Пароля появляется только через длительный промежуток времени (до 30 секунд). Как убрать задержку и увеличить скорость подключения?

Решение : В большинстве случаев, длительная задержка при подключении вызвана использованием метода аутентификации «GSS API» и/или опцией «UseDNS». Решение проблемы заключается в отключении GSSAPIAuthentication и установкой опции UseDNS в значение «no» на SSH Сервере.

Откройте файл настроек SSH Сервера :

# vi /etc/ssh/sshd_config

UseDNS : Выполнять ли запросы DNS для получения имени удалённого хоста для того чтобы убеждаться в том, что обратное преобразование выдаёт тот же самый IP-адрес. Значение по умолчанию «yes».

Установите UseDNS в значение «no», как показано ниже :

UseDNS no

GSSAPIAuthentication : Допускать аутентификацию по GSSAPI. Значение по умолчанию «no».

Установите GSSAPIAuthentication в значение «no» :

GSSAPIAuthentication no

Перезапустите OpenSSH сервер для применения изменений

Для Fedora/Centos/RHEL и т.п. :
# service sshd restart
Для Debian/Ubuntu/LinuxMint и т.п. :
# sudo service ssh restart

Теперь Вы сможете подключаться к Вашему Серверу по SSH намного быстрее.

Установить Предупреждающее Сообщение (Баннер) в SSH

Предупреждающие баннеры и приветственные сообщения в SSH необходимы тогда, когда организация хочет предупредить о судебном преследовании несанкционированных пользователей или просто дать некоторую информацию или объявление.

Показываем Предупреждающее Сообщение ПЕРЕД входом по SSH

Предшествующее входу в систему предупреждающее сообщение появляется перед запросом пароля, во время интерактивной SSH сессии. Оно обычно содержит правовое предупреждение для уточнения условий допуска к системе.

Предупреждающее сообщение SSH обычно находится в файлах ‘/etc/issue’ и ‘/etc/issue.net’, но можно указать и свой файл, например ‘/etc/ssh/sshd-banner’. Содержимое указанного файла показывается пользователям перед аутентификацией.

Создадим файл с SSH баннером :
$ vi /etc/ssh/sshd-banner
Вставим в него текст с предупреждением :
WARNING : Unauthorized access to this system is forbidden and will be prosecuted
by law. By accessing this system, you agree that your actions may be monitored if
unauthorized usage is suspected.
Откроем файл конфигурации SSH сервера :
$ vi /etc/ssh/sshd_config
Укажем путь к нашему баннеру :
Banner /etc/ssh/sshd-banner
Сохраним изменения и перезапустим sshd :
$ service sshd reload

Показываем Приветствие ПОСЛЕ входа по SSH

Содержимое файла ‘/etc/motd’ отображается после успешного входа в систему, но перед появлением командной строки. Он используется для отображения системных объявлений или другой важной информации, которую мы хотим чтобы вошедшие пользователи узнали до начала работы.

Отредактируем файл ‘/etc/motd’ :
$ vi /etc/motd
Поместим в него объявление для пользователей и сохраним изменения.

Теперь это сообщение будет показываться пользователям каждый раз, после входа в систему через SSH.

Быстрое Подключение с SSH Алиасами

Если Вам необходимо регулярно подключаться по SSH к большому количеству разных серверов, этот трюк специально для Вас.

Редактирование файл конфигурации SSH и добавление SSH алиасов, сделают процесс удаленного подключения намного быстрее и удобнее.

Редактируем файл конфигурации SSH для текущего пользователя :
$ vi ~/.ssh/config
либо редактируем основной конфигурационный файл, если хотим сделать этот алиас доступным для всех пользователей :
$ vi /etc/ssh/ssh_config
Добавляем следующие строки :

### Алиасы для быстрого подключения ###
Host AliasName
HostName 1.2.3.4
User YourUserName
Port YourSSHPort

Где :

  • Host — алиас для удаленного сервера;
  • HostName — доменное имя или IP адрес удаленного сервера;
  • User — имя пользователя для соединения по SSH;
  • Port — порт SSH на удаленном сервере.

Теперь мы можем подключаться к удаленному серверу используя простой алиас :
$ ssh AliasName

Бэкап Сайта по FTP с помощью Wget

Прежде всего необходимо создать папку в которую мы зальем сайт. Например создадим папку backups в домашней директории.
# mkdir ~/backups
# cd ~/backups

Скачать Весь Сайт по FTP

Следующая команда рекурсивно скачивает Ваш сайт, вместе со всеми файлами и папками, с FTP сервера и сохраняет их в текущей директории.
# wget -r -l 0 -nH ftp://user:pass@ftp.server.com

Опция Описание
user Имя FTP пользователя
pass Пароль для FTP
ftp.server.com IP адрес или доменное имя FTP сервера
-r, —recursive Рекурсивное извлечение
-l, —level Максимальная глубина рекурсии (0 = неограниченная)
-nH, —no-host-directories Не создавать папку с название FTP сервера

Ваш сайт скачен :
# ls -l
drwxr-xr-x 4 user group 4096 2013-05-09 18:20 yoursite.com

Резервное Копирование Сайта

Теперь создадим архив папки с сайтом :
# tar -czf site-backup-$(date +%Y%m%d-%H%M%S).tar.gz yoursite.com
Предыдущая команда создает архив с название, основанным на текущем времени. Что-то вроде site-backup-20130509-190638.tar.gz.

Для извлечения архива выполните :
# tar -zxvf site-backup-20130509-190638.tar.gz

Скачать Определенную Папку с FTP

Допустим, в нашей домашней папке на FTP сервере имеется следующая структура каталогов :

/yoursite.com/www/images

Приведенная ниже команда рекурсивно скачает папку ‘images’ со всем ее содержимым с FTP сервера и сохранит ее в текущей директории.
# wget -r -l 0 -nH -np —cut-dirs=2 ftp://user:pass@ftp.server.com/yoursite.com/www/images

Опции Описание
-np, —no-parent Не подниматься в родительские каталоги
—cut-dirs Игнорировать ‘определенное число’ родительских директорий

Все эти задачи должны быть автоматизированны и добавлены в Cron.

10 Примеров : Копирование файлов через SSH

SCP (Secure CoPy) — программа для удаленного копирования фалов по сети между хостами.

Она использует SSH для передачи данных, ту же аутентификацию и те же меры безопасности, что и SSH.

Во время копирования исходного фала в файл назначения, который уже существует, SCP перезаписывает файл назначения. Если файл назначения еще не существует, тогда создается пустой файл, ему задается имя файла назначения и уже в него записывается содержимое копируемого файла.

Пример 1 : Копируем файл «file.txt» из удаленного сервера на локальный компьютер.
$ scp user@remote.host:file.txt /some/local/directory
Пример 2 : Копируем файл «file.txt» с локального компьютера на удаленный сервер.
$ scp file.txt user@remote.host:/some/remote/directory
Пример 3 : Копируем папку «dir1» с локального хоста в директорию «dir2» на удаленном хосте.
$ scp -r dir1 user@remote.host:/some/remote/directory/dir2
Пример 4 : Копируем файл «file.txt» с одного удаленного сервера «remote.host1» на другой удаленный сервер «remote.host2».
$ scp user@remote.host1:/directory/file.txt user@remote.host2:/some/directory/
Пример 5 : Копируем файлы «file1.txt» и «file2.txt» с локального компьютера в Ваш домашний каталог на удаленном сервере.
$ scp file1.txt file2.txt user@remote.host:~
Пример 6 : Копируем файл «file.txt» с локального хоста на удаленный хост, используя порт 2222.
$ scp -P 2222 file.txt user@remote.host:/some/remote/directory
Пример 7 : Копируем файл «file.txt» с локального компьютера в Ваш домашний каталог на удаленном сервере. Сохраняем время изменения и время доступа и права копируемого фала.
$ scp -p file.txt user@remote.host:~
Пример 8 : Копируем файл «file.txt» с локального компьютера в Ваш домашний каталог на удаленном сервере. Увеличиваем скорость работы SCP изменяя алгоритм шифрования с AES-128 (по умолчанию) на Blowfish.
$ scp -c blowfish file.txt user@remote.host:~
Пример 9 : Копируем файл «file.txt» с локального компьютера в Ваш домашний каталог на удаленном сервере. Ограничиваем ширину канала используемого командой SCP до 100 Kbit/s.
$ scp -l 100 file.txt user@remote.host:~
Пример 10 : Копируем несколько файлов с удаленного хост в текущую директорию на Вашем локальном хосте.
$ scp user@remote.host:~/\{file1,file2,file3\} .

0 0 vote
Article Rating