Syntax highlighting of
linux/ssh
# SSH
[TOC]
## Примеры команд
```bash
# -- создание ключевой пары
ssh-keygen -t rsa -b 4096 -C "YOUR@EMAIL.com" [-f /some/path/id_rsa]
# --- кэширование пароля idrsa
ssh-agent bash
ssh-add ~/.ssh/id_rsa
# --- подключение по паролю
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com
# --- проброс порта 3306 с ubuntunode-3 на локальный порт 9906
ssh -f -N -L 9906:127.0.0.1:3306 ubuntunode-3
mysql -u root -p -h 127.0.0.1 -P 9906
# --- проброс локального порта 22 на удаленный порт 2255 сервера testserver
ssh -f -N -R 2255:localhost:22 testserver
ssh -i ~/.ssh/mykey user@host
```
## Конфигурация клиента
```conf
# .ssh/config
HOST userv
HostName 192.168.1.206
User user
Port 22
IdentityFile ~/.ssh/id_rsa
```
## Как это сделать?
**How do I SSH to machine A via B in one command?** [source](https://askubuntu.com/questions/311447/how-do-i-ssh-to-machine-a-via-b-in-one-command)
```bash
# ~/.ssh/config on localhost
HOST hostB
HostName HOST_B_IP
Port HOST_B_PORT
User HOST_B_USER
HOST hostA
ProxyCommand ssh -q hostB nc -q0 HOST_A_IP HOST_A_PORT
```
**Change default directory when I SSH to server**
[source](https://serverfault.com/questions/499565/change-default-directory-when-i-ssh-to-server)
```bash
# ~/.bashrc
cd /directory/you/need
```
**If always Enter passphrase for key**
[source](https://askubuntu.com/questions/362280/enter-ssh-passphrase-once)
```bash
ssh-agent bash
ssh-add ~/.ssh/id_rsa
```
**Разрешение подключения по ssh для пользователя**
Добавить в файл */etc/ssh/sshd_config* строку
```
AllowUsers username
```
потом перезагружаем сервис
```bash
sudo service ssh reload
```