Показаны сообщения с ярлыком ssh. Показать все сообщения
Показаны сообщения с ярлыком ssh. Показать все сообщения

воскресенье, 11 августа 2024 г.

Получение буфера обмена по SSH

sudo nvim /etc/ssh/sshd_config 

Удаляем диезы # у сток:

X11Forwarding yes

X11DisplayOffset 10

X11UseLocalhost yes


Перезапускаем SSHD

sudo systemctl reload sshd

Теперь подключаемся по ssh с параметром -X
ssh -X user@192.168.0.2

Проверяем. Открываем файл в nvim.
nvim index.html

Выделяем какой-либо текст. Например:
gg^G$

Копируем.
YY

Вставляем в текстовом редакторе на локальной машине.
Shift+Ins

четверг, 12 октября 2023 г.

ssh туннель (бесплатный VPN по SSH)

На удаленной машине:

Настраиваем ssh сервер.

sudo nvim /etc/ssh/sshd_config 

PermitTunnel yes

AllowTCPForwarding yes


Перезапускаем ssh сервер.

systemctl restart sshd



На локальной машине

sudo su

ssh -f -v -o Tunnel=point-to-point -o ServerAliveInterval=10 -o TCPKeepAlive=yes -w 100:100 root@IP-remote-host \

'/sbin/ifconfig tun100 172.16.40.1 netmask 255.255.255.252 pointopoint 172.16.40.2' && \

/sbin/ifconfig tun100 172.16.40.2 netmask 255.255.255.252 pointopoint 172.16.40.1


где IP-remote-host - IP удаленной машины.


Проверяем открыт-ли порт на удаленной машине

nc -zvw3 IP-remote-host

 Connection to IP-remote-host port [tcp/ssh] succeeded!

вторник, 20 декабря 2022 г.

SSH-ключи для серверов

Создать SSH ключ в Linux

  1. Введите команду ssh-keygen и нажмите Enter.
  2. Если команда ssh-keygen не найдена, установите пакет openssh командой: yum –y install openssh-server openssh-clients

Добавить SSH ключ на сервер

  1. Введите команду: ssh-copy-id root@123.123.123.123
  2. Нажмите Enter и введите пароль от вашего сервера.
где root — логин вашего сервера,
123.123.123.123 — IP-адрес сервера.

пятница, 8 июля 2016 г.

Cгенерировать открытый/закрытый SSH-ключ в Linux

ssh-keygen
enter
enter
enter




cat id_rsa.pub >> ~/.ssh/authorized_keys


Оставаясь на удаленном хосте, откройте конфигурационный файл SSH: sudo nano /etc/ssh/sshd_config

Убедитесь, что следующие атрибуты имеют корректные значения:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no


sudo service ssh reload




На этом все. Теперь вы можете соединяться со своим удаленным хостом с помощью команды: ssh user@remote-host-ip-address

понедельник, 4 апреля 2016 г.

Туннелирования трафика sshuttle

Способ быстренько организовать себе VPN-соединение через другой сервер.
На «другой сервер» вам нужен только ssh. Ещё на той стороне понадобится установленный python 2.3+ (а это все дебианы, начиная с 4-ки, кажется, и все убунты, начиная с 8.04). 

apt-get install sshuttle

Запускаем
sshuttle -r user@remoteserver 0.0.0.0/0 -vv

понедельник, 30 ноября 2015 г.

Часто используемые команды и конструкции при разработке на Bitrix

Вывод массива php

Часто есть необходимость посмотреть что содержит переменная или массив. Ниже несколько вариантов как это можно сделать, в том числе незаметно для посетителей сайта.

<div style="display: none;"><? echo json_encode($arResult['ITEMS']);?></div>
<textarea style="display: none;"><? echo var_export($arResult['ITEMS']);?></textarea&gt
<?global $USER; if($USER->isAdmin()){echo ‘<pre>’;print_r($array);echo ‘</pre>}?>
<? echo "<pre>"; print_r ($arResult); echo "</pre>"; ?>
<?echo "<pre style='display: inline;'>"; print_r(get_defined_vars());echo "</pre>";?> //вывод массива всех определенных серверных и пользовательских переменных

