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
```