ssh - aleksei-khitev/knowledge_base GitHub Wiki
ssh
Генерация ключей ssh
$ ssh-keygen
По умолчанию, ключи будут сохранены в ~/.ssh
Указание метода шифрования
$ ssh-keygen -t rsa
Ключи с заданным именем
$ ssh-keygen -f somekey
$ ll
-rw------- 1 aleksei_khitev aleksei_khitev 2622 Mar 17 15:59 somekey
-rw-r--r-- 1 aleksei_khitev aleksei_khitev 581 Mar 17 15:59 somekey.pub
$ ssh-keygen -t rsa -f .local/somekey
$ ll .local
-rw------- 1 aleksei_khitev aleksei_khitev 2622 Mar 17 16:02 somekey
-rw-r--r-- 1 aleksei_khitev aleksei_khitev 581 Mar 17 16:02 somekey.pub
В этом случае, ключи будут созданы в текущей папке или по полному пути, заданном в имени
Загрузка публичного ключа на сервер
$ ssh-copy-id user@host
Задача конкретного порта
$ ssh-copy-id user@host -p 2222
Задача файла с ключами
$ ssh-copy-id user@host -i ~/.ssh/mykey
При этом, на сервер отправлен будет файл mukey.pub
Доступы для ключей и конфига ssh
$ chmod 400 ~/.ssh/some_key
$ chmod 400 ~/.ssh/some_key.pub
$ chmode 644 ~/.ssh/config
Задача сервера ssh в конфиге
Host docker
User some_user
HostName some_host
Port 2222
IdentityFile ~/.ssh/some_key
После этого, можно подключаться просто по имени
$ ssh docker
Proxy через bastion или другой сервер
Host bastion_name
User [username to go through bastion or another system]
HostName [bastion or another system to go through]
Host target_server
User [target server username]
HostName [target server]
IdentityFile [.pem key file to connect to target server]
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe bastion_name -W %h:%p
ServerAliveInterval 120
ServerAliveCountMax 2
Туннель SSH
Host oracle_tunnel_snapshot
User [username to go through bastion or another system]
HostName [bastion or another system to go through]
IdentityFile [.pem key file to connect to target server]
LocalForward [localport to be used] [target server]:[target server port]
ServerAliveInterval 120
ServerAliveCountMax 2