Site Tools


ssh

Отключить пользователя от SSH

who -a #получаем все активные подключения с pid
kill -9 pid

Тунель

Открываем удаленное X11 приложение

Не обязательное:

SSH client
# grep -iRH x /etc/ssh/ssh_config 
/etc/ssh/ssh_config:XAuthLocation /usr/bin/xauth
/etc/ssh/ssh_config:   ForwardX11 yes
/etc/ssh/ssh_config:   ForwardX11Trusted yes
SSH server
conovaloff@ConeNote:~$ grep -iRH x /etc/ssh/sshd_config 
/etc/ssh/sshd_config:X11Forwarding yes    #Обязательно
/etc/ssh/sshd_config:X11DisplayOffset 10
ssh -XC user@server

При подключение с X форвардингом, будут подключения на 6010 или другой порт от ssh

SSH server
root@ConeNote:/home/conovaloff# lsof -i -P -n | grep ssh
sshd      385        root    3r  IPv6   6396      0t0  TCP *:22 (LISTEN)
sshd      385        root    4u  IPv4   6398      0t0  TCP *:22 (LISTEN)
sshd     2674        root    3r  IPv4  19360      0t0  TCP 192.168.0.106:22->192.168.0.102:56275 (ESTABLISHED)
sshd     2765  conovaloff    3u  IPv4  19360      0t0  TCP 192.168.0.106:22->192.168.0.102:56275 (ESTABLISHED)
sshd     2765  conovaloff    9u  IPv6  19451      0t0  TCP [::1]:6010 (LISTEN)
sshd     2765  conovaloff   10u  IPv4  19452      0t0  TCP 127.0.0.1:6010 (LISTEN)

“Кидаем” приложение на рабочий стол с сервера к подключенному клиенту

env XAUTHORITY=/home/conovaloff/.Xauthority DISPLAY=:10 xterm   #Указываем переменные для подключения и запускаем

Возможные проблемы:

Can't open display

  1. Не выставлено “X11Forwarding yes” в sshd_config
  2. При подключение, в переменных должно быть DISPLAY=localhost:10.0 или похожее.
  3. В ssh2 были сложности. Использовать стандартный ssh клиент

X11 connection rejected because of wrong authentication. #На экране клиента при запуске программы с сервера

  1. При запуске на сервре, следуте явно указывать переменную XAUTHORITY.

in gentoo-wiki

Авторизация по ключу

Клиент:

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub user@remote_server:~/.ssh/
#ssh-agent bash #Без этого и ssh-add, необходимо будет указывать пароль для доступа к ключу.
#ssh-add

сервер:

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

Проверить в ./sshd_conf
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

SSH Dir

  • Устанавливаем sshfs и подхватываем fuse

Монтировать:

sshfs -o allow_other user@remote_server:/dir /mnt/dir

Отмонтировать:

fusermount -u /mnt/sshfs/

Чтобы работало после перезагрузки: Добавляем в /etc/fstab:

sshfs#user1@remote_server:/tmp /home/user1/remote_folder/ fuse defaults,auto 0 0

Примеры pipe

Общая мораль - SSH лишь передает полученное на выход в pipe или отдает на stdout полученное на удаленном сервере. Если это можно сделать через pipe - это можно сделать удаленно в ssh.

ssh user@serv.com 'mysqldump -udbuser -ppassword base' | mysql -uroot -ppassword backup #В pipe передается вывод удаленной команды
tar -cz content | ssh user@serv.com 'tar -xz' # В pipe передается набор данных, который удачно рабоает и без ssh. SSH лишь транслирует pipe на удаленный сервер.
dd if=/dev/sda | ssh user@server 'dd of=sda.img'
ssh user@server 'dd if=sda.img' | dd of=/dev/sda
ssh user@server 'bash -s' < script.sh

Проблемы и решения

Write failed: Broken pipe

На клиенте:

ServerAliveInterval 6000
ServerAliveCountMax 300

На сервере:

ClientAliveInterval 6000
ClientAliveCountMax 300

Debug On

Клиент:

