Дополнительно
Вы можете установить пароли .по SSH/config, чтобы разрешить автоматический вход в систему?
Я'м использую Ubuntu 11.10. Я'м, используя СШ
для подключения ко многим серверам ежедневно, так что я положил их параметров `.файл SSH/config файл вот так:
Host Home
User netmoon
Port 22
HostName test.com
Есть ли способ поставить пароли для каждого подключения в этом файле, так что, когда сервер попросит пароль, терминал вводит пароль и отправляет его на сервер?
Мне это нужно, потому что иногда я стою далеко от компьютера, и когда я вернусь, введите пароль и нажмите <и>введите</роз> терминал пишет соединение разорвано
.
P. S. Я Дон'т хотите использовать открытый/закрытый ключ пары.
93
13
Работы безопасности для удобства никогда не заканчивается хорошо...
Вы могли бы использовать
SSH-копия-ID
из `пакета OpenSSH-клиента пакет?От человека SSH-копия-ID`:
Если вы Don't действительно хотите использовать открытый/закрытый ключ пары, вы можете написать "ожидать" скрипт для ввода пароля, Вы автоматически в зависимости от адреса назначения.
Редактировать: я имею в виду, что вы можете иметь скрипт, что, с одной стороны, использует "ожидать", чтобы ввести пароль для вас и, с другой стороны, считывает пароль для данного пользователя и данного хоста из файла конфигурации. Например, следующий скрипт Python будет работать на солнечный день сценарий:
и формат файл конфигурации будет выглядеть следующим образом:
Примечание: как указывалось выше, в Python скрипт должен быть гораздо более сложным для обработки всех возможных ошибок, и вопрос сообщения от SSH и все возможные URL-адреса (в примере это'ы предполагали, что это будет что-то вроде
пользователь@хост
, но пользователей это'т используется в большинстве случаев), но основная идея все равно останется. О файле конфигурации, можно использовать другой конфигурационный файл или использовать.по SSH/config и написать свой собственный код, чтобы разобрать этот файл и получить пароль для данного пользователя и Хоста.Как насчет ProxyCommand:
Вы можете использовать
СШ-Ш
вместоНЗ
, а также:Есть также программы sshpass на это. Как использовать:
sshpass -п MyPa55word СШ me@myservor.com
Нет. Это не возможно, я'м боится.
Единственной реальной альтернативой является использование закрытых ключей, но вы'вэ-сказал Вы Don'т хотите (почему нет?).
Вы можете создать простой СШ замены скрипта в /usr/местные/Бен:
в <предварительно><код>#!/бин/Баш
хост=$1 пароль=
awk и " по - /#пароль/ && inhost { с" принт \\\$2 } /хост/ { inhost=0 } /хост $рать/ { inhost=1 }; ~/.по SSH/config файл
если [[ -З " и$пароль на" ]]; затем /usr/Бен/СШ $ еще sshpass -P $по пароль /usr/Бен/СШ $ интернет </код></пре>
И тогда в ваш ~/.файл SSH/config можно использовать в <предварительно><код>хозяин foohost Baruser пользователей
Foobarpassword пароль
</код></пре>
Я использую приложение от программного обеспечения Вандик называется и securecrt.
http://www.vandyke.com/products/securecrt/
Это не бесплатно, но по очень разумной цене. Я использовал его в течение многих лет (работает на Windows, или с помощью вина) для удаленного доступа, эмуляции терминала и (рассредоточенная) управления сетью. Они наконец-то выпустила родную версия для Linux это в начале 2011 года.
Он имеет поддержку комплексного настройки входа (или скрипты), сохраненные пароли (или сертификаты), вкладками несколько сеансов, и т. д.
При запуске вы можете выбрать, какие удаленные цели (и протокол) из структурированного списка (дерева) хранимых удаленного (или локального) машины, или просто создать соединение (которое сохраняется).
Я нашел это особенно полезно для удаленных сайтов с расширенной проверки подлинности, нестандартные порты, или брандмауэр-доступ к переговорам.
Если вы делаете удаленный доступ большое (частью вашего главной роли), то это приложение будет оправдывать свой счет в первый месяц использования.
Отвечая на вопрос, который вы задали, нет, это's не возможно, чтобы настроить пароль по умолчанию в файл SSH конфиг.
Но если действительно, как вы говорите, Это'ы и"потому что иногда я стою далеко от компьютера, и когда я вернусь, введите пароль и нажмите <и>введите</роз> терминал пишет
соединение разорвано
то", то почему бы не допустить закрытия сессии, а? SSH может не разрывать соединение для вас.Ответ @BrunoPereira этот вопрос показан альтернативный метод подключения без явного ввода пароля и избегая ключи SSH.
Можно создать скрипт, псевдоним или функция в `~/.bashrc и быстро выполнить эту команду.
Очевидно, есть соображения безопасности, вы должны учитывать этот подход.
Спасибо, Арек для вдохновения...
А не работает другой процесс оболочки, это просто функция выполняется в текущей оболочке bash. Он работает в одном
в awk
команда для разбора конфигурационного файла и выяснить, если он должен взять пароль из оболочки переменной или пароль написано открытым текстом в СШ конфигурационный файл (спрограммисты
вивал
вместоописать
из-за проблем, я попал через "описать").Я пытался так много способов использования sshpass прямо в
СШ
config с помощью ProxyCommand, но ничто, казалось, не работать, как ожидалось, за исключением, когда я могу войти в ящик через РСА, а затем мне нужно отправить пароль на открытие моей зашифрованный каталог. Однако, моя функция ниже, кажется, работает для меня во всех случаях, даже под Cygwin.``Баш
В вашем .файл
функция СШ(){ узел=$1; сбросить пароль сбросить PASSVAR функция eval $(awk и я;/ #[ПП]assvar / && inhost { е \"и PASSVAR=%з\то",\$2; покинуть 1 } / #[пп]пароль / && inhost { е \"и пароль=%з\то",\$2; } /^#?[Чч][ОО][СС][ТТ] / && inhost { inhost=0; покинуть 1 } /^[чч][ОО][СС][ТТ] $\ узел$/ { inhost=1 }" и ~/.по SSH/config файл) если [[ -З " и$пароль и" ]] &ампер;&ампер; [[ -з " и$PASSVAR на" ]]; затем /usr/Бен/СШ-Щ $ 2 и GT;/dev/нуль еще если [[ -н " и$PASSVAR на" ]]; затем ПАРОЛЬ=$(ТМП=${!PASSVAR-};Эхо ${ТМП##-}) интернет /usr/местные/Бен/sshpass -П" по$пароль" и /usr/Бен/СШ-г $ 2 и GT;/dev/нуль интернет }
настройки и пароли (возможно .вместо bashrc следующее...)
MYPASS_ENVVAR=SomePassword MYPASSWD_FROM_FILE=$(</домой/меня/.passwd_in_file) ``
Затем в `~/.раздел по SSH/config файл выглядит так:
Если
#Passvar
существует в разделе config это переопределяет#пароль
.$MYPASS_ENVVAR
- это переменная окружения, держа свой пароль.Наслаждайтесь!
Здесь's мой сложный вариация на @ArekBurdach'ы ответ. Он предлагает следующие расширения:
; т. е. он также поддерживает
СШ <аргументы> <хозяина> <команды>` синтаксисСШ
файле sshd_config
УПП
тожеСШ-фантик
УПП-фантик
Установка ###
Определить псевдонимы в файле
~/.bashrc следующее
:Конфигурации ###
С IgnoreUnknown
директивы
СШ` не жалуется на недавно введенный "пароль" директивы, поэтому (в отличие от @ArekBurdach'ы ответа), мы можем сделать это выглядеть как-то "Реал" и конфигурацию. Если вы Don'т, как это, Это'ы тривиально, чтобы изменить сценарий в закомментированных один.Если вы Don'т иметь прямой доступ к ключевым пары, вы могли бы зашифровать пароль на локальном компьютере.
Лучший способ сделать это [шифрование пароля с помощью ключа][1] в дополнение к @Эрик Вудрафф 'с ProxyCommand.
Способ объединить использование трубы:
где
[1]: https://superuser.com/questions/576506/how-to-use-ssh-rsa-public-key-to-encrypt-a-text на "зашифровать ваш пароль и"
Есть небольшой вариант, как описано в блоге о том, как использовать
sshpass
который можно найти здесь. Учитывая, что у вас зашифрованы Гоб пароль (как от этого описан в блоге) файл, который вы могли бы сделать нечто подобное:раковину sshpass -P $по(эхо $(ГПГ -д -д .sshpasswd.Гоб)) СШ your_desination.АБВ `` и просто сохранить эту команду в качестве псевдонима в ваш
.bashrc следующее` .Если вы хотите тоннеля через эту связь вы могли бы сделать что-то подобное `раковину Хозяин actual_dest Имя реальное.дест.АБВ Имя пользователя Sshpass -п ProxyCommand $(Эхо $(ГПГ -д -д ~/.sshpasswd.Гоб)) \ СШ your_destination.АБВ НК %ч %годовых ``