<?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>IGI&#039;s Blog &#187; ssh</title>
	<atom:link href="http://www.igigo.net/archives/tag/ssh/feed" rel="self" type="application/rss+xml" />
	<link>http://www.igigo.net</link>
	<description></description>
	<lastBuildDate>Fri, 09 Dec 2011 04:19:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://www.igigo.net/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>ssh无法通过公钥登录的问题</title>
		<link>http://www.igigo.net/archives/67</link>
		<comments>http://www.igigo.net/archives/67#comments</comments>
		<pubDate>Thu, 25 Mar 2010 10:30:36 +0000</pubDate>
		<dc:creator>igi</dc:creator>
				<category><![CDATA[小砸碎]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.igigo.net/?p=67</guid>
		<description><![CDATA[帮一师弟解决一个无法通过公钥登录ssh服务器问题, 顺便总结下 现象: test帐号使用key无法登录某ssh服务器, 而同机器下的test2帐号却可以登录, 两个帐号都可以通过密码登录 在排查了所有配置错误的可能后, 初步怀疑test帐号的权限设置出问题 test@client:~$ ls -l ~/.ssh/ -rw------- 1 test test 1675 2010-03-25 15:15 id_rsa test@server:~$ ls -l ~/.ssh/ -rw-r--r-- 1 test test 396 2010-03-25 15:15 authorized_keys 查看了客户端及服务器端的.ssh目录下的公钥与私钥权限, 可以看出, 并没有问题 私钥必须是600权限, 而公钥至少是644或者更严格的权限, 这都符合, 但依然无法登录 test@server:~$ ls -la ~ &#124; grep -w .ssh drwxr-xr-x 2 test test 4.0K 12-23 16:59 .ssh [...]]]></description>
			<content:encoded><![CDATA[<p>帮一师弟解决一个无法通过公钥登录ssh服务器问题, 顺便总结下</p>
<p>现象: test帐号使用key无法登录某ssh服务器, 而同机器下的test2帐号却可以登录, 两个帐号都可以通过密码登录</p>
<p><span style="color: #008000;">在排查了所有配置错误的可能后</span>, 初步怀疑test帐号的权限设置出问题</p>
<pre class="brush: bash; title: ;">
test@client:~$ ls -l ~/.ssh/
-rw------- 1 test test   1675 2010-03-25 15:15 id_rsa
</pre>
<pre class="brush: bash; title: ;">
test@server:~$ ls -l ~/.ssh/
-rw-r--r-- 1 test test    396 2010-03-25 15:15 authorized_keys
</pre>
<p>查看了客户端及服务器端的.ssh目录下的公钥与私钥权限, 可以看出, 并没有问题<br />
私钥必须是600权限, 而公钥至少是644或者更严格的权限, 这都符合, 但依然无法登录</p>
<pre class="brush: bash; title: ;">
test@server:~$ ls -la ~ | grep -w .ssh
drwxr-xr-x  2 test  test  4.0K 12-23 16:59 .ssh
</pre>
<p>查看了服务器端的.ssh目录权限, 是755, 也是没问题的, ssh服务器要求在使用key登录时.ssh目录的权限必须是其他用户不可写。<br />
一开始实在想不明为啥test2帐号使用key可以登录,test帐号使用key无法登录, ssh_config和sshd_config在检查了多遍后确实没有问题, 最后在服务器端对比两个帐号的不同时, 发现了可疑的地方</p>
<pre class="brush: bash; title: ;">
$ls -l /home/
drwxrwxrwx   3 test test 4096 2009-12-31 17:31 test
drwxr-xr-x   6 test2 test2 4096 2010-03-23 15:59 test2
</pre>
<p>两个帐号的home目录权限不同, test帐号是777, test2帐号是755, 会不会是这里不同导致的? 在服务器端把test目录修改成777后, 解决问题</p>
<h3>为啥home目录的权限也会影响ssh的key登录?</h3>
<p>
ssh服务器的key方式登录对权限要求严格。对于客户端: 私钥必须为600权限或者更严格权限(400), 一旦其他用户可读, 私钥就不起作用(如640), 表现为系统认为不存在私钥<br />
对于服务器端: 要求必须公钥其他用户不可写, 一旦其他用户可写(如660), 就无法用key登录, 表现为:Permission denied (publickey).<br />
同时要求.ssh目录其他用户不可写,一旦其他用户可写(如770), 就无法使用key登录, 表现为:Permission denied (publickey).</p>
<h3>但为什么home目录的可写也影响到ssh使用key登录?</h3>
<p>我们知道linux下目录也是文件, 目录其他用户可写,代表其他用户可以删除目录里的所有文件或子目录,重命名目录下的所有文件或子目录.<br />
home目录的可写,表示其他用户对.ssh子目录也有改写的权限(删除或重命令),也就导致ssh判断.ssh为其他用户可写, 拒绝使用key登录</p>
]]></content:encoded>
			<wfw:commentRss>http://www.igigo.net/archives/67/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

