<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: WordPress Tutorial: Using SSH to Install/Upgrade</title>
	<atom:link href="http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/</link>
	<description></description>
	<lastBuildDate>Wed, 16 Jun 2010 22:20:58 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: wordpress의 theme, plugin 설치에 필요에 필요한 ssh2 설정 &#187; NCL</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-10278</link>
		<dc:creator>wordpress의 theme, plugin 설치에 필요에 필요한 ssh2 설정 &#187; NCL</dc:creator>
		<pubDate>Tue, 11 May 2010 10:08:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-10278</guid>
		<description>[...] http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/" rel="nofollow">http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: theboywho.me.uk &#187; Enable SSH for Wordpress Auto-update</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-10141</link>
		<dc:creator>theboywho.me.uk &#187; Enable SSH for Wordpress Auto-update</dc:creator>
		<pubDate>Fri, 07 May 2010 11:09:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-10141</guid>
		<description>[...] followed these instructions.  My server is Gentoo based so the PHP SSH extension has to be installed like [...]</description>
		<content:encoded><![CDATA[<p>[...] followed these instructions.  My server is Gentoo based so the PHP SSH extension has to be installed like [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nicolas Ward</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-7426</link>
		<dc:creator>Nicolas Ward</dc:creator>
		<pubDate>Wed, 17 Feb 2010 19:35:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-7426</guid>
		<description>Came back to this after a long hiatus (and just doing manual updates).

The error the upgrade tool gives is &quot;There was an error connecting to the server, Please verify the settings are correct.&quot;

I&#039;ve confirmed that my public key works from the command line by doing:

sudo su www-data
ssh -i /path/to/private/id_rsa user@host

(Although first I had to give www-data write permissions to /var/www/.ssh/known_hosts.)

If I run with FTP_PASS empty, I get the error from the upgrade page and nothing in /var/log/auth.log. If I run with a random FTP_PASS, I get &quot;Did not receive identification string from 192.168.1.1&quot;.

Version info:

Server version: Apache/2.2.14 (Debian)
Server built:   Jan  2 2010 23:02:48
OpenSSH_5.3p1 Debian-1, OpenSSL 0.9.8k 25 Mar 2009

I have /etc/php5/conf.d/ssh2.ini set up as per your instructions.</description>
		<content:encoded><![CDATA[<p>Came back to this after a long hiatus (and just doing manual updates).</p>
<p>The error the upgrade tool gives is &#8220;There was an error connecting to the server, Please verify the settings are correct.&#8221;</p>
<p>I&#8217;ve confirmed that my public key works from the command line by doing:</p>
<p>sudo su www-data<br />
ssh -i /path/to/private/id_rsa user@host</p>
<p>(Although first I had to give www-data write permissions to /var/www/.ssh/known_hosts.)</p>
<p>If I run with FTP_PASS empty, I get the error from the upgrade page and nothing in /var/log/auth.log. If I run with a random FTP_PASS, I get &#8220;Did not receive identification string from 192.168.1.1&#8243;.</p>
<p>Version info:</p>
<p>Server version: Apache/2.2.14 (Debian)<br />
Server built:   Jan  2 2010 23:02:48<br />
OpenSSH_5.3p1 Debian-1, OpenSSL 0.9.8k 25 Mar 2009</p>
<p>I have /etc/php5/conf.d/ssh2.ini set up as per your instructions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brent</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-7060</link>
		<dc:creator>Brent</dc:creator>
		<pubDate>Fri, 05 Feb 2010 06:25:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-7060</guid>
		<description>@ jldugger I removed the read permission for the world on the private key (kept user and group permission) and seems to work fine still.</description>
		<content:encoded><![CDATA[<p>@ jldugger I removed the read permission for the world on the private key (kept user and group permission) and seems to work fine still.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jldugger</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-6670</link>
		<dc:creator>jldugger</dc:creator>
		<pubDate>Wed, 27 Jan 2010 00:10:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-6670</guid>
		<description>Second note, giving your private key world read permission is VEEEERY not good.  Anyone else with access to the server will be able to read it. I&#039;m also not clear on why you need both the private and public key.

While I don&#039;t like the idea of consultants / experts demanding people point out how to fix it or shut up, I&#039;ll take a stab at it.

1. Read http://wiki.hands.com//howto/passphraseless-ssh/ . Not all of it can be applied, but it&#039;s good to start with best practices.
2. Determine the task that needs to be done; I gather the purpose is to transfer from wp-uploads to wp-content in situations where the web server is running with insufficient permissions.
3. Restrict the SSH key to &#039;from=localhost.&#039;
4.  Perhaps write a local script to do this, and restrict the key to only that script with command=.
5. Perhaps change the group key to something relevant; debian uses www-data as a group for webserver users.</description>
		<content:encoded><![CDATA[<p>Second note, giving your private key world read permission is VEEEERY not good.  Anyone else with access to the server will be able to read it. I&#8217;m also not clear on why you need both the private and public key.</p>
<p>While I don&#8217;t like the idea of consultants / experts demanding people point out how to fix it or shut up, I&#8217;ll take a stab at it.</p>
<p>1. Read <a href="http://wiki.hands.com//howto/passphraseless-ssh/" rel="nofollow">http://wiki.hands.com//howto/passphraseless-ssh/</a> . Not all of it can be applied, but it&#8217;s good to start with best practices.<br />
2. Determine the task that needs to be done; I gather the purpose is to transfer from wp-uploads to wp-content in situations where the web server is running with insufficient permissions.<br />
3. Restrict the SSH key to &#8216;from=localhost.&#8217;<br />
4.  Perhaps write a local script to do this, and restrict the key to only that script with command=.<br />
5. Perhaps change the group key to something relevant; debian uses www-data as a group for webserver users.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jldugger</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-6668</link>
		<dc:creator>jldugger</dc:creator>
		<pubDate>Tue, 26 Jan 2010 23:31:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-6668</guid>
		<description>Quick note, I see that libssh2-php is packaged in Ubuntu, so you can install that and skip the PEAR step if you have access to apt. It handles everything you listed, just reload apache after installing it.</description>
		<content:encoded><![CDATA[<p>Quick note, I see that libssh2-php is packaged in Ubuntu, so you can install that and skip the PEAR step if you have access to apt. It handles everything you listed, just reload apache after installing it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-6217</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Fri, 15 Jan 2010 14:24:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-6217</guid>
		<description>I absolutely agree giving &quot;Other&quot; read access to your private key is a huge security issue. Unfortunately it seems like the WordPress Developers require you to keep this &quot;private&quot; key accessible by apache! 

What does this mean? It means that anyone with access to your server, legitimate or otherwise, will now have access to login to the user which has access to your WordPress directory and your WordPress SQL Database username, password, and location.

What should I do? It almost seems like FTP could be more secure in this case, but if you really want to use SSH here are my recommendations:

First: USE A PASSPHRASE, and make it strong (1), this way anyone who finds your &quot;private&quot; key won&#039;t instantly have access to your server.

Second: Don&#039;t change the permissions of your .ssh folder, apache only needs access to these two files, put them somewhere else, but NOT IN A WEB DIRECTORY! The .ssh folder should be 700 and files 600 (2).

Third: Don&#039;t keep id_rsa readable by everyone when it doesn&#039;t need to be. If you need to upgrade wordpress change its permissions to 644, upgrade, and then change it back to 600.

Fourth: (security through obscurity) Don&#039;t keep the file named id_rsa. If I were a hacker with unprivileged access to a wordpress server, after reading this article (and others like it), my first command would be:

find / -name id_rsa 2&gt;/dev/null

Which would point me to any files named id_rsa on the server.

Rick, in the post below, mentions that CentOS&#039;s Apache install won&#039;t let itself view ~/.ssh/ and that&#039;s because CentOS knows this is a horrible idea!

Instead of all of this, why not just setup an FTP daemon that only accepts traffic from localhost?

References: 
1) http://www.utexas.edu/its/secure/articles/keep_safe_with_strong_passwords.php
2) http://www.linuxforums.org/articles/file-permissions_94.html</description>
		<content:encoded><![CDATA[<p>I absolutely agree giving &#8220;Other&#8221; read access to your private key is a huge security issue. Unfortunately it seems like the WordPress Developers require you to keep this &#8220;private&#8221; key accessible by apache! </p>
<p>What does this mean? It means that anyone with access to your server, legitimate or otherwise, will now have access to login to the user which has access to your WordPress directory and your WordPress SQL Database username, password, and location.</p>
<p>What should I do? It almost seems like FTP could be more secure in this case, but if you really want to use SSH here are my recommendations:</p>
<p>First: USE A PASSPHRASE, and make it strong (1), this way anyone who finds your &#8220;private&#8221; key won&#8217;t instantly have access to your server.</p>
<p>Second: Don&#8217;t change the permissions of your .ssh folder, apache only needs access to these two files, put them somewhere else, but NOT IN A WEB DIRECTORY! The .ssh folder should be 700 and files 600 (2).</p>
<p>Third: Don&#8217;t keep id_rsa readable by everyone when it doesn&#8217;t need to be. If you need to upgrade wordpress change its permissions to 644, upgrade, and then change it back to 600.</p>
<p>Fourth: (security through obscurity) Don&#8217;t keep the file named id_rsa. If I were a hacker with unprivileged access to a wordpress server, after reading this article (and others like it), my first command would be:</p>
<p>find / -name id_rsa 2&gt;/dev/null</p>
<p>Which would point me to any files named id_rsa on the server.</p>
<p>Rick, in the post below, mentions that CentOS&#8217;s Apache install won&#8217;t let itself view ~/.ssh/ and that&#8217;s because CentOS knows this is a horrible idea!</p>
<p>Instead of all of this, why not just setup an FTP daemon that only accepts traffic from localhost?</p>
<p>References:<br />
1) <a href="http://www.utexas.edu/its/secure/articles/keep_safe_with_strong_passwords.php" rel="nofollow">http://www.utexas.edu/its/secure/articles/keep_safe_with_strong_passwords.php</a><br />
2) <a href="http://www.linuxforums.org/articles/file-permissions_94.html" rel="nofollow">http://www.linuxforums.org/articles/file-permissions_94.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Dingman</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-6007</link>
		<dc:creator>Jonathan Dingman</dc:creator>
		<pubDate>Fri, 08 Jan 2010 23:18:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-6007</guid>
		<description>Prazetvo,  this happens from time to time, it&#039;s a weird bug.  I haven&#039;t been able to figure it out yet. I just upload normally and then the next time, it works just fine.  I haven&#039;t been able to consistently reproduce the bug yet.</description>
		<content:encoded><![CDATA[<p>Prazetvo,  this happens from time to time, it&#8217;s a weird bug.  I haven&#8217;t been able to figure it out yet. I just upload normally and then the next time, it works just fine.  I haven&#8217;t been able to consistently reproduce the bug yet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Dingman</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-6006</link>
		<dc:creator>Jonathan Dingman</dc:creator>
		<pubDate>Fri, 08 Jan 2010 23:17:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-6006</guid>
		<description>Nate,  the reason for this is because now all web hosts are setup properly to do that.  Some web hosts, what you described works just fine.  Often, it will not, for security reasons.  If permissions are too open, someone could hack your site -- so these are security precautions in place to prevent that.

I&#039;ll be writing a follow-up post soon about permissions and users, making it even easier to upgrade.  &lt;a href=&quot;http://wpvibe.com/feed/&quot; rel=&quot;nofollow&quot;&gt;Subscribe&lt;/a&gt; to my &lt;a href=&quot;http://wpvibe.com/&quot; rel=&quot;nofollow&quot;&gt;WordPress site&lt;/a&gt; where the post will be written.</description>
		<content:encoded><![CDATA[<p>Nate,  the reason for this is because now all web hosts are setup properly to do that.  Some web hosts, what you described works just fine.  Often, it will not, for security reasons.  If permissions are too open, someone could hack your site &#8212; so these are security precautions in place to prevent that.</p>
<p>I&#8217;ll be writing a follow-up post soon about permissions and users, making it even easier to upgrade.  <a href="http://wpvibe.com/feed/" rel="nofollow">Subscribe</a> to my <a href="http://wpvibe.com/" rel="nofollow">WordPress site</a> where the post will be written.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Thelen</title>
		<link>http://www.firesidemedia.net/dev/wordpress-install-upgrade-ssh/#comment-6005</link>
		<dc:creator>Nate Thelen</dc:creator>
		<pubDate>Fri, 08 Jan 2010 23:10:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.firesidemedia.net/dev/?p=81#comment-6005</guid>
		<description>I have been looking online for some description to how the plugin upgrade process works so I can understand it better.  The main reason is that I do not understand why this process is necessary.  When I click the upgrade button shouldn&#039;t PHP (wordpress) be able to download the plugin, extract it, and drop it into the plugin folder without the need for all this?  Is it that php is running under the apache user and people do not want to make the plugin folder writable to the apache user?</description>
		<content:encoded><![CDATA[<p>I have been looking online for some description to how the plugin upgrade process works so I can understand it better.  The main reason is that I do not understand why this process is necessary.  When I click the upgrade button shouldn&#8217;t PHP (wordpress) be able to download the plugin, extract it, and drop it into the plugin folder without the need for all this?  Is it that php is running under the apache user and people do not want to make the plugin folder writable to the apache user?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
