解决ssh免密码登录 非默认端口22免密钥登录

解决ssh免密码登录

服务器A192.168.0.42

服务器B192.168.0.44

服务器A,B安装yuminstallopenssh-clients-y

产生秘钥ssh-keygen-trsa

上传公钥scp.ssh/id_rsa.pubroot@192.168.0.44:/root/.ssh/authorized_keys

遇到ssh修改了默认的端口22不能免密钥登录解决方法:

vim/etc/ssh/sshd_config

去掉以下三行之前的#

RSAAuthenticationyes

PubkeyAuthenticationyes

AuthorizedKeysFile.ssh/authorized_keys

重启ssh服务servicesshdrestart重新产生秘钥,并上传公钥到另外一台服务器。

转自:http://9040429.blog.51cto.com/9030429/1774619

普通用户如何设置SSH无密码访问

生成密钥及授权文件一般过程:

假设客户机名sy1,IP为ip1.用户名user;服务器名sy2.IP为ip2.用户名user

在sy1上输入:

ssh-keygen-trsa

然后弹出一些问题,一路回车。然后输入:

scp~/.ssh/id_rsa.pubuser@ip2:/home/user/.ssh/ip2

输入sy2上user的密码,拷贝完成。

在sy2上,输入:cat~/.ssh/ip2>>~/.ssh/authorized_keys

(以上步骤也可用ssh-copy-id命令:ssh-copy-iduser@ip2,不过少了一个授权文件的备份ip2)在ubuntu10.04里,相关文件和目录的权限都不需要改。但是会有另外一个问题就是sy2返回Agentadmittedfailuretosignusingthekey错误,简单处理方法就是在sy1上执行两个命令:ssh-agentssh-addid_rsa然后sy1就可以实现无密码登录了。要实现相互无密码访问,要在sy2上按照相应步骤执行。

对于普通用户authorized_keys的权限必须限定为600(go-rwx),否则普通用户无法实现无密钥访问,而ROOT用户按照默认即可实现无密钥访问

chmodgo-rwx~/.ssh/authorized_keys

不能无字码访问多半是权限问题:

.ssh目录的权限和authorized_keys的权限都要看,权限大了是不行的

.ssh的权限700,authorized_keys的权限600,就够了,属主要是登陆用户自己(root是不行的),组无所谓

不管是什么原因,查/var/log/secure就明白了

转自:http://navyaijm.blog.51cto.com/4647068/816618