Войти

Показать полную графическую версию : Bash (Удалённый вход по ssh и выполнение комманд)


bombording
29-10-2009, 14:59
Добрый день.

Возникли проблемы в написании скрипта на bash.

Существует задача. Имеется удалённый сервер в интернете. Необходимо что бы компьютер локальнйо сети заходил на этот сервер удалённо по ssh выполнял несколько комманд, отключался. Затем выполнял несколько комманд локально... и слал уведомление о выполнении. Нужно всё это уместить в одном скрипте.

Проблема возникла с заходом на удалённый сервер. Никак не могу сделать так что бы скрипт заходил на сервер и автоматически вводил пароль от пользователя...

Помогите пожалуйста.

mar
29-10-2009, 17:21
никак мы пишем вирус? :)
по ssh команды не выполняются удаленно, они выполняются локально на удаленном сервере, соответственно, скрипт с набором команд должен лежать там. А если он все равно там лежит, то что мешает его просто запускать там по крону?

bombording
30-10-2009, 09:45
Ситуация такая.
У компании есть собственный web сервер в интернете. Хотелось бы делать backup некоторых данных на локальный сервер, который находится в офисе.

Открывать что то из вне в локалку где находится сервер, не хотелось бы.
Есть идея что бы backup сервер сам заходил на web сервер, делал архив того, чего нужно и закачивал бы его к себе.

WhitePangolin
30-10-2009, 11:16
На веб сервере по крону делаем архивчик, а на бекап сервере посредством scp стягиваем этот файлик. Обеспечиваем приемлимый уровень безопасности и весь "скрипт" укладывается в 2 строчки: одна в кроне www сервака; вторая в кроне backup сервака.

ruslandh
31-10-2009, 16:07
По ssh лучше ходить не по паролю, а по ключу - это гораздо безопаснее и отпадает необходимость ввода пароля.

mar
02-11-2009, 10:23
bombording,
ну, собственно, лучше и безопасней всего сделать именно так, как написал WhitePangolin:
- backup на сервере по крону
- запуск стягивания удаленного backup-а из локалки по локальному крону (или планировщику, если это win-машина)

Не забудьте только запланировать еще и удаление отработанных бэкапов, чтобы не накапливались

bombording
02-11-2009, 16:19
Спасибо. Скорей всего так и сделаю.

Осталось разобраться как scp автоматически вводил пароль от ssh пользователя, на локальной машине.
Делать сертификат без пароля и регистрировать его на рабочем сервере, как то не хочется...

WhitePangolin
02-11-2009, 16:53
Можно авторизоваться по ключу (http://gryphonnet.ru/lamp-administration/scp/), либо еще есть вариант с PHP расширением SSH (http://wiki.linuxformat.ru/index.php/LXF81:PHP)

bombording
02-11-2009, 23:14
По поводу ключа... в статье предлагается на локальной машине сгенерировать пустой ключ.

ssh-keygen -t rsa

Загрузить его на удалённый сервер.
scp /home/user1/.ssh/id_rsa.pub \
user1@remote_server:~/

И зарегистрировать там аднный ключ.

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

Скажите. С точки зрения безопасности, данный вариант будет приемлимым? Если к примеру сравнивать заход по обычному паролю и этот вариант.
Не сможет ли любой желающий из интернета, публично выполнять всё что хочет на сервере?

Просто на сервере хранится личная, важная информация.

WhitePangolin
03-11-2009, 08:27
Технически 100% безопасности обеспечить просто не реально, но как сказал ruslandh:По ssh лучше ходить не по паролю, а по ключу - это гораздо безопаснее и отпадает необходимость ввода пароля. »
и лично я с ним полностью солидарен.

bombording
05-11-2009, 16:33
Большое спасибо.




© OSzone.net 2001-2012