Мне нужно скопировать несколько небольших файлов с удаленного компьютера на локальный. Мне нужно делать это несколько раз в день. В настоящее время я использую скрипт, который использует scp для копирования файлов. Тем не менее, это медленно, так как каждый раз, когда мне нужно аутентифицироваться. Есть ли способ, кроме монтирования, сделать одну аутентификацию и сохранить ее, пока я не закончу копирование?
2 ответа
Просто используйте функцию ControlMaster SSH. Для этого я разместил глобальный вариант:
Host *
ControlPath ~<user>/.ssh/ctrl-%r-%h-%p
В моем .ssh/config. Конечно, вы должны заменить <user>
соответственно вашим логином.
Всякий раз, когда я хочу установить первоначальное мастер-соединение, я добавляю '-M':
ssh -M <machine>
Это создает управляющий сокет с именем файла, указанным выше. Любой последующий вызов ssh/scp, предназначенный для этого <machine>
будет повторно использовать существующее главное соединение. Значительно ускоряет процесс подключения, так как не требуется дополнительная аутентификация в течение времени, когда существует управляющее (== master) соединение. В качестве приятного побочного эффекта вам не нужно повторно вводить вашу парольную фразу, как только вы дадите ее для установления основного соединения.
Вы можете использовать ssh-add для добавления закрытых ключей в ваш агент аутентификации ssh. Увидеть
man ssh-add
а также
man ssh-agent