ssh -v host

Discussion

Constantin Conovaloff, 2014/12/19 19:40
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ6C0InIRZZ9f28gt7o2EyCHZs/SSy/0r/qxfX2Yle8v4t1APkQVm/pnaul+mV0gqHJlLNl5uhg0AlfW3ff1vVO58Gag5+CHdMvJsLWmqADjCZHxRPiFq+aY8BIIW3hFh8t9c/ELt2Or3Pt3uwX5ZxAqrjzO1yANRz0A1Bx4hLGryU8dLPtkkaKjutcKM8OAQJvqSd17id+bmQAl87PpVL67Mlgz5Iw4p0gMb0pE4nFC4VZ9NF/xUT7zTMIIYUjhBSpBI1HM1eFEofzj9+uo5HmdWjGUlIRPMc4ntnQE/4W8iAIhd9OPVksu5KcMJjK8+Z48feKzYFnREmfR5etI9L root@stanley

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3ezL1NOhlVWRGAedd3humYVjkuJzkt2/+zDCnCMDLALrSK9jWOdgfJZWKaPshEA3mJGBoETj3Q8/n59tIpbxoCp6Z70xGQJujavGUwrWDyYA7Jpi0HGrlwEpL7WGqczcI5NtYNywimSZpO3BkKz4QPn16SRZuPBAYCznYZUsZI6mbrOPDWSsNkC2EJ0+Y96hLeN5t59nnlb7zr2r9ieNgbOHGK6l5L39Vry1weznsdE60k0C+u/ZlXXSGqG38oVa4SkBhmN7esS5Nslsz4lrouZKTmIMZZ8pK6jGddhbZHabHA96LNfBcEB6v2PkXKd1eL+JHzf1fN1gEHZL/TRVn root@work
Constantin Conovaloff, 2014/12/19 19:44

Заблокировать авторизацию по паролю

vi /etc/ssh/sshd_config

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

RSAAuthentication yes
PubkeyAuthentication yes
Constantin Conovaloff, 2015/04/17 14:05

Проброс портов с удаленного на локальный

  1. Есть сервер “Сулик” к которому у нас есть доступ.
  2. Есть сервер “Крондр” к которому доступ есть только с “Сулика”
  3. На Кронде есть сервер (порт 9000) к которому мы хотим подключиться с локального компьютера
ssh user@СУЛИК -f -N -L ЛОКАЛЬНЫЙ_ПОРТ:КРОНДР:9000

После этого можно конектится на ЛОКАЛЬНЫЙ_ПОРТ, а по факту, запросы будут транслироваться через СУЛИК на КРОНДР:9000

Для web

echo 127.0.0.1 site.ru >> /etc/hosts
ssh user@server_web_proxy -f -N -L 82:site.ru:80
curl site.ru:82
Constantin Conovaloff, 2015/07/09 14:56

Проброс портов. С удаленного сервера на наш локальный

ssh -f -N -R 8014:localhost:8014 login@server

Локальный:

nc -l 8014

Удаленный:

echo some | nc localhost 8014
Constantin Conovaloff, 2017/11/25 18:55
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDD0V+uKVx9hSMNUktr20AclmybfbZhTP4SsJM8DcU7SFzoPHXONsVVUQPWGb9vBkhS78NUGjTfxZLr9XUPBvDL109AC/fZ6yqZWApUxEVBfyQJp4YMl8JGV8nffIodnrSORRuuu6EsW9LHU8innxoal83ju9qqByQbJbwrCSpIrnsOLFOyeHquwTZDy4yisuRCRj1fH1nDM4nrbyXtMS8rWhz2FxqrPV1mseuCGayrTEJEY8hQIWYEgFoZbCNF9ChR16T7NZRE4EY2AkVGhCkrTLEU+T9BUwHwW0D/JzajALDakeboVI8Cy1y/c8qXhJ7YX39/CVkfSm2dJyQxXtMB root@ConConovaloff
You could leave a comment if you were logged in.
ssh.txt · Last modified: 2017/01/21 02:58 by conovaloff

Page Tools