SSH е животоспасяващо устройство, когато трябва отдалечено да управлявате компютър, но знаехте ли, че можете също да качвате и изтегляте файлове? С помощта на SSH ключове можете да пропуснете да въвеждате пароли и да ги използвате за скриптове!
Този процес работи на Linux и Mac OS, при условие че те са правилно конфигурирани за SSH достъп. Ако използвате Windows, можете да използвате Cygwin, за да получите подобна на Linux функционалност, а с малко подобрение SSH ще работи също.
Защитеното копие е наистина полезна команда и е много лесна за използване. Основният формат на командата е както следва:
scp [опции] оригинален_файл дестинация_файл
Най-големият кикър е как да форматирате отдалечената част. Когато адресирате отдалечен файл, трябва да го направите по следния начин:
потребител @ сървър: път / до / файл
Сървърът може да бъде URL адрес или IP адрес. Това е последвано от двоеточие, а след това от пътя към въпросния файл или папка. Нека да разгледаме един пример.
scp -P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Тази команда съдържа знака [-P] (имайте предвид, че това е капитал P). Това ми позволява да посоча номер на порт, вместо по подразбиране 22. Това е необходимо за мен поради начина, по който съм конфигурирал системата си.
След това оригиналът ми е "url.txt", който е вътре в директория, наречена "Desktop". Целевият файл е в "~ / Desktop / url.txt", който е същият като "/user/yatri/Desktop/url.txt". Тази команда се изпълнява от потребителя "yatri" на отдалечения компютър "192.168.1.50".
Какво Ако трябва да направите точно обратното? Също така можете да копирате файлове от отдалечен сървър.
Тук съм копирал файл от папката "~ / Desktop /" на отдалечения компютър в папката "Desktop" на компютъра си.
За да копирате цели директории, ще трябва да използвате флага [-r] (имайте предвид, че е малка буква r).
Също така можете да комбинирате флагове. Вместо
scp -P-r ...
Можете просто да направите
scp -Pr ...
Най-трудната част тук е, че завършването на разделите не винаги работи, затова е полезно да имате друг терминал с SSH сесия, така че да знаете къде да поставите нещата.
Защитеното копие е страхотно. Можете да го поставите в скриптове и да го правите резервни копия на отдалечени компютри. Проблемът е, че може да не сте винаги наоколо, за да въведете паролата. И да бъдем честни, истинска голяма болка е да въведете паролата си на отдалечен компютър, който очевидно имате достъп до цялото време.
Е, можем да използваме пароли, като използваме ключови файлове. Можем да имаме компютър, който да генерира два ключови файла - една публика, която принадлежи на отдалечения сървър, и една частна, която е на вашия компютър и трябва да бъде сигурна - и те ще бъдат използвани вместо парола. Доста удобно, нали?
На компютъра си въведете следната команда:
ssh-keygen -t rsa
Това ще генерира двата клавиша и ще ги въведе:
~ / .Ssh /
с имената "id_rsa" за вашия частен ключ и "id_rsa.pub" за вашия публичен ключ.
След като въведете командата, ще бъдете запитани къде да запазите ключа. Можете да натиснете Enter, за да използвате горепосочените по подразбиране.
След това ще бъдете помолени да въведете пропуск. Натиснете Enter, за да оставите това празно, след което го направете отново, когато поиска потвърждение. Следващата стъпка е копирането на файла с публичен ключ на отдалечения компютър. Можете да използвате scp, за да направите това:
Целта на публичния ви ключ е на отдалечения сървър в следния файл:
~ / .Ssh / authorized_keys2
Следващите публични ключове могат да бъдат добавени към този файл, подобно на файла ~ / .ssh / known_hosts. Това означава, че ако искате да добавите друг публичен ключ за профила си на този сървър, ще копирате съдържанието на втория файл id_rsa.pub в нов ред в съществуващия authorized_keys2 файл.
Това не е ли по-малко сигурно от паролата?
В практически смисъл, не всъщност. Частният ключ, който се генерира, се съхранява на компютъра, който използвате, и никога не се прехвърля, дори не се потвърждава. Този частен ключ САМО съответства на този един публичен ключ и връзката трябва да бъде стартирана от компютъра, който има частния ключ. RSA е доста сигурна и по подразбиране използва 2048 битова дължина.
Всъщност теоретично е подобно на използването на паролата ви. Ако някой знае вашата парола, вашата сигурност излиза извън прозореца. Ако някой има ваш личен ключ, тогава сигурността се губи за всеки компютър, който има съответния публичен ключ, но има нужда от достъп до компютъра ви, за да го получи.
Може ли това да е по-сигурно?
Можете да комбинирате парола с ключови файлове. Следвайте стъпките по-горе, но въведете силен пропуск. Сега, когато се свързвате през SSH или използвате SCP, ще ви трябва необходимия файл с частен ключ както и подходящата парола.
След като веднъж въведете паролата си, няма да ви бъде поискано отново, докато не затворите сесията си. Това означава, че за първи път, когато сте SSH / SCP, ще трябва да въведете паролата си, но всички последващи действия няма да я изискват. След като излезете от компютъра (не от отдалечения) или затворите терминалния прозорец, ще трябва да го въведете отново. По този начин вие не жертвате сигурността, но също така не сте тормозени за пароли през цялото време.
Мога ли да използвам повторно двойката публичен / личен ключ?
Това е много лоша идея. Ако някой намери паролата ви и използвате една и съща парола за всичките си профили, те вече имат достъп до всички тези профили. По същия начин вашият файл с частен ключ е и супер тайна и важна. (За повече информация вижте как да възстановите след като вашата имейл парола е компрометирана)
Най-добре е да създадете нови двойки ключове за всеки компютър и акаунт, който искате да свържете. По този начин, ако някой от вашите лични ключове бъде заловен по някакъв начин, тогава ще компрометирате само една сметка на един отдалечен компютър.
Също така е много важно да отбележите, че всичките ви частни ключове се съхраняват на едно и също място: в ~ / .ssh / на компютъра си, можете да използвате TrueCrypt, за да създадете сигурен криптиран контейнер, след което да създадете символни връзки в ~ / .ssh / директория. В зависимост от това, което правя, използвам този супер-параноичен супер сигурен метод, за да улесни ума си.
Използвали ли сте SCP във всеки скрипт? Използвате ли ключови файлове вместо пароли? Споделете своя собствен опит с други читатели в коментарите!