ssh 信任

ssh 信任(免密码登录)实现原理
使用一种被称为”公私钥”认证的方式来进行ssh登录。”公私钥”认证方式简单的解释是:
首先在客户端上创建一对公私钥(公钥文件:~/.ssh/id_rsa.pub;私钥文件:~/.ssh/id_rsa),然后把公钥放到服务器上(~/.ssh/authorized_keys),自己保留好私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以登录了。

实现:两台(A主信任机,B 被信任机)服务器之间ssh访问时,做信任的方式,免密码登录
–在A上实现免密码登录B(192.168.0.202)
ssh test@192.168.0.202 不需要密码
1、两台服务器均生成相应的公私钥
进入服务器之后,
ls -l ~/.ssh/id_rsa.pub —-检查该用户下是够有.ssh文件夹
A> 如果没有

 ssh-keygen -t rsa
     ——此命令为生成本用户的秘钥信息,执行中遇到提示直接回车键即可
   cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys     ——将本地的公钥加入到~/.ssh/authorized_keys 中
 B> 如果有
 ls -l ~/.ssh/authorized_keys  如果不存在执行上述的 将本地公钥加入authorized_keys的命令

生成公钥和私钥
2.将信任机A的公钥id_rsa.pub内容拷贝到被信任机B的authorized_keys中
信任机A上
cat ~/.ssh/id_rsa.pub
然后将内容拷贝到被信任机B 的~/.ssh/authorized_keys中
可以在被信任机B上执行
echo “A的公钥内容” >>~/.ssh/authorized_keys

或者此步骤简化为一条命令
在信任机A上执行

cat ~/.ssh/id_dsa.pub | ssh user@remote.machine.com 'cat >> .ssh/authorized_keys' 

此步骤需要输入密码

3.验证信任是否成功
到信任机上,输入ssh test@192.168.0.202 看是否能直接登录进去

如果失败,一般是被信任机上用户权限造成,可到192.168.0.202上查看日志 /var/log/auth.log
主要检查两方面 authorized_keys以及用户的权限
authorized_keys权限不能有x 最好600
chmod 600 ~/.ssh/authorized_keys
同时检查~/.ssh的权限,最好也是600
用户目录权限不能组和其他用户不能有w权限,750或755
chmod 750 /home/test/

附-说明:
1.以上信任的方式可以简化成较简单的命令
信任机A上,先执行ssh-keygen -t rsa 生成公钥,然后执行

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 22 test@192.168.0.202"

其中p为端口,默认22,”“里面的为用户和被信任机的IP,此命令简化了在被信任机B上生成authorized_keys的命令,如果B中存在authorized_keys,则会在后面新增一条记录,如果B中没有authorized_keys,则会新增文件,同时增加记录
2.简化登录输入
如果在登录服务器时,觉着输入ssh test@192.168.0.202)较繁琐,可以简化登录ssh 202
在A信任机A上新增文件config
touch ~/.ssh/config,添加以下内容即可

Host 202
     User souchelogs
     HostName 192.168.0.202

使用ssh 202测试是否成功

3.ssh 信任授权失败–FAQ
在将id_rsa.pub到被信任机~/.ssh/authorized_keys后,测试信任还是未建立成功,提示需要输入密码,此时,到被信任机中查看/var/log/auth.log,登录日志,如果出现Authentication refused: bad ownership or modes for file /home/souche/.ssh/authorized_keys 表示~/.ssh/authorized_keys文件的权限有问题,此处可以
chmod 600 ~/.ssh/authorized_keys
这是为了保证此权限只能被本用户处理,安全考虑
也可能是上级,目录如.ssh 或者用户目录权限造成
如用户目录设置777,也会造成信任授权失败
截取两种错误截图
authorized_keys 权限问题截图
这里写图片描述
用户目录错误截图
这里写图片描述

PS:可以在登录被信任机的时候,生成authorized_keys前,提前加上umask,这样可以避免因为authorized_keys权限造成登录失效
cd .ssh
umask 077
cat id_rsa.pub > authorized_keys

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值