Проблема решена! Преступник... hwclock.
Как я сказал выше, мехи конфигурация. для моего hwclock:
clock="UTC"
clock_systohc="NO"
clock_hctosys="NO"
clock_args=""
но у меня есть эта (глупая) строка в /etc/local.d/baselayout1.start
:
hwclock --hctosys
С этой конфигурацией вот время даты после начальной загрузки:
gentoo ~ # hwclock
Wed 21 Mar 2012 10:29:57 AM ICT -0.134053 seconds
gentoo ~ # hwclock --utc
Wed 21 Mar 2012 05:30:01 PM ICT -0.928500 seconds
gentoo ~ # date
Wed Mar 21 10:30:03 ICT 2012
gentoo ~ # date --utc
Wed Mar 21 03:30:06 UTC 2012
hwclock
и date
вывод является правильным, hwclock --utc
на 7 часов позже, чем, и date --utc
на 7 часов ранее, чем.
Удалите эту строку hwclock --hctosys
в /etc/local.d/baselayout1.start
и изменение clock_systohc
и clock_hctosys
кому: "YES"
в /etc/conf.d/hwclock
решите проблему:
gentoo ~ # hwclock
Wed 21 Mar 2012 03:33:43 AM ICT -0.404693 seconds
gentoo ~ # hwclock --utc
Wed 21 Mar 2012 10:33:46 AM ICT -0.418345 seconds
gentoo ~ # date
Wed Mar 21 10:33:48 ICT 2012
gentoo ~ # date --utc
Wed Mar 21 03:33:54 UTC 2012
"Я думал, что несколько сессий должны совместно использовать тот же сокет с соединением с тем же хостом".
Они могут. Однако обратите внимание на это, если Вы соединяетесь с хостом с помощью существующего соединения через ControlPath
, независимо от которого пользователя Вы намереваетесь войти в систему как, Вы будете зарегистрированы как исходный пользователь соединения. Например, без установленного соединения к "где-нибудь":
ssh -o ControlPath=~/.ssh/%h -o ControlMaster=yes bob@somewhere
Этой сессией является bob@somewhere.
ssh -o ControlPath=~/.ssh/%h -o ControlMaster=no sue@somewhere
Этой сессией также будет bob@somewhere, потому что Вы использовали тот же ControlPath и установили ControlMaster=no
; если ControlMaster=yes
, Вы были бы зарегистрированы, как предъявляют иск, но ssh проигнорирует Ваш аргумент ControlPath, как подразумевается в man ssh_config
:
Дополнительные сессии могут соединиться с этим сокетом с помощью того же ControlPath с набором ControlMaster к 'нет'.
Как доказательство этого, если ControlMaster=yes
в обоих случаях, когда боб выходит из сокета ControlPath ~/.ssh/somewhere
исчезнет даже при том, что "предъявить иск" сессия все еще работает, означая, что предъявить иск сессия никогда не использовала тот сокет.
Так, если Вы хотите использовать то же соединение, просто %h
прекрасен, но остерегайтесь этого, Вы не можете совместно использовать соединение, поскольку несколько различных удаленных пользователей - ssh не позволят Вам.
У Вас могли быть многочисленные пользователи и несколько портов, используемых даже для того же сервера. Самостоятельно, я соединяюсь с сотнями систем на интранет компании, большинство имеет многочисленных пользователей с различными функциями или серверами приложений. Доступ к Усера очень отличается от доступа к userB, и основное соединение должно было бы отличаться. Более кратко, если необходимо было работать:
$ ssh -n -o ControlMaster=auto -o ControlPath=~/.cache/ssh/mux/%h -l userA localhost sleep 10 & # create the master connection and background it
$ ssh -o ControlMaster=auto -o ControlPath=~/.cache/ssh/mux/%h -l userB localhost whoami
userA
Как Вы видите, мы не получаем сессию OpenSSH с userB, но оригинал с Усера. Это означает, что корневой каталог, полномочия и даже сама аутентификация не то, что ожидается. Используя это, если необходимо было попытаться удалить файл в каталоге userB, затем a) это мог быть неправильный файл и b) это могли быть неправильные полномочия.
Если Вы никогда не будете соединяться с больше, чем отдельный пользователь ни на каком сервере с помощью единственного порта, то да, с помощью %h
мог быть достаточно. В Вашем ~/.ssh/config
файл, Вы хотели бы использовать:
ControlMaster=auto # use existing or create a master connection
ControlPath=~/.cache/ssh/mux/%h
ControlPersist=yes
С ControlPersist
опция, основное соединение остается открытым в фоновом режиме, пока не уничтожено или завершено с ssh -O exit
. Это - хорошая set-it-and-forget-it функция.
Но если бы существует возможность соединения больше чем с одним пользователем на каком-либо хосте, то Вы хотели бы что-то более безопасное:
ControlMaster=auto
ControlPath=~/.cache/ssh/mux/%r@%h:%p
ControlPersist=yes