Этот процесс работает на Linux и Mac OS при условии, что они правильно настроены для доступа к SSH. Если вы используете Windows, вы можете использовать Cygwin для получения Linux-подобных функций, и с небольшой настройкой SSH также будет работать.
Копирование файлов через SSH
Безопасная копия - действительно полезная команда, и она очень проста в использовании. Основной формат команды выглядит следующим образом:
scp [options] original_file destination_file
Самый большой кикер - как отформатировать удаленную часть. Когда вы обращаетесь к удаленному файлу, вам необходимо сделать это следующим образом:
user@server:path/to/file
Сервер может быть 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 –Pr …
Самая сложная часть здесь заключается в том, что завершение табло не всегда работает, поэтому полезно иметь другой терминал с сеансом SSH, чтобы вы знали, куда положить вещи.
SSH и SCP без паролей
Безопасная копия замечательная. Вы можете поместить его в сценарии и выполнить резервное копирование на удаленные компьютеры. Проблема в том, что вы не всегда можете ввести пароль. И, честно говоря, очень больно вводить ваш пароль на удаленный компьютер, на который, очевидно, есть доступ ко всему времени.
Ну, мы можем обойти пароли, используя ключевые файлы. Мы можем заставить компьютер генерировать два ключевых файла - один общедоступный, который принадлежит удаленному серверу, и один закрытый, который находится на вашем компьютере и должен быть безопасным, - и они будут использоваться вместо пароля. Довольно удобно, правда?
На компьютере введите следующую команду:
ssh-keygen –t rsa
Это сгенерирует два ключа и помещает их в:
~/.ssh/
с именами «id_rsa» для вашего закрытого ключа и «id_rsa.pub» для вашего открытого ключа.
Затем вам будет предложено ввести кодовую фразу. Нажмите Enter, чтобы оставить это поле пустым, а затем повторите попытку, когда он запросит подтверждение. Следующим шагом будет копирование файла открытого ключа на ваш удаленный компьютер. Вы можете использовать scp для этого:
~/.ssh/authorized_keys2
Последующие открытые ключи могут быть добавлены к этому файлу, как файл ~ /.ssh / known_hosts. Это означает, что если вы хотите добавить еще один открытый ключ для своей учетной записи на этом сервере, вы скопируете содержимое второго файла id_rsa.pub в новую строку в существующем файле authorized_keys2.
Вопросы безопасности
Разве это не безопаснее пароля?
В практическом смысле это не так. Созданный закрытый ключ хранится на компьютере, который вы используете, и он никогда не переносится, даже не проверяется. Этот закрытый ключ ТОЛЬКО совпадает с этим единственным открытым ключом, и соединение нужно запускать с компьютера с закрытым ключом. RSA довольно безопасен и по умолчанию имеет длину в 2048 бит.
На самом деле теоретически это похоже на использование вашего пароля. Если кто-то знает ваш пароль, ваша безопасность выходит из окна. Если у кого-то есть ваш файл секретного ключа, тогда безопасность будет потеряна для любого компьютера, у которого есть соответствующий лобковый ключ, но для его получения необходим доступ к вашему компьютеру.
Может ли это быть более безопасным?
Вы можете комбинировать пароль с ключевыми файлами. Выполните описанные выше шаги, но введите сильную кодовую фразу. Теперь, когда вы подключаетесь через SSH или используете SCP, вам понадобится файл приватного ключа так же как правильную кодовую фразу.
Как только вы вводите свою кодовую фразу один раз, вас больше не будут спрашивать, пока вы не закроете сеанс. Это означает, что при первом SSH / SCP вам нужно будет ввести пароль, но все последующие действия не потребуют его. Как только вы выйдете из своего компьютера (а не удаленного) или закроете окно терминала, вам нужно будет снова ввести его. Таким образом, вы действительно не жертвуете безопасностью, но вас также не преследуют пароли.
Можно ли повторно использовать пару открытых / закрытых ключей?
Это действительно плохая идея. Если кто-то находит ваш пароль и вы используете один и тот же пароль для всех своих учетных записей, то теперь у них есть доступ ко всем этим учетным записям.Аналогично, ваш файл секретного ключа также является сверхсекретным и важным. (Для получения дополнительной информации см. «Как восстановить после того, как ваш пароль электронной почты был скомпрометирован»)
Лучше всего создавать новые пары ключей для каждого компьютера и учетной записи, которую вы хотите связать. Таким образом, если какой-либо из ваших личных ключей каким-то образом поймается, тогда вы будете только компрометировать одну учетную запись на одном удаленном компьютере.
Также очень важно отметить, что все ваши личные ключи хранятся в одном месте: в ~ /.ssh / на вашем компьютере вы можете использовать TrueCrypt для создания безопасного, зашифрованного контейнера, а затем создавать символические ссылки в ~ /.ssh /. В зависимости от того, что я делаю, я использую этот суперпараноидный супер-безопасный метод, чтобы успокоить мой разум.
Вы использовали SCP в любых сценариях? Используете ли вы ключевые файлы вместо паролей? Поделитесь своим опытом с другими читателями в комментариях!