SSH


Начало работы

Подключение

Подключение к серверу (порт по умолчанию 22) Сценарий оболочки $ ssh [email protected]

Подключение на определенном порту
```Шелл-скрипт
$ ssh [email protected] -p 6222

Подключение через pem-файл (права 0400)

$ ssh -i /path/file.pem [email protected]

См: SSH Permissions

Выполнение

Выполняет удаленную команду ``Шелл-скрипт $ ssh [email protected] ’ls -l'

Вызов локального скрипта
```Шелл-скрипт
$ ssh [email protected] bash < script.sh

Сжатие и загрузка с сервера

$ ssh [email protected] "tar cvzf - ~/source" > output.tgz

SCP

Копирование с удаленного компьютера на локальный Шелл-скрипт $ scp user@server:/dir/file.ext dest/

Копирование между двумя серверами
```ll-скрипт
$ scp user@server:/file user@server:/dir

Копирование с локального сервера на удаленный командный сценарий $ scp dest/file.ext user@server:/dir

Копирует целую папку
```Шелл-скрипт
$ scp -r user@server:/dir dest/

Копирует все файлы из папки командный сценарий $ scp user@server:/dir/* dest/

Копирует из папки сервера в текущую папку
```Шелл-скрипт
$ scp user@server:/dir/* .

Расположение конфигурации

Путь к файлу Описание
/etc/ssh/ssh_config Общесистемная конфигурация
~/.ssh/config Конфигурация для конкретного пользователя
~/.ssh/id_{type} Личный ключ
~/.ssh/id_{type}.pub Открытый ключ
~/.ssh/known_hosts Хост, с которого осуществляется вход
~/.ssh/authorized_keys Ключ авторизованного входа

Параметры SCP

Опции Описание
scp -r R рекурсивное копирование целых каталогов
scp -C C сжимает данные
scp -v Печатает v подробную информацию
scp -P 8080 Используется определенный порт P
scp -B
scp -p P резервирует время и режимы

Пример конфигурации

``toml Хост server1 HostName 192.168.1.5 Пользователь root Порт 22 IdentityFile ~/.ssh/server1.key


Запуск по псевдониму
``Сценарий оболочки
$ ssh server1

См: Полный Параметры конфигурации

ProxyJump

Шелевой сценарий $ ssh -J proxy_host1 remote_host2


```Шелл-скрипт {.wrap}
$ ssh -J user@proxy_host1 user@remote_host2

Многократные переходы

$ ssh -J user@proxy_host1:port1,user@proxy_host2:port2 user@remote_host3

ssh-copy-id

$ ssh-copy-id user@server

Копирование на сервер псевдонимов

$ ssh-copy-id server1

Копирование определенного ключа

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

SSH keygen

ssh-keygen

‘‘‘shell script $ ssh-keygen -t rsa -b 4096 -C “[email protected]

----
| - | - | - |
|---|------|-------------------------------|
| | | `-t` | [Тип](#key-type) ключа |
| | | `-b` | Количество бит в ключе |
| | | `-C` | Предоставляет новый комментарий |
{.left-text}

Генерация ключа RSA 4096 бит с указанием электронной почты в качестве комментария


### Генерировать {.col-span-2 .row-span-2}

Генерация ключа в интерактивном режиме
сценарий оболочки
$ ssh-keygen

Укажите имя файла

$ ssh-keygen -f ~/.ssh/filename

Генерация открытого ключа из закрытого ключа

$ ssh-keygen -y -f private.key > public.pub

Изменить комментарий

$ ssh-keygen -c -f ~/.ssh/id_rsa

Изменение парольной фразы закрытого ключа

$ ssh-keygen -p -f ~/.ssh/id_rsa

Тип ключа

  • rsa
  • ed25519
  • dsa
  • ecdsa

known_hosts

Поиск по известным_хостам командный сценарий $ ssh-keygen -F <ip/hostname>


Удалить из известных_хостов
```хилый скрипт
$ ssh-keygen -R <ip/hostname>

Формат ключа

  • PEM
  • PKCS8

Также см.