SSH - це рятівник, коли вам потрібно віддалено керувати комп’ютером, але чи знаєте ви, що також можете завантажувати та завантажувати файли? Використовуючи SSH-ключі, ви можете пропустити необхідність вводити паролі та використовувати це для скриптів!
Цей процес працює на Linux та Mac OS, за умови, що вони правильно налаштовані для доступу до SSH. Якщо ви використовуєте Windows, можете використовуйте Cygwin, щоб отримати функціональність, подібну до Linux , і з невеликим налаштуванням, SSH також буде працювати .
Копіювання файлів через SSH
Безпечна копія - це дійсно корисна команда, і вона дійсно проста у використанні. Основний формат команди такий:
scp [options] оригінальний_файл_файлу_файлу
Найбільший удар - це те, як відформатувати віддалену частину. Коли ви звертаєтесь до віддаленого файлу, вам потрібно це зробити наступним чином:
user @ server: шлях / до / файлу
Сервер може бути URL-адресою або IP-адресою. Далі йде двокрапка, а потім шлях до відповідного файлу або папки. Давайте розглянемо приклад.
scp –P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Ця команда містить прапор [-P] (зверніть увагу, що це велика буква P). Це дозволяє мені вказати номер порту замість типового 22. Це мені потрібно через спосіб налаштування моєї системи.
Далі, моїм оригінальним файлом є "url.txt", який знаходиться всередині каталогу під назвою "Робочий стіл". Файл призначення знаходиться в “~ / Desktop / url.txt”, що збігається з “/user/yatri/Desktop/url.txt”. Цю команду виконує користувач “yatri” на віддаленому комп’ютері “192.168.1.50”.
Що робити, якщо потрібно зробити все навпаки? Ви також можете копіювати файли з віддаленого сервера.
Тут я скопіював файл із папки «~ / Робочий стіл /» віддаленого комп’ютера в папку «Робочий стіл» свого комп’ютера.
Щоб скопіювати цілі каталоги, вам потрібно буде використовувати прапор [-r] (зверніть увагу, що це нижній регістр r).
Ви також можете комбінувати прапори. Замість
scp –P –r…
Ви можете просто зробити
SCP - Але ...
Найскладнішим тут є те, що заповнення вкладок не завжди працює, тому корисно мати ще один термінал із запущеним сеансом SSH, щоб ви знали, куди покласти речі.
SSH та SCP без паролів
Безпечна копія - це чудово. Ви можете помістити це в сценарії та зробити резервне копіювання на віддалені комп’ютери. Проблема в тому, що ви не завжди можете бути поруч, щоб ввести пароль. І, будьмо чесними, дуже важко вводити свій пароль на віддалений комп’ютер, до якого ви, очевидно, постійно маєте доступ.
Ну, ми можемо обійтись, використовуючи паролі, використовуючи ключові файли. Ми можемо змусити комп’ютер генерувати два ключові файли - один загальнодоступний, який належить на віддаленому сервері, і один приватний, який знаходиться на вашому комп’ютері і повинен бути в безпеці, - і вони будуть використовуватися замість пароля. Досить зручно, правда?
На своєму комп’ютері введіть таку команду:
ssh-keygen –t rsa
Це згенерує два ключі та помістить їх у:
~ / .ssh /
з іменами “id_rsa” для вашого приватного ключа та “id_rsa.pub” для вашого відкритого ключа.
Після введення команди вас запитають, де зберегти ключ. Ви можете натиснути Enter, щоб скористатися вищезазначеними за замовчуванням.
Потім вас попросять ввести парольну фразу. Натисніть Enter, щоб залишити це поле порожнім, а потім повторіть це, коли з'явиться запит на підтвердження. Наступним кроком є копіювання файлу відкритого ключа на віддалений комп’ютер. Ви можете використовувати scp для цього:
Місце для вашого відкритого ключа знаходиться на віддаленому сервері, у наступному файлі:
~ / .ssh / дозволені_клавіші2
Подальші відкриті ключі можуть бути додані до цього файлу, подібно до файлу ~ / .ssh / known_hosts. Це означає, що якщо ви хочете додати ще один відкритий ключ для свого облікового запису на цьому сервері, ви скопіюєте вміст другого файлу id_rsa.pub у новий рядок існуючого файлу санкціонованих ключів2.
Міркування щодо безпеки
Це не менш безпечно, ніж пароль?
У практичному сенсі, не дуже. Створений приватний ключ зберігається на комп’ютері, яким ви користуєтесь, і він ніколи не передається, навіть для перевірки. Цей закритий ключ ТІЛЬКИ збігається з тим ОДИН відкритим ключем, і підключення потрібно запускати з комп’ютера, що має закритий ключ. RSA досить безпечний і за замовчуванням використовує 2048-бітну довжину.
Насправді це досить схоже на використання вашого пароля. Якщо хтось знає ваш пароль, ваша безпека виходить з вікна. Якщо хтось має файл вашого приватного ключа, тоді безпека втрачається на будь-якому комп’ютері, що має відповідний лобковий ключ, але для його отримання потрібен доступ до вашого комп’ютера.
Чи може це бути більш безпечним?
Ви можете поєднати пароль із ключовими файлами. Виконайте наведені вище дії, але введіть потужну парольну фразу. Тепер, коли ви підключаєтеся через SSH або використовуєте SCP, вам знадобиться відповідний файл приватного ключа так само, як правильну парольну фразу.
Одного разу ввівши свою парольну фразу, вас більше не запитатимуть, доки ви не закриєте сеанс. Це означає, що коли ви вперше SSH / SCP, вам потрібно буде ввести свій пароль, але для всіх наступних дій він не вимагатиме. Після того, як ви вийдете з комп’ютера (а не з віддаленого) або закриєте вікно терміналу, вам доведеться ввести його знову. Таким чином, ви насправді не жертвуєте безпекою, але і не переслідуєте постійно паролі.
Чи можу я повторно використовувати пару відкритого / приватного ключів?
Це справді погана ідея. Якщо хтось знаходить ваш пароль, і ви використовуєте той самий пароль для всіх своїх облікових записів, то тепер вони матимуть доступ до всіх цих облікових записів. Так само файл вашого приватного ключа також надзвичайно секретний і важливий. (Для отримання додаткової інформації погляньте на Як відновити після того, як ваш пароль електронної пошти порушено )
Найкраще створювати нові пари ключів для кожного комп’ютера та облікового запису, який потрібно пов’язати. Таким чином, якщо один із ваших приватних ключів якось зачепиться, ви зламаєте лише один обліковий запис на одному віддаленому комп’ютері.
Також дуже важливо відзначити, що всі ваші приватні ключі зберігаються в одному місці: у ~ / .ssh / на вашому комп’ютері ви можете використовувати TrueCrypt щоб створити захищений, зашифрований контейнер, потім створити символьні посилання у вашому каталозі ~ / .ssh /. Залежно від того, що я роблю, я цим користуюся супер-параноїк надзвичайно безпечний метод, щоб полегшити мою думку.
Чи використовували ви SCP у будь-яких сценаріях? Чи використовуєте ви ключові файли замість паролів? Поділіться своїми коментарями з іншими читачами в коментарях!