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

SSH — это спасение, когда вам нужно удаленно управлять компьютером, но знаете ли вы, что вы также можете загружать и скачивать файлы? Используя ключи SSH, вы можете пропустить необходимость ввода пароля и использовать его для скриптов!

Этот процесс работает в Linux и Mac OS при условии, что они правильно настроены для доступа по SSH. Если вы используете Windows, вы можете использовать Cygwin для получения функциональности, подобной Linux, и с небольшой настройкой SSH также будет работать.

Копирование файлов по SSH

Безопасное копирование — это действительно полезная команда, и ее очень легко использовать. Основной формат команды следующий:

scp [параметры] исходный_файл конечный_файл

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

пользователь @ сервер: путь/к/файлу

Сервер может быть URL-адресом или IP-адресом. Далее следует двоеточие, затем путь к рассматриваемому файлу или папке. Давайте посмотрим на пример.

scp –P 40050 Desktop/url.txt yatri@192.168.1.50: ~/Desktop/url.txt

Эта команда имеет флаг [-P] (обратите внимание, что это заглавная буква P). Это позволяет мне указать номер порта вместо 22 по умолчанию. Это необходимо для меня из-за того, как я настроил свою систему.

Далее, мой оригинальный файл — «url.txt», который находится внутри каталога «Рабочий стол». Файл назначения находится в «~/Desktop/url.txt», который совпадает с «/user/yatri/Desktop/url.txt». Эта команда выполняется пользователем «yatri» на удаленном компьютере «192.168.1.50».

Что делать, если вам нужно сделать наоборот? Вы можете скопировать файлы с удаленного сервера аналогичным образом.

Здесь я скопировал файл из папки «~/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 в новую строку существующего файла authorized_keys2.

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

Разве это не менее безопасно, чем пароль?

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

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

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

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

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

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

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

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

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

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

Оцените статью
TutoryBird.Ru
Добавить комментарий