Как удаленно копировать файлы через SSH без ввода пароля

Оглавление:

Как удаленно копировать файлы через SSH без ввода пароля
Как удаленно копировать файлы через SSH без ввода пароля

Видео: Как удаленно копировать файлы через SSH без ввода пароля

Видео: Как удаленно копировать файлы через SSH без ввода пароля
Видео: Apple. Как убрать вкладку часто посещаемые сайты в safari. - YouTube 2024, Май
Anonim
SSH - это спасатель, когда вам нужно дистанционно управлять компьютером, но знаете ли вы, что вы также можете загружать и загружать файлы? Используя SSH-ключи, вы можете пропустить ввод паролей и использовать их для скриптов!
SSH - это спасатель, когда вам нужно дистанционно управлять компьютером, но знаете ли вы, что вы также можете загружать и загружать файлы? Используя SSH-ключи, вы можете пропустить ввод паролей и использовать их для скриптов!

Этот процесс работает на 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».

Что делать, если вам нужно сделать наоборот? Вы также можете копировать файлы с удаленного сервера.
Что делать, если вам нужно сделать наоборот? Вы также можете копировать файлы с удаленного сервера.
Здесь я скопировал файл из папки «~ / Desktop /» удаленного компьютера в папку «Рабочий стол» моего компьютера.
Здесь я скопировал файл из папки «~ / Desktop /» удаленного компьютера в папку «Рабочий стол» моего компьютера.

Чтобы скопировать целые каталоги, вам необходимо использовать флаг [-r] (обратите внимание, что это строчный регистр r).

Вы также можете комбинировать флаги. Вместо
Вы также можете комбинировать флаги. Вместо

scp –P –r …

Вы можете просто сделать

scp –Pr …

Самая сложная часть здесь заключается в том, что завершение табло не всегда работает, поэтому полезно иметь другой терминал с сеансом SSH, чтобы вы знали, куда положить вещи.

SSH и SCP без паролей

Безопасная копия замечательная. Вы можете поместить его в сценарии и выполнить резервное копирование на удаленные компьютеры. Проблема в том, что вы не всегда можете ввести пароль. И, честно говоря, очень больно вводить ваш пароль на удаленный компьютер, на который, очевидно, есть доступ ко всему времени.

Ну, мы можем обойти пароли, используя ключевые файлы. Мы можем заставить компьютер генерировать два ключевых файла - один общедоступный, который принадлежит удаленному серверу, и один закрытый, который находится на вашем компьютере и должен быть безопасным, - и они будут использоваться вместо пароля. Довольно удобно, правда?

На компьютере введите следующую команду:

ssh-keygen –t rsa

Это сгенерирует два ключа и помещает их в:

~/.ssh/

с именами «id_rsa» для вашего закрытого ключа и «id_rsa.pub» для вашего открытого ключа.

После ввода команды вам будет предложено сохранить ключ. Вы можете нажать Enter, чтобы использовать вышеупомянутые значения по умолчанию.
После ввода команды вам будет предложено сохранить ключ. Вы можете нажать Enter, чтобы использовать вышеупомянутые значения по умолчанию.

Затем вам будет предложено ввести кодовую фразу. Нажмите Enter, чтобы оставить это поле пустым, а затем повторите попытку, когда он запросит подтверждение. Следующим шагом будет копирование файла открытого ключа на ваш удаленный компьютер. Вы можете использовать scp для этого:

Назначение вашего открытого ключа находится на удаленном сервере в следующем файле:
Назначение вашего открытого ключа находится на удаленном сервере в следующем файле:

~/.ssh/authorized_keys2

Последующие открытые ключи могут быть добавлены к этому файлу, как файл ~ /.ssh / known_hosts. Это означает, что если вы хотите добавить еще один открытый ключ для своей учетной записи на этом сервере, вы скопируете содержимое второго файла id_rsa.pub в новую строку в существующем файле authorized_keys2.

Вопросы безопасности

Разве это не безопаснее пароля?

В практическом смысле это не так. Созданный закрытый ключ хранится на компьютере, который вы используете, и он никогда не переносится, даже не проверяется. Этот закрытый ключ ТОЛЬКО совпадает с этим единственным открытым ключом, и соединение нужно запускать с компьютера с закрытым ключом. RSA довольно безопасен и по умолчанию имеет длину в 2048 бит.

На самом деле теоретически это похоже на использование вашего пароля. Если кто-то знает ваш пароль, ваша безопасность выходит из окна. Если у кого-то есть ваш файл секретного ключа, тогда безопасность будет потеряна для любого компьютера, у которого есть соответствующий лобковый ключ, но для его получения необходим доступ к вашему компьютеру.

Может ли это быть более безопасным?

Вы можете комбинировать пароль с ключевыми файлами. Выполните описанные выше шаги, но введите сильную кодовую фразу. Теперь, когда вы подключаетесь через SSH или используете SCP, вам понадобится файл приватного ключа так же как правильную кодовую фразу.

Как только вы вводите свою кодовую фразу один раз, вас больше не будут спрашивать, пока вы не закроете сеанс. Это означает, что при первом SSH / SCP вам нужно будет ввести пароль, но все последующие действия не потребуют его. Как только вы выйдете из своего компьютера (а не удаленного) или закроете окно терминала, вам нужно будет снова ввести его. Таким образом, вы действительно не жертвуете безопасностью, но вас также не преследуют пароли.

Image
Image

Можно ли повторно использовать пару открытых / закрытых ключей?

Это действительно плохая идея. Если кто-то находит ваш пароль и вы используете один и тот же пароль для всех своих учетных записей, то теперь у них есть доступ ко всем этим учетным записям.Аналогично, ваш файл секретного ключа также является сверхсекретным и важным. (Для получения дополнительной информации см. «Как восстановить после того, как ваш пароль электронной почты был скомпрометирован»)

Лучше всего создавать новые пары ключей для каждого компьютера и учетной записи, которую вы хотите связать. Таким образом, если какой-либо из ваших личных ключей каким-то образом поймается, тогда вы будете только компрометировать одну учетную запись на одном удаленном компьютере.

Также очень важно отметить, что все ваши личные ключи хранятся в одном месте: в ~ /.ssh / на вашем компьютере вы можете использовать TrueCrypt для создания безопасного, зашифрованного контейнера, а затем создавать символические ссылки в ~ /.ssh /. В зависимости от того, что я делаю, я использую этот суперпараноидный супер-безопасный метод, чтобы успокоить мой разум.

Вы использовали SCP в любых сценариях? Используете ли вы ключевые файлы вместо паролей? Поделитесь своим опытом с другими читателями в комментариях!

Рекомендуемые: