Как да копирате отдалечено файлове през SSH, без да въвеждате паролата си
SSH е спасител, когато имате нужда от дистанционно управление на компютър, но знаете ли, че можете да качвате и сваляте файлове? С помощта на SSH ключове можете да пропуснете да въвеждате пароли и да ги използвате за скриптове!
Този процес работи на Linux и Mac OS, при условие че те са правилно конфигурирани за SSH достъп. Ако използвате Windows, можете да използвате Cygwin, за да получите подобна на Linux функционалност, и с малко настройване, SSH също ще работи.
Копиране на файлове през SSH
Защитеното копие е наистина полезна команда и е много лесна за използване. Основният формат на командата е както следва:
scp [опции] original_file destination_file
Най-големият кикър е как да форматирате отдалечената част. Когато адресирате отдалечен файл, трябва да го направите по следния начин:
потребител @ сървър: път / до / файл
Сървърът може да бъде URL адрес или IP адрес. Следва двоеточие, след което пътят до въпросния файл или папка. Нека да разгледаме един пример.
scp -P 40050 Работен плот / 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 и SCP без пароли
Сигурно копие е страхотно. Можете да го поставите в скриптове и да направите резервни копия на отдалечени компютри. Проблемът е, че може да не винаги сте наоколо, за да въведете паролата. И нека бъдем честни, че е голяма болка да поставите паролата си на отдалечен компютър, на който очевидно имате достъп през цялото време.
Е, можем да използваме пароли, като използваме ключови файлове. Ние можем да накараме компютъра да генерира два ключови файла - един публичен, който принадлежи на отдалечения сървър, и един частен, който е на вашия компютър и трябва да бъде защитен - и те ще бъдат използвани вместо парола. Доста удобно, нали?
На компютъра си въведете следната команда:
ssh-keygen -t rsa
Това ще генерира двата ключа и ще ги постави в:
~ / .Ssh /
с имената “id_rsa” за личния ви ключ и “id_rsa.pub” за вашия публичен ключ.
След въвеждане на командата ще бъдете попитани къде да запишете ключа. Можете да натиснете клавиша Enter, за да използвате посочените по-горе настройки по подразбиране.
След това ще бъдете помолени да въведете пропуск. Натиснете Enter, за да оставите това празно, след това го направете отново, когато поиска потвърждение. Следващата стъпка е да копирате файла на публичния ключ на вашия отдалечен компютър. Можете да използвате scp, за да направите това:
Дестинацията за вашия публичен ключ е на отдалечения сървър, в следния файл:
~ / .Ssh / authorized_keys2
Последващи публични ключове могат да бъдат добавени към този файл, подобно на файла ~ / .ssh / known_hosts. Това означава, че ако искате да добавите друг публичен ключ за профила си на този сървър, трябва да копирате съдържанието на втория файл id_rsa.pub в нов ред на съществуващия файл.
Съображения за сигурност
Не е ли това по-малко сигурно от паролата?
В практически смисъл, не наистина. Създаденият частен ключ се съхранява на компютъра, който използвате, и никога не се прехвърля, дори не се проверява. Този частен ключ се съвпада само с този единствен публичен ключ и връзката трябва да се стартира от компютъра, който има личен ключ. RSA е доста сигурна и използва 2048 битова дължина по подразбиране.
Това всъщност е доста сходно на теория с използването на вашата парола. Ако някой знае паролата ви, сигурността ви излиза от прозореца. Ако някой има файл с личен ключ, защитата се губи за всеки компютър, който има съответстващ публичен ключ, но те се нуждаят от достъп до компютъра ви, за да го получат.
Може ли това да е по-сигурно?
Можете да комбинирате парола с ключови файлове. Следвайте горните стъпки, но въведете силен пропуск. Сега, когато се свързвате през SSH или използвате SCP, ще ви е необходим правилният файл с личен ключ както и правилната парола.
След като веднъж въведете паролата си, няма да бъдете попитани за него, докато не затворите сесията. Това означава, че първия път, когато SSH / SCP, ще трябва да въведете паролата си, но всички последващи действия няма да го изискват. След като излезете от компютъра си (не от отдалечения) или затворите прозореца на терминала, ще трябва да го въведете отново. По този начин, вие всъщност не жертвате сигурността, но също така не ви тормозят за пароли през цялото време.
Мога ли да използвам двойката публичен / частен ключ?
Това е наистина лоша идея. Ако някой намери паролата ви и използвате същата парола за всичките си профили, сега те имат достъп до всички тези профили. По същия начин файлът с личния ви ключ също е супер-таен и важен. (За повече информация, вижте как да се възстанови след нарушаване на паролата за електронна поща)
Най-добре е да създадете нови двойки ключове за всеки компютър и профил, които искате да свържете. По този начин, ако някой от вашите лични ключове бъде хванат по някакъв начин, тогава ще компрометирате само един акаунт на един отдалечен компютър.
Също така е много важно да се отбележи, че всичките ви лични ключове се съхраняват на едно и също място: в ~ /. / директория. В зависимост от това, което правя, използвам този супер-параноичен супер-сигурен метод, за да успокоя ума си.
Използвали ли сте SCP във всички скриптове? Използвате ли ключови файлове вместо пароли? Споделете собствения си опит с други читатели в коментарите!