Да, невозможно восстановить закрытый ключ с открытого ключа. Если бы это было возможно, то RSA был бы существенно поврежден, и это было бы главными новостями (повреждающий RSA, не только повредил бы большую интернет-коммуникационную безопасность, но также и позволил бы все виды банковского мошенничества, среди других).
Вход в систему с открытым ключом вместо пароля на самом деле имеет тенденцию увеличивать безопасность. Если Ваш пароль не достаточно силен, он может быть вынужден скотами взломщиком с достаточной пропускной способностью. Если у взломщика нет копии Вашего файла секретных ключей, ключ RSA эффективно не может быть вынужден скотами (1024-разрядный ключ эквивалентен чему-то как пароль с 160 символами, сделанный из случайных чувствительных к регистру букв и цифр). Кто-то, кто следит за Вашим плечом, смог видеть Ваш пароль и Ваш ключевой пароль, но с ключом они должны будут также получить ключ.
Закрытые ключи не всегда более безопасны, чем пароли. Если взломщик получает копию Ваших файлов секретных ключей (например, путем кражи ноутбука или резервных носителей), она может попробовать к "в лоб" пароль, и она может сделать это в высокой скорости, так как у Вас нет способа ограничить уровень (в отличие от предположений пароля, которые должны быть высказаны онлайн). Если Ваш пароль будет достаточно хорош, и Вы сразу замечаете воровство, то у Вас все еще будет время для отмены ключа.
Открытый ключ представляет элемент воздействия конфиденциальности: если кто-то знает, что Вы использовали тот же открытый ключ, чтобы войти в A и войти в B, они знают, что тот же человек вошел в A и B. Просто обладание открытым ключом делает Вас подозреваемым, что у Вас также есть закрытый ключ, таким образом, Вы теряете некоторую анонимность. Но это обычно незначительно, особенно если Вы просто храните ключ ~/.ssh
где только системные администраторы (кто также знает, от какого IP-адреса Вы вошли в систему) видят его.
Эти соображения безопасности в стороне, закрытый ключ имеет много практических преимуществ. Вы не должны вводить свой пароль так часто и в особенности можете запустить автоматизированные скрипты, которые не предлагают Вам, после того как Вы ввели свой ключ в ssh-агенте и т.п. Вы не должны вводить свой пароль так часто, таким образом, можно позволить себе сделать его более высокой энтропией (дольше, тяжелее ввести). Вы не должны вводить свой пароль так часто, таким образом, существует меньше риска, что он будет отслежен наблюдателем - человеком или камерой.
Создайте тестовые файлы
echo -e "\t foo-somethingfoo" >something.foo
echo " bar-bar-somethingbar" >something.bar_bar
echo "baz-baz-baz-somethingbaz" >something.baz_baz_baz
echo " spaces something s" >something.spaces
произведите полный великолепный цвет :)
grep --colour=always "something" something.* |
sed -re 's/^([^:]+):(\x1b\[m\x1b\[K)[[:space:]]*(.*)/\1\x01\2\3/' |
column -s $'\x01' -t
вывод (выполняет его для получения цвета).
something.bar_bar bar-bar-somethingbar
something.baz_baz_baz baz-baz-baz-somethingbaz
something.foo foo-somethingfoo
something.spaces spaces something s
Протестированный в gnome-terminal
, konsole
, terminator
, xterm
Можно просто устранить их использование sed
grep blah filename.foo | sed -e 's/^[ \t]*//'
Это удалит ведущие пробелы из вывода
Принятие Вы ищете шаблон re
(основное регулярное выражение) в одном файле, и требуется разделить ведущий пробел от всех согласующих отрезков длинной линии:
sed -n -e 's/^[[:blank:]]*//' -e '/re/p' thefile.c
(на самом деле это разделяет все ведущие пробелы сначала и затем ищет шаблон, но результатом является то же),
Выполнять последующую обработку grep
вывод вместо этого (как в Вашем отредактированном вопросе):
grep re * | sed 's/:[[:blank:]]*/: /'
Шаблон [[:blank:]]*
нуль соответствий или больше пробелов или вкладок.
\t
символы – Andrew 10.09.2011, 02:42\t
?... Это не использует\t
для разделителя это использует $ '\x01' (преобразуйте в шестнадцатеричную систему 01)... или Вы имеете в виду что-то еще? – Peter.O 10.09.2011, 02:57\t
а также ведущие пробелы\s
– Andrew 10.09.2011, 03:07[[:space:]]
... Если Вы хотите только полагать, что ВКЛАДКА и ПРОСТРАНСТВО и не весь пробел, используют это вместо этого:[ \t]
– Peter.O 15.06.2012, 04:04