<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Выполнение команды по SSH, запускаемой через PHP</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/96867.html</link>
    <description>Столкнулся с задачей:&lt;br&gt;Есть вебсервер, на котором апач работает от пользователя WWW. На страницу нужно добавить кнопку, которая будет перезапускать демон на удаленном убунту-сервере.&lt;br&gt;С вебсервера перезагружать нужный демон можно вот так:&lt;br&gt;ssh root&#064;192.168.1.2 &quot;/etc/init.d/pentagon restart&quot;&lt;br&gt;Но через shell_exec так сделать нельзя, так как апач запущен не от рута, а от виртуального, несуществующего пользователя, по этому SSH по ключах у него не работает. Сгенерировать ему ключи тоже невозможно. &lt;br&gt;Как быть? Дайте совет.&lt;br&gt;</description>

<item>
    <title>Выполнение команды по SSH, запускаемой через PHP (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/96867.html#6</link>
    <pubDate>Fri, 14 Apr 2017 01:09:19 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; &#091;li&#093; Идиотская затея - давать рутовый вход куда бы то ни было &lt;br&gt;&amp;gt; юзеру www. Тем более, через PHP &lt;br&gt;&amp;gt; &#091;li&#093; Ты путаешь &quot;запрещён login&quot; и &quot;существует&quot;. Если есть UID (есть запись &lt;br&gt;&amp;gt; в /etc/passwd), значит существует. А значит, ему можно отдать файл с &lt;br&gt;&amp;gt; ключом &lt;br&gt;&amp;gt; На целевой машине впиши &quot;/etc/init.d/pentagon restart&quot; в inetd.conf/xinetd/socket unit, &lt;br&gt;&amp;gt; повесь на какой-нибудь порт 12345. Открываешь туда соединение - перезапускается твой &lt;br&gt;&amp;gt; pentagon.&lt;br&gt;&amp;gt; Хотя по-уму следовало бы разобраться в его глюках, чтобы перезапускать не приходилось &lt;br&gt;&amp;gt; или чтобы он сам себя перезапускал.&lt;br&gt;&lt;br&gt;как всегда - не в бровь, а в глаз &amp;#9786;&lt;br&gt;</description>
</item>

<item>
    <title>Выполнение команды по SSH, запускаемой через PHP (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/96867.html#5</link>
    <pubDate>Thu, 13 Apr 2017 16:46:53 GMT</pubDate>
    <description>&amp;gt; Как сгенерировать ключи пользователю, которого не существует, и у которого нет никаких &lt;br&gt;&amp;gt; прав?&lt;br&gt;&lt;br&gt;&#091;li&#093; Идиотская затея - давать рутовый вход куда бы то ни было юзеру www. Тем более, через PHP&lt;br&gt;&#091;li&#093; Ты путаешь &quot;запрещён login&quot; и &quot;существует&quot;. Если есть UID (есть запись в /etc/passwd), значит существует. А значит, ему можно отдать файл с ключом&lt;br&gt;&lt;br&gt;На целевой машине впиши &quot;/etc/init.d/pentagon restart&quot; в inetd.conf/xinetd/socket unit, повесь на какой-нибудь порт 12345. Открываешь туда соединение - перезапускается твой pentagon.&lt;br&gt;&lt;br&gt;Хотя по-уму следовало бы разобраться в его глюках, чтобы перезапускать не приходилось или чтобы он сам себя перезапускал.&lt;br&gt;</description>
</item>

<item>
    <title>Выполнение команды по SSH, запускаемой через PHP (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/96867.html#4</link>
    <pubDate>Thu, 13 Apr 2017 14:50:46 GMT</pubDate>
    <description>&amp;gt; Столкнулся с задачей: &lt;br&gt;&amp;gt; Есть вебсервер, на котором апач работает от пользователя WWW. На страницу нужно &lt;br&gt;&amp;gt; добавить кнопку, которая будет перезапускать демон на удаленном убунту-сервере.&lt;br&gt;&amp;gt; С вебсервера перезагружать нужный демон можно вот так: &lt;br&gt;&amp;gt; ssh root&#064;192.168.1.2 &quot;/etc/init.d/pentagon restart&quot; &lt;br&gt;&amp;gt; Но через shell_exec так сделать нельзя, так как апач запущен не от &lt;br&gt;&amp;gt; рута, а от виртуального, несуществующего пользователя, по этому SSH по ключах &lt;br&gt;&amp;gt; у него не работает. Сгенерировать ему ключи тоже невозможно.&lt;br&gt;&amp;gt; Как быть? Дайте совет.&lt;br&gt;&lt;br&gt;sudo?&lt;br&gt;например так:&lt;br&gt;&#091;code&#093;&amp;lt;?php&lt;br&gt;&lt;br&gt;print (&quot;&amp;lt;form method=post&amp;gt;&amp;lt;input type=submit name=reboot value=OK&amp;gt;&amp;lt;/form&amp;gt;&quot;);&lt;br&gt;if ( isset($_POST&#091;&apos;reboot&apos;&#093;) ) &#123; exec (&quot;/usr/local/bin/sudo /path/to/reload.sh&quot;); &#125;&lt;br&gt;&lt;br&gt;?&amp;gt;&#091;/code&#093;&lt;br&gt;ну и в файл sudoers добавить&lt;br&gt;www ALL=NOPASSWD: /path/to/reload.sh&lt;br&gt;&lt;br&gt;а уж в reload.sh и запускать то что нужно&lt;br&gt;ssh root&#064;192.168.1.2 &quot;/etc/init.d/pentagon restart&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Выполнение команды по SSH, запускаемой через PHP (ALex_hha)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/96867.html#3</link>
    <pubDate>Thu, 13 Apr 2017 11:09:43 GMT</pubDate>
    <description>&amp;gt; делать постоянную проверку наличия файла при том, что кнопка на сайте может быть нажата раз в пару дней как по мне не очень хорошее решение.&lt;br&gt;&lt;br&gt;для этого придумали cron&lt;br&gt;&lt;br&gt;&amp;gt; Как сгенерировать ключи пользователю, которого не существует, и у которого нет никаких прав?&lt;br&gt;&lt;br&gt;вы вообще знаете как работает аутентификация по ключам?&lt;br&gt;</description>
</item>

<item>
    <title>Выполнение команды по SSH, запускаемой через PHP (Opus)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/96867.html#2</link>
    <pubDate>Thu, 13 Apr 2017 09:57:30 GMT</pubDate>
    <description>&amp;gt; рут ему и не нужен.&lt;br&gt;&lt;br&gt;Плохо выразился. На руте сгенерирован SSH-ключ, который заброшен на второй сервер. То есть фактически в текущий момент до второго сервера без пароля можно достучаться только от рута.&lt;br&gt;&lt;br&gt;&amp;gt; 1) man ssh &lt;br&gt;&amp;gt; 2) Скриптом создаете файлик, по крону проверяете наличие файлика, удаляете его, делаете &lt;br&gt;&amp;gt; перезапуск.&lt;br&gt;&lt;br&gt;Первый пункт сейчас проштудирую. Второй неоптимальный - делать постоянную проверку наличия файла при том, что кнопка на сайте может быть нажата раз в пару дней как по мне не очень хорошее решение.&lt;br&gt;&lt;br&gt;&amp;gt; Утверждение не соответствует действительности. Сгенерировать можно что угодно где угодно.&lt;br&gt;&lt;br&gt;Как сгенерировать ключи пользователю, которого не существует, и у которого нет никаких прав?&lt;br&gt;</description>
</item>

<item>
    <title>Выполнение команды по SSH, запускаемой через PHP (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/96867.html#1</link>
    <pubDate>Thu, 13 Apr 2017 09:19:04 GMT</pubDate>
    <description>&amp;gt; С вебсервера перезагружать нужный демон можно вот так: &lt;br&gt;&amp;gt; ssh root&#064;192.168.1.2 &quot;/etc/init.d/pentagon restart&quot; &lt;br&gt;&amp;gt; Но через shell_exec так сделать нельзя, так как апач запущен не от &lt;br&gt;&amp;gt; рута, а от виртуального, несуществующего пользователя&lt;br&gt;&lt;br&gt;рут ему и не нужен.&lt;br&gt;&lt;br&gt;&amp;gt; по этому SSH по ключах у него не работает. &lt;br&gt;&amp;gt; Как быть? Дайте совет.&lt;br&gt;&lt;br&gt;1) man ssh&lt;br&gt;2) Скриптом создаете файлик, по крону проверяете наличие файлика, удаляете его, делаете перезапуск.&lt;br&gt;&lt;br&gt;&amp;gt;Сгенерировать ему ключи тоже невозможно.&lt;br&gt;&lt;br&gt;Утверждение не соответствует действительности. &lt;br&gt;Сгенерировать можно что угодно где угодно.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
