Нас спросили, как передавать файлы с помощью scp без пароля, используя файл pem для аутентификации. Прочитав эту статью, вы узнаете, как сгенерировать ключ SSH и преобразовать его в файл pem для загрузки или выгрузки файлов с помощью команды scp.
Если у вас уже есть ключ .pem, вы можете перейти к разделу: Использование scp с pem.
Для начала давайте сгенерируем пару ключей ssh, выполнив команду ниже.
ssh-keygen
Выполните следующую команду, чтобы создать файл.pem.
ssh-keygen -f ~/.ssh/id_rsa -e -m pem
После создания пары ключей скопируйте открытый ключ на сервер, к которому вы хотите подключиться, используя файл pem для аутентификации, выполнив команду ниже. Замените имя пользователя «maxim» своим именем пользователя, а IP-адрес — IP-адресом вашего сервера.
ssh-copy-id maxim@192.168.1.100
После выполнения указанной выше команды в вашем домашнем каталоге.ssh должен быть создан файл с именем pk_dsa.pem.
Теперь вы готовы загружать и выгружать файлы с помощью scp, используя файл pem.
Чтобы использовать команду scp с парой ключей, вам необходимо реализовать флаг -i (Идентифицировать файл).
В первом примере мы показываем, как загрузить файл с именем andreyexsignal на сервер 192.168.1.100.
Как вы можете видеть на изображении ниже, за командой scp следует флаг -i и файл pem с именем pk_dsa.pem. Затем указывается файл для отправки, затем имя удаленного пользователя и сервер. Последнее двоеточие после IP определяет путь по умолчанию, который является домашним каталогом пользователя maxim в качестве целевого каталога.
scp -i pk_dsa.pem andreyexsignal maxim@192.168.1.100:
Как видите, файл был правильно загружен в домашний каталог удаленного пользователя (maxim).
В следующем примере показано, как загрузить каталог (с именем directory ) в подкаталог с именем dir, расположенный в удаленном доме пользователя maxim.
Как видите, для рекурсивной загрузки каталогов необходимо добавить флаг -r.
scp -r -i .ssh/pk_dsa.pem directory maxim@192.168.1.112:dir
Каталог теперь находится в подкаталоге целевого каталога.
В предыдущем примере целевой каталог был определен в конце команды. Каталог назначения также должен быть определен в конце команды при загрузке файлов, как показано в следующем примере. Это потому, что scp был разработан, чтобы быть похожим на обычную команду cp.
В следующем примере файл andreyexsignal загружается в локальный каталог /tmp, определенный в конце команды.
scp -i pk_dsa.pem maxim@192.168.1.112:andreyexsignal /tmp
Для рекурсивной загрузки каталога также требуется флаг -r. Удаленный каталог dir загружается в текущий локальный каталог, обозначенный точкой в следующем примере.
scp -r -i pk_dsa.pem maxim@192.168.1.112:dir .
Как видите, перенос каталога был выполнен рекурсивно.
Как видите, использовать scp с файлом pem просто и просто нужно добавить флаг -i.
У аутентификации с открытым ключом есть плюсы и минусы по сравнению с аутентификацией по паролю.
Во-первых, сгенерированные открытые ключи надежнее человеческих паролей. В отличие от аутентификации по паролю, при использовании открытого ключа ваш закрытый ключ не доставляется на сервер (сервер отправляет открытый ключ клиенту), поэтому он не уязвим для атак Man In the Middle.
Многие администраторы выбирают аутентификацию по паролю, потому что им проще поделиться по сравнению с парами ключей.
Спасибо, что прочитали эту статью, в котором объясняется, как использовать scp с файлом pem; Надеемся, это было полезно. Следите за нами, чтобы получить больше советов и статей по Linux.