<?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>MilamberSpace &#187; Système</title>
	<atom:link href="http://blog.milamberspace.net/index.php/tag/systeme/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.milamberspace.net</link>
	<description>JMeter (surtout) mais aussi l&#039;Informatique, Internet, etc.</description>
	<lastBuildDate>Sun, 29 Aug 2010 21:29:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[Linux] Exécuter une commande avec un utilisateur normal en tant que root à distance sans mot de passe et en SSH</title>
		<link>http://blog.milamberspace.net/index.php/2010/02/10/linux-executer-une-commande-avec-un-utilisateur-normal-en-tant-que-root-a-distance-sans-mot-de-passe-et-en-ssh-569.html</link>
		<comments>http://blog.milamberspace.net/index.php/2010/02/10/linux-executer-une-commande-avec-un-utilisateur-normal-en-tant-que-root-a-distance-sans-mot-de-passe-et-en-ssh-569.html#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:45:14 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Supervision]]></category>
		<category><![CDATA[Systèmes]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Système]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=569</guid>
		<description><![CDATA[Comment exécuter une commande root avec un utilisateur normal, à distance et sans saisir de mot de passe, le tout en SSH entre deux machines Linux ?
Voici une réponse :
Pour répondre à la problématique du « à distance sans saisir de mot de passe avec SSH », nous allons utiliser la notion de clé SSH.
Sur le poste [...]]]></description>
			<content:encoded><![CDATA[<p><em>Comment exécuter une commande root avec un utilisateur normal, à distance et sans saisir de mot de passe, le tout en SSH entre deux machines Linux ?</em></p>
<p><span style="text-decoration: underline;">Voici une réponse :</span></p>
<p><strong>Pour répondre à la problématique du<em> « à distance sans saisir de mot de passe avec SSH »</em></strong>, nous allons utiliser la notion de clé SSH.</p>
<p>Sur le poste de travail Linux (le poste qui va lancer la commande à distance), nous allons générer la clé SSH avec la commande suivante :</p>
<pre>ssh-keygen -t dsa -f $HOME/.ssh/MON_LOGIN</pre>
<p>Puis nous allons transférer la partie publique de la clé, en utilisant l&#8217;utilitaire ssh-copy-id :</p>
<pre>ssh-copy-id MON_LOGIN@192.168.1.1</pre>
<ul>
<li>le MON_LOGIN peut être remplacé par un autre login.<span id="more-569"></span></li>
</ul>
<p>Si jamais vous n&#8217;avez pas l&#8217;utilitaire ssh-copy-id, le transfert de la partie publique peut se faire &#8216;manuellement&#8217; avec la commande suivante :</p>
<pre>scp $HOME/.ssh/MON_LOGIN.pub MON_LOGIN@192.168.1.1:/home/MON_LOGIN/.ssh/MON_LOGIN.pub</pre>
<p>Puis en ssh sur la machine 192.168.1.1 :</p>
<pre>cat /home/MON_LOGIN/.ssh/MON_LOGIN.pub &gt;&gt; /home/MON_LOGIN/.ssh/authorized_keys
rm /home/MON_LOGIN/.ssh/MON_LOGIN.pub</pre>
<p>Voilà, maintenant que la partie publique de la clé est sur la machine distance (192.168.1.1), il suffit de faire <strong>&laquo;&nbsp;ssh 192.168.1.1&#8243;</strong> pour être directement connecté sur la machine, en SSH, sans saisir de mot de passe.</p>
<p>Si jamais on veut utiliser une autre clé SSH qui a un nom différent du login, on peut préciser le fichier de clé à utiliser avec le paramètre « -i ». Par exemple :</p>
<pre>ssh -i $HOME/.ssh/supervision supervision@192.168.1.1</pre>
<p><strong>Pour répondre à la question <em>« en tant que root avec un utilisateur normal (et toujours) sans taper de mot de passe »</em> :</strong></p>
<p>Nous allons utiliser l&#8217;outil sudo que vous devez certainement connaître. Cet utilitaire permet à utilisateur normal de lancer une commande en tant que root.</p>
<p>Pour permettre à cet utilisateur donné de lancer une commande donnée sans saisir de mot de passe, nous allons opérer sur la machine distante (192.168.1.1), en éditant en tant que <strong>root</strong>, le fichier de configuration de sudo :</p>
<pre>vi /etc/sudoers</pre>
<p>A la fin du fichier, on ajoute la ligne suivante :</p>
<pre>MON_LOGIN  ALL=NOPASSWD:/usr/sbin/ma_commande</pre>
<ul>
<li>où MON_LOGIN est le login de l&#8217;utilisateur qui doit exécuter la commande</li>
<li>/usr/sbin/ma_commande est la commande en question</li>
</ul>
<p>Maintenant, nous sommes prêts pour lancer la commande qui va répondre à la question de ce billet.</p>
<p>On se place sur la machine de lancement, et on saisit la commande suivante :</p>
<pre>ssh -t MON_LOGIN@192.168.1.1 sudo /usr/sbin/ma_commande param1 param2</pre>
<p>où :</p>
<ul>
<li><em>-t</em> permet d&#8217;émuler une pseudo console tty<em> (nécessaire si le paramètre requiretty est activé dans le /etc/sudoers)</em></li>
<li><em>MON_LOGIN@192.168.1.1 </em>correspond au login et la machine distante</li>
<li>« <em>sudo /usr/sbin/ma_commande param1 param2 </em>», la commande et ses paramètres à exécuter sur la machine distante</li>
</ul>
<p><em>Et voilà</em>, nous avons la réponse.</p>
<p>Pour finir, ne me demandez pas : &laquo;&nbsp;A quoi cela sert de pouvoir faire cela ?&nbsp;&raquo;, car soit vous en aurez besoin un jour si vous faites de l&#8217;administration systèmes et vous serez content de trouver ce billet, soit vous n&#8217;en aurez jamais besoin&#8230; <img src='http://blog.milamberspace.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2010/02/10/linux-executer-une-commande-avec-un-utilisateur-normal-en-tant-que-root-a-distance-sans-mot-de-passe-et-en-ssh-569.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
