SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
ssh的两种登录方式
密码登录
公钥登录
登录验证原理
密码登录流程:
client向server发送登陆请求,server将自己的公钥发送给client
client使用这个公钥,将密码进行加密,发送给server
server用私钥解密登陆密码,验证合法性
server返回验证结果给client
缺点:容易受到中间者的攻击,客户端不能确定是不是请求真正的服务器发送的公钥,如果有冒充目标服务器的中间者发送公钥,客户端用中间者的公钥进行加密密码,那密码就会被中间者通过它的私钥解密出来,非常不安全。
公钥登录流程:
client端生成公钥对,将公钥追加在server端的~/.ssh/authorized_keys
发送登陆请求,server收到请求之后,生成随机字符串发送给client
client用自己的私钥对字符串进行加密,发送给server。server收到加密字符串之后用公钥解密, 比 较解密出的字符串和之前生成的字符串是否一致。返回结果给client
linux系统怎么创建ssh免密通道?
1、在客户端,用ssh-keygen 生成一对公私钥
2、把公钥加入到服务端的 /root/.ssh/authorized_keys
把id_rsa.pub里的内容加入到/root/.ssh/authorized_keys里面
修改authorized_keys文件的权限为600
chmod 600 authorized_keys
.ssh文件的权限要在755以下
3、在客户机登录
ssh root@192.168.74.110
登录成功则表明ssh免密通道创建成功,如果没有登录成功,可以从以下几点排查
1、端口是否开放,防火墙是否关闭
2、authorized_keys 文件权限是否为600.即rw-------,
chmod 600 authorized_keys
3、.ssh 文件夹权限是否为755以下,即rwxr-xr-x 以下,
chmod 754 .ssh