Запись массива в файл или лог Apache

Если нет возможности вывести массив на страницу, то можно записать его в файл

$current = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt');

$current .= "John Smith\n";

$current .= var_export($_SESSION, true);

file_put_contents($file, $current);


или лог Apache


error_log ("blyat` ".var_export($arStatus, true), 0);
error_log ("blyat` ".var_export($arStatus, true), 1, "wer@mail.ru")

Вывод лога в реальном времени.

tail -f /var/log/syslog

Работа с базой

Посмотреть какие запросы идут в базу можно так:
В терминале
mysql -uroot -p
пароль
затем
SHOW PROCESSLIST;

Прямое обращение к базе работает на много быстрее чем через API битрикса.

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/dbconn.php");
$db=new PDO($DBType.':host='.$DBHost.';dbname='.$DBName, $DBLogin, $DBPassword);
$db->query("SET CHARACTER SET utf8");
$res=$db->prepare(" SELECT VALUE FROM `b_iblock_element_property`  WHERE (`IBLOCK_PROPERTY_ID`='3847' and `IBLOCK_ELEMENT_ID` LIKE '%".$item['id']."%')");
 $res->execute();// выборка из базы возвращает код товара поставщика по внутреннему коду товара
 if($row=$res->fetch()){
  if ($row<1){error_log ("пусто", 0);}
  else  echo $row[0];
 }

Интерактивная консоль php

Проверить код можно в интерактивной консоли php. Для этого в терминале нужно запустить команду 
php -a

SSH

Монтируем файловую систему удаленного сервера к своей
sshfs user@domen.ru:/ /media/sshfsdomen.ru -o reconnect

Если злобный админ закрыл куда-нибудь доступ
sudo ssh -D 777 user@domen.ru
получаем socks сервер на localhost:777

Просмотр лога в реальном времени.
ssh myyser@site.ru tail -f /var/log/nginx/error.log

Посмотреть кто зашел
who

Проверка свободного места на диске

Куда делось место на диске покажет команда
df -h
du -| grep "[0-9]M" | sort --r

Работа с архивами

Распаковать бэкап битрикса можно командой<
sudo cat *.* | tar xzv

Поиск куска кода

sudo find -type f -name '*.php' | xargs grep -l "echo '$aritem" --color

Задать права на файлы рекурсивно

sudo chmod -R 777 /bitrix/templates/newtempl

Дамп TCP

tcpdump -vX -i eth0 port 80

Смотрим подключения

netstat -tap | grep nginx


fail2ban iptables

Забаннить
iptables -I INPUT -j DROP -s 58.40.10.2
iptables -I INPUT -m iprange --src-range 5.143.231.0-5.143.231.255 -j DROP


Алиасы .bashrc или в .bash_aliases для быстрого банна
alias ban=’iptables -I INPUT -j DROP -s’
alias unban=’iptables -D INPUT -j DROP -s’


Список забанненых
iptables-saveили
iptables -L -n -v --line-numbers


Удалить ip из банна
iptables -D fail2ban-ssh -j DROP -s 46.20.67.32/32
iptables -D fail2ban-ssh 1

Остановить, запустить файрвол.
service ufw stop
service ufw start


Сохраняем правила файрвола.
iptables-save > /etc/iptables.rules


Восстанавливаем правила.
iptables-restore < /etc/iptables.rules

Часто используемые команды и конструкции при разработке на Bitrix

Вывод массива php

Часто есть необходимость посмотреть что содержит переменная или массив. Ниже несколько вариантов как это можно сделать, в том числе незаметно для посетителей сайта.

