Автоматизація резервного копіювання по SSH на робочому столі Linux


2

В даний час у мене є установка, яка дозволяє мені підключатися до всіх комп'ютерів у моїй домашній мережі за допомогою ключів SSH і RSA. Я дуже свідомий безпеки, тому всі мої ключі захищені паролем. Я хотів би встановити, де я виконую роботу Unison на cron, щоб створити резервну копію файлового сервера в моїй мережі, яку ми назвемо timmy. Я помітив, що в перший раз я намагаюся використовувати ключ на моєму ноутбуці Ubuntu teeks, Я отримую діалогове вікно, у якому з'являється запит на введення ключової фрази. Я чув, що для серверів, які потребують автоматичного створення резервних копій, необхідно використовувати ssh-agent попросити ключову фразу на початку входу / сервера. Як я можу налаштувати це на teeks?

По суті, мені хотілося б мати наступне:

  1. Коли я завантажуюсь і вступаю в ОС, підкажіть візуально для пароля, як це зроблено, коли я вперше використовую ключ.
  2. Якщо я SSH в цей комп'ютер (як це з інтернетом), і я ще не надав пароль SSH ще, а потім запропонувати його. (Іноді, можливо, потрібно буде віддалено перезавантажити машину через SSH, тому я перейду SSH'у після перезавантаження, і я хотів би мати можливість автентифікації ключа без мати VNC і робити це вручну.)

Чи є інструмент, який я можу використовувати для цього?

Відповіді:


1

Ви можете запустити ssh-agent, коли ви входите до оболонки, розмістивши наступне у вашому .profile:

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn't work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi

Так що ж це насправді означає в моєму випадку використання? Якщо я в SSH в машині після того, як він початково завантажився, чи буде це відображатися, якщо ключі ще не розблоковані? І навпаки, якщо я в SSH і вже розблокував ключі, мені не доведеться повторно вводити пароль? Чи правильно він буде робити все після нової завантаження?
Naftuli Kay

1
Це почне ssh-agent при вході. Якщо скрипт знаходить запущений агент ssh, то вам не потрібно повторно вводити парольну фразу. Інакше, він почне ssh-агент і запропонує вам парольну фразу. Сценарій запускається лише під час входу. Після свіжого завантаження не буде запущеного ssh-агента. Ssh-agent почнеться після входу.
Chris Ting

Що ж стосується графічного чи оболонка? Чи буде це одночасно підкаже в сесії SSH вперше і підкажуть графічно, з "перший виграє" тип аутентифікації? Дякуємо за вашу відповідь, мабуть, це те, що я шукаю.
Naftuli Kay

1
Потрібно отримати лише перший вхід. Не має значення, чи є цей логін графічним або з оболонки. Під час другого входу в систему є перевірка запущеного агента ssh, і якщо вона знайдена, ви не побачите іншу підказку.
Chris Ting

Насправді, це повністю зіпсувало все на моєму ноутбуці. Коли я входив у систему, я отримав би запит у графічному вигляді для пароля SSH, і тоді він, по суті, поверне мене на екран входу. Мені довелося завантажитися до кореневої оболонки і змінити свій профіль, щоб запобігти цьому. Що пішло не так?
Naftuli Kay

0

Щоб уникнути введення паролів ssh (і автоматизувати завдання), можна використовувати сертифікати ssh, основні налаштування - створити сертифікат для користувача, з якого ви хочете ввійти, а потім скопіювати цей сертифікат на машину / користувача потрібно підключитися. Необхідно переконатися, що ваш ssh сервер налаштований на прийом входу сертифіката. Ви повинні переконатися, що ваш сертифікат не буде скомпрометованим, коли ви копіюєте його з однієї машини на іншу.

Ви можете побачити зразки на http://www.panticz.de/ssh_certificate_authentication і більш глибока інформація на відкритому сайті http://www.openssh.com/

З повагою


Перечитайте запитання ... OP вказує, що він використовує аутентифікацію на основі сертифікатів RSA. Справа в тому, що його закриті ключі самі зашифровані, тому йому потрібен спосіб введення пароля для доступу до ключа. Він не використовує автентифікацію ssh на основі пароля.
Dave Sherohman

На жаль, я не рідний англійський оратор і я пропустив питання ;-). А потім ... Чому б не зберігати сертифікати, не вказані? Пам'ятаю, що у мене виникла проблема з сертифікатами apache, потрібно було вводити парольну фразу кожного разу, коли apache перезапускався, оскільки я довіряв своєму власному серверу, який я зберігав невписаним сертифікатом, який працював для мене.
franblay
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.