1) Cкопировать SSH ключ на USER@HOST для настройки беспарольной авторизации
ssh-copy-id user@host
Для того чтобы сгенерировать ключи, воспользуйтесь командой ssh-keygen
2) Поднять туннель на 2001 локальном порту для доступа к 80 порту какой-либо машины
ssh -N -L2001:localhost:80 somemachine
Теперь вы можете получить доступ к сайту по ссылку http://localhost:2001/
3) Перенаправить вывод вашего микрофона на спикер другой машины
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
Это перенаправит звук с вашего микрофона на спикер порт машины подключаемой по SSH.
Качество звука очень плохое, так что вы услышите много шума.
4) Сравнить файл на удаленной машине с локальной копией
ssh user@host cat /path/to/remotefile | diff /path/to/localfile —
Очень полезно для поиска различий между файлами на разных машинах.
5) Монтировать папки через SSH
sshfs name@server:/path/to/folder /path/to/mount/point
Правда для этого вам сначала надо будет установить SSHFS http://fuse.sourceforge.net/sshfs.html
6) ssh соединение через промежуточную машину
ssh -t reachable_host ssh unreachable_host
Unreachable_host не доступен из локальной сети, но он доступен через сеть reachable_host. Эта команда создает соединение с unreachable_host через “скрытое” соединение с reachable_host.
7) Скопировать файл с HOST1 на HOST2, через ваш HOST
ssh root@host1 “cd /somedir/tocopy/ && tar -cf – .” | ssh root@host2 “cd /samedir/tocopyto/ && tar -xf -”
Крайне удобный способ копирования файлов, если HOST1 и HOST2 не имеют прямых соединений.
8) Удаленный запуск любый GUI приложений
ssh -fX @
SSH должен иметь в конфигурации:
X11Forwarding yes # в Debian такое значение установлено по умолчанию
9) Создать постоянное подключение с машиной
ssh -MNf @
Установить в фоновом режиме постоянное SSH соединение с машиной. Плюс к этом добавьте следующие настройки в файл ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no
Все SSH соединения к этой машине будут идти через постоянный SSH socket. Это очень полезно, если вы постоянно используете SSH для синхронизации файлов, используя rsyns/sftp/cvs/svn, потому что при таких настройках не будут создаваться новые сокеты при выполнении каждой команды.
10) Подключить SCREEN по SSH
ssh -t remote_host screen -r
Напрямую подключить удаленную screen сессию (позволяет сэкономить на родительском процессе bash)
11) PORT KNOCKING!
knock 3000 4000 5000 && ssh -p user@host && knock 5000 4000 3000
Чтобы получить доступ к службе (ssh например) необходимо в определенном порядке постучаться на порты, а также чтобы закрыть доступ.
Необходимо установить knockd.
Пример конфига ниже.
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
12) Удалить ключ для хоста
ssh-keygen -R
Крайне удобно использовать, если у вас на одном IP часто переустанавливаются системы.
13) Запускать более комплексные шеловые команды
ssh host -l user $(> ~/.ssh/authorized_keys”
Если вы используете Mac OS X или какой-то другой вариант unix системы, в которой нет ssh-copy-id, то данный вариант поможет вам скопировать ваш публичный ключ на удаленную машину.
14) Проверка скорости передачи данный по SSH
yes | pv | ssh $host “cat > /dev/null”
подключается к машине по SSH и отображает скорость передачи данных, перенаправляя всю передаваемую информацию в /dev/null
Должен быть установлен pv
Debian: ‘apt-get install pv’
Fedora: ‘yum install pv’
15) Установить удаленную screen сессию, к которой можно переподключаться
ssh -t user@some.domain.com /usr/bin/screen -xRR
Задолго до появление вкладок в терминалах, людям приходилось использовать screen для того чтобы открыть несколько шелов в одном терминале. В реалиях SSH screen позволяет нам использовать несколько шелов в одному SSH подключении. Если вы отсоединитесь с помощью «Ctrl-a d» или у вас порвется SSH, то все процессы запущенные на удаленной машине останутся работать и будут ждать вашего возвращения. Другие полезные команды screen: «Ctrl-a c» — открывает новый шел и «Ctrl-a a» — переключаться между шелами.
Также можете ознакомится с небольшим гайдом по screen: http://aperiodic.net/screen/quick_reference
16) Возобновить передачу файла по SCP
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file
Данная команда может возобновить и продолжить прерваную передачу файла через SCP.
Необходимо иметь rsync на обоих сторонах.
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local -> remote
или
rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote -> local
17) Открыть вечную SSH сессию
autossh -M50000 -t server.example.com ‘screen -raAd mysession’
Открывать ssh сессиб, которая постоянно открыта, очень удобно при нестабильном сетевом соединении.
18) Сгенерировать и скопировать SSH ключ
ssh-keygen; ssh-copy-id user@host; ssh user@host
Этот набор команд позволяет вам легко и быстро организовать себе беспарольный доступ на удаленную машину. Будьте осторожны, если у вас уже есть пара ключей в вашем ~/.ssh/ каталоге на локальной машине, т.к. есть возможность, что ssh-keygen может их перезаписать.