Я не совсем уверен, в каком контексте Вы хотите сделать буфер тем же, но в программе C, автор может использовать setbuf()
семейство библиотечных функций для предоставления stderr
и stdout
тот же буфер.
Просто usig оболочка для вызова других программ я не думаю, что можно сделать это по причинам, подразумеваемым setbuf
семейство функций: реализации FILE *stderr
и FILE *stdout
имейте на часть экземпляра памяти (буфер). Если программа не становится записанной в особенном методе, путь, который устанавливает буфер, чтобы быть той же частью памяти для stdout
и stderr
, затем оболочка не может заставить программу сделать ту общую буферизацию.
Вы можете указать точную команду ssh с помощью опции '-e':
rsync -Pav -e "ssh -i $HOME/.ssh/somekey" username@hostname:/from/dir/ /to/dir/
Многие пользователи ssh не знакомы с их ~/.ssh/config файлом. Вы можете задать настройки по умолчанию для каждого хоста через конфигурационный файл.
Host hostname
User username
IdentityFile ~/.ssh/somekey
В долгосрочной перспективе лучше всего изучить файл ~/.ssh/config.
.Это можно сделать с помощью пользовательской конфигурации SSH, см. раздел "Конфигурация пользователя SSH": http://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/ в основном отредактируйте ~/.ssh/config:
$ nano ~/.ssh/config
#Add Hosts below
Host server1
HostName examplehost.com
User username
Port 22
IdentityFile /path/to/key
$ rsync -e ssh /home/user/directory user@remote.host.net:home/user/directory/
Это должно работать для любой программы, использующей SSH, rsync,
.FYI:
1) Общественный ключ всегда находится в домашнем каталоге пользовательского входа в удаленный сервер IE, если вы входите в систему как «Backup», он расположен в / Home / Backup /.ssh/authorized_keys. Идентификатор пользователя При входе в систему определяет открытый ключ, используемый в пункте назначения.
Вы можете выбрать идентификатор пользователя при совершении соединения двумя разными способами:
ssh user_id@destination.server
or
ssh -l user_id destination_server (<-- that is lower case "L")
С другой стороны, на вашем конце закрытый ключ аналогичен подобным образом в Homedior пользователя, если вы не переопределите его, как описаны в ответе Дэна.
2) Для создания резервной копии можно желательно создать ограниченный ключ, который ограничен запуском только одной командой, такой как «rsync». Существует хорошее описание о том, что связано с резервным копированием «RSnapshot», который позволяет удаленному резервному копированию целого сервера, используя не привилегированную учетную запись пользователя и «sudo»:
rsnapshot может легко сделать резервную копию пучок пульта или Локальные серверы, что делает его удобным запланированным и централизованным сервером резервного копирования.
Для меня было достаточно запустить ssh-agent следующим образом:
eval `ssh-agent -s`
ssh-add /path/to/mykey
См. Также более подробный ответ здесь https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to- your-authentication-agent