Перший крок для налаштування аутентифікації ключів SSH на сервері полягає в тому, щоб згенерувати пару ключів SSH на локальному комп'ютері.
Для цього ми можемо використовувати спеціальну утиліту ssh-keygen, яка входить до стандартного набору інструментів OpenSSH. За замовчуванням вона створює пару 2048-бітних ключів RSA, що підходить для більшості сценаріїв використання.
Згенеруйте на локальному комп'ютері пару ключів SSH, ввівши таку команду:
ssh-keygen -t rsa -b 4096
Утиліта запропонує вам вибрати місце розміщення генерованих ключів. За замовчуванням ключі зберігаються в каталозі ~/.ssh всередині домашнього каталогу вашого користувача. Закритий ключ матиме ім'я id_rsa, а відповідний відкритий ключ матиме ім'я id_rsa.pub.
Копирование публичного ключа на сервер:
ssh-copy-id username@server_ip
Для налаштування підключення виду ssh home потрібно додати відповідну конфігурацію в файл ~/.ssh/config:
Host home
HostName 158.101.197.61
User osvex
IdentityFile ~/oracle.key
Host - коротка назва хоста, до якого будем виконувати підключення
Hostname - IP адреса або домен хоста
User - ім'я користувача під яким будем авторизуваватись
IdentifyFile - ключ ssh (по паролю неможливо) ===
Додати публічний ключ на віддалений сервер ===
Перед підключенням до сервера по згенерованому ключу, публічний ключ потрібно завантажити на сервер. Зробити це можливо виконавши команду:
cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat>> .ssh/authorized_keys'
Після успішного завантаження, підключення буде доступно.
Щоб використати ключ .pem виконайте команду SSH з ключом -i та вкажіть шлях до файлу
ssh -i filekey.pem 1.1.1.1
Якщо для користуча root вимкнений доступ по SSH, увімкнути можна:
nano /etc/ssh/sshd_config RepmitRootLogin yes
sudo nano /etc/ssh/sshd_config
Відповідний рядок замінити на no
PasswordAuthentication yes
Перезапустити службу:
sudo systemctl restart sshd
Команда scp - це утиліта, яка працює за протоколом SSH, а отже, все, що вам потрібно для передавання файлу на комп'ютер, це щоб на ньому було запущено SSH-сервер, а також ви маєте знати логін і пароль для під'єднання до нього. За допомогою команди scp ви можете не тільки переміщати файли між локальною і віддаленою системою, а й між двома віддаленими системами. Для цього теж буде достатньо знати паролі від них. І на відміну від Rsync вам не потрібно авторизуватися на одному з серверів.
Загальний синтаксис:
$ scp опции шлях_до_ файла логін @хост: /шлях_куди_класти_файл
Приклад:
scp /home/osmay/file [email protected]:/root/
Для цього використайте ключ -i та вкажіть шлях до файла-ключа.
scp -i ~/Documents/mainKey.pem archive.tar.xz [email protected]:/home/user/
Змінити місцями шляхи. Приклад:
scp [email protected]:/root/ /home/osmay/file