<div style="display: none;"><? echo json_encode($arResult['ITEMS']);?></div>
<textarea style="display: none;"><? echo var_export($arResult['ITEMS']);?></textarea&gt
<?global $USER; if($USER->isAdmin()){echo ‘<pre>’;print_r($array);echo ‘</pre>}?>
<? echo "<pre>"; print_r ($arResult); echo "</pre>"; ?>
<?echo "<pre style='display: inline;'>"; print_r(get_defined_vars());echo "</pre>";?> //вывод массива всех определенных серверных и пользовательских переменных

Запись массива в файл или лог Apache

Если нет возможности вывести массив на страницу, то можно записать его в файл

$current = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt');

$current .= "John Smith\n";

$current .= var_export($_SESSION, true);

file_put_contents($file, $current);


или лог Apache


error_log ("blyat` ".var_export($arStatus, true), 0);
error_log ("blyat` ".var_export($arStatus, true), 1, "wer@mail.ru")

Вывод лога в реальном времени.
tail -f /var/log/syslog

Работа с базой

Посмотреть какие запросы идут в базу можно так:
В терминале
mysql -uroot -p
пароль
затем
SHOW PROCESSLIST;

Прямое обращение к базе работает на много быстрее чем через API битрикса.

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/dbconn.php");
$db=new PDO($DBType.':host='.$DBHost.';dbname='.$DBName, $DBLogin, $DBPassword);
$db->query("SET CHARACTER SET utf8");
$res=$db->prepare(" SELECT VALUE FROM `b_iblock_element_property`  WHERE (`IBLOCK_PROPERTY_ID`='3847' and `IBLOCK_ELEMENT_ID` LIKE '%".$item['id']."%')");
 $res->execute();// выборка из базы возвращает код товара поставщика по внутреннему коду товара
 if($row=$res->fetch()){
  if ($row<1){error_log ("пусто", 0);}
  else  echo $row[0];
 }

Интерактивная консоль php

Проверить код можно в интерактивной консоли php. Для этого в терминале нужно запустить команду 
php -a

SSH

Монтируем файловую систему удаленного сервера к своей
sshfs user@domen.ru:/ /media/sshfsdomen.ru -o reconnect

Если злобный админ закрыл куда-нибудь доступ
sudo ssh -D 777 user@domen.ru
получаем socks сервер на localhost:777

Просмотр лога в реальном времени.
ssh myyser@site.ru tail -f /var/log/nginx/error.log

Посмотреть кто зашел
who

Проверка свободного места на диске

Куда делось место на диске покажет команда
df -h
du -| grep "[0-9]M" | sort --r

Работа с архивами

Распаковать бэкап битрикса можно командой<
sudo cat *.* | tar xzv

Поиск куска кода

sudo find -type f -name '*.php' | xargs grep -l "echo '$aritem" --color

Задать права на файлы рекурсивно

sudo chmod -R 777 /bitrix/templates/newtempl

Дамп TCP

tcpdump -vX -i eth0 port 80

Смотрим подключения

netstat -tap | grep nginx


fail2ban iptables

Забаннить
iptables -I INPUT -j DROP -s 58.40.10.2
iptables -I INPUT -m iprange --src-range 5.143.231.0-5.143.231.255 -j DROP


Алиасы .bashrc или в .bash_aliases для быстрого банна
alias ban=’iptables -I INPUT -j DROP -s’
alias unban=’iptables -D INPUT -j DROP -s’


Список забанненых
iptables-saveили
iptables -L -n -v --line-numbers


Удалить ip из банна
iptables -D fail2ban-ssh -j DROP -s 46.20.67.32/32
iptables -D fail2ban-ssh 1

Остановить, запустить файрвол.
service ufw stop
service ufw start


Сохраняем правила файрвола.
iptables-save > /etc/iptables.rules


Восстанавливаем правила.
iptables-restore < /etc/iptables.rules

Split / разбить dump

//Разбить дамп по 50000 строк for i in `ls *.sql`; do split -d -l 50000 -a 4 --additional-suffix=.sql $i "$(basename "$i" .sq...