<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>باحث عن المعرفة &#187; اتصال</title>
	<atom:link href="http://www.mtafran.com/tag/communication/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mtafran.com</link>
	<description>{وقل ربي زدني علماً}</description>
	<lastBuildDate>Mon, 06 Jun 2011 04:41:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>عمل اتصال SSH بواسطة PHP</title>
		<link>http://www.mtafran.com/2008/04/connect-using-ssh-in-php/</link>
		<comments>http://www.mtafran.com/2008/04/connect-using-ssh-in-php/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 15:37:02 +0000</pubDate>
		<dc:creator>باحث</dc:creator>
				<category><![CDATA[برمجة]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[اتصال]]></category>

		<guid isPermaLink="false">http://www.mtafran.com/?p=13</guid>
		<description><![CDATA[احتجت في عملي الى عمل اتصال بواسطة PHP وتزويد الاتصال بكلمة المرور ونظراً لأن ذلك متعذر من خلال اقتران exec_shell في PHP فبدأت بالبحث عن طريقة تجعل ما أريد ممكناً. بحمد الله وفضله عثرت على موقع يشرح ما أريد بالضبط. &#8230; <a href="http://www.mtafran.com/2008/04/connect-using-ssh-in-php/">أكمل قراءة التدوينة <span class="meta-nav">&#8592;</span></a>]]></description>
			<content:encoded><![CDATA[<p>احتجت في عملي الى عمل اتصال بواسطة PHP وتزويد الاتصال بكلمة المرور ونظراً لأن ذلك متعذر من خلال اقتران exec_shell في PHP فبدأت بالبحث عن طريقة تجعل ما أريد ممكناً.</p>
<p>بحمد الله وفضله عثرت على موقع يشرح ما أريد بالضبط. وإليكم مختصر الطريقة.</p>
<p>هذه الطريقة جرّبت على نظام لينكس Ubuntu مع PHP 5</p>
<p>ما هو مطلوب من أجل عمل ما نريد؟</p>
<p>$sudo aptitude update<br />
$sudo aptitude install php5-dev php5-cli php-pear buid-essential \<br />
$openssl-dev zlib1g-dev</p>
<p>الاوامر اعلاه ستقوم بتنصيب الحزم التي نحتاج إليها إذا كانت هذه الحزم موجودة على نظامك فلا داعي للأمر الثاني.</p>
<p>ثم قم بتنزيل مكتبة libssh2 من موقع sourceforge</p>
<p><span id="more-13"></span></p>
<p>cd /usr/src<br />
wget http://surfnet.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.14.tar.gz<br />
tar -zxvf libssh2-0.14.tar.gz<br />
cd libssh2-0.14/<br />
./configure<br />
make all install</p>
<p>لاحظ أن الحزم التي نحتاج إليها هي 2-0.14 لقد قمت بتجربة آخر اصدارة وهي الان 0.18 ولكن لم تعمل.</p>
<p>اللآن نحتاج إلى ربط libssh2 مع PHP لعمل ذلك ننفذ الامر التالي</p>
<p>pecl install -f ssh2<br />
بعد ذلك نحتاج الى اضافة الامتداد الى ملفي php.ini في</p>
<p>/etc/php5/cli/php.ini, و /etc/php5/apache2/php.ini<br />
موقع هذه الملفات قد يختلف اذا كنت تستخدم نظام آخر غير Ubuntu</p>
<p>اضف هذا السطر الى الملفين اعلاه</p>
<p>extension=ssh2.so<br />
موقع السطر في الملفين السطر 515 او حوله</p>
<p>الان اصبحنا جاهزين لاستخدام هذه الخاصيّة</p>
<p>هناك طريقتان لاستخدام هذه الخاصية:<br />
1- خاصية التنفيذ وهي الخاصية المفضلة<br />
2- خاصية الشل</p>
<p>1- خاصية التنفيذ: تقوم بتنفيذ أمر وارجاع النتيجة الى السكريبت</p>
<p> </p>
<p>&lt;pre lang=&#8221;php&#8221; &#8220;&gt;<br />
if (!function_exists(&#8220;ssh2_connect&#8221;)) die(&#8220;function ssh2_connect doesn&#8217;t exist&#8221;);<br />
// log in at server1.example.com on port 22<br />
if(!($con = ssh2_connect(&#8220;server1.example.com&#8221;, 22))){<br />
echo &#8220;fail: unable to establish connection\n&#8221;;<br />
} else {<br />
// try to authenticate with username root, password secretpassword<br />
if(!ssh2_auth_password($con, &#8220;root&#8221;, &#8220;secretpassword&#8221;)) {<br />
echo &#8220;fail: unable to authenticate\n&#8221;;<br />
} else {<br />
// allright, we&#8217;re in!<br />
echo &#8220;okay: logged in&#8230;\n&#8221;;<br />
// execute a command<br />
if(!($stream = ssh2_exec($con, &#8220;ls -al&#8221; )) ){<br />
echo &#8220;fail: unable to execute command\n&#8221;;<br />
} else{<br />
// collect returning data from command<br />
stream_set_blocking( $stream, true );<br />
$data = &#8220;&#8221;;<br />
while( $buf = fread($stream,4096) ){<br />
$data .= $buf;<br />
}<br />
fclose($stream);<br />
}<br />
}<br />
}<br />
&lt;/pre&gt;</p>
<p>الأمر أعلاه ان يظهر النتيجة ولكن سيقوم بتخزينها في متغير data اذا ارد اظهار النتيجة فقط اضف السطر التالي قبل نهاية السكريبت</p>
<p>echo $data;<br />
2- خاصية الشل خاصية متقدمة حيث انها تقوم بفتح شل فعلي النظام الذي نعمل اتصال معه</p>
<p>if (!function_exists(&#8220;ssh2_connect&#8221;)) die(&#8220;function ssh2_connect doesn&#8217;t exist&#8221;);<br />
// log in at server1.example.com on port 22<br />
if(!($con = ssh2_connect(&#8220;server1.example.com&#8221;, 22))){<br />
echo &#8220;fail: unable to establish connection\n&#8221;;<br />
} else {<br />
// try to authenticate with username root, password secretpassword<br />
if(!ssh2_auth_password($con, &#8220;root&#8221;, &#8220;secretpassword&#8221;)) {<br />
echo &#8220;fail: unable to authenticate\n&#8221;;<br />
} else {<br />
// allright, we&#8217;re in!<br />
echo &#8220;okay: logged in&#8230;\n&#8221;;</p>
<p>// execute a command<br />
if(!($stream = ssh2_exec($con, &#8220;ls -al&#8221; )) ){<br />
echo &#8220;fail: unable to execute command\n&#8221;;<br />
} else{<br />
// collect returning data from command<br />
stream_set_blocking( $stream, true );<br />
$data = &#8220;&#8221;;<br />
while( $buf = fread($stream,4096) ){<br />
$data .= $buf;<br />
}<br />
fclose($stream);<br />
}<br />
}<br />
}</p>
<p>أسأل الله أن يكون في ذلك فائدة لكم. إن كانت لديكم اقترحات او طرق أفضل فلا تبخلوا بها</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://delicious.com/post?url=http://www.mtafran.com/2008/04/connect-using-ssh-in-php/&amp;title=%D8%B9%D9%85%D9%84+%D8%A7%D8%AA%D8%B5%D8%A7%D9%84+SSH+%D8%A8%D9%88%D8%A7%D8%B3%D8%B7%D8%A9+PHP" title="Post to Delicious"><img class="nothumb" src="http://www.mtafran.com/wp-content/plugins/tweet-this/icons/en/delicious/tt-delicious-micro4.png" alt="Post to Delicious" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.mtafran.com/2008/04/connect-using-ssh-in-php/&amp;title=%D8%B9%D9%85%D9%84+%D8%A7%D8%AA%D8%B5%D8%A7%D9%84+SSH+%D8%A8%D9%88%D8%A7%D8%B3%D8%B7%D8%A9+PHP" title="Post to Digg"><img class="nothumb" src="http://www.mtafran.com/wp-content/plugins/tweet-this/icons/en/digg/tt-digg-micro4.png" alt="Post to Digg" /></a> <a class="tt" href="http://reddit.com/submit?url=http://www.mtafran.com/2008/04/connect-using-ssh-in-php/&amp;title=%D8%B9%D9%85%D9%84+%D8%A7%D8%AA%D8%B5%D8%A7%D9%84+SSH+%D8%A8%D9%88%D8%A7%D8%B3%D8%B7%D8%A9+PHP" title="Post to Reddit"><img class="nothumb" src="http://www.mtafran.com/wp-content/plugins/tweet-this/icons/en/reddit/tt-reddit-micro4.png" alt="Post to Reddit" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.mtafran.com/2008/04/connect-using-ssh-in-php/&amp;title=%D8%B9%D9%85%D9%84+%D8%A7%D8%AA%D8%B5%D8%A7%D9%84+SSH+%D8%A8%D9%88%D8%A7%D8%B3%D8%B7%D8%A9+PHP" title="Post to StumbleUpon"><img class="nothumb" src="http://www.mtafran.com/wp-content/plugins/tweet-this/icons/en/su/tt-su-micro4.png" alt="Post to StumbleUpon" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.mtafran.com/2008/04/connect-using-ssh-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

