Linux系统ssh普通用户免密认证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统ssh普通用户免密认证相关的知识,希望对你有一定的参考价值。

ssh免密认证机制:
主要原理依据是:
1.在A上生成公钥私钥。
2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了)
3.Server A向Server B发送一个连接请求。
4.Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密,发送给Server A。
5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录

实现:A机器远程连接B机器,实现免密登陆
本地主机A: 47.106.155.107
远程主机B:112.74.190.230

A机器操作:

  1. 先生成秘钥对(公钥和私钥)

技术分享图片

进入/root/.ssh目录下可查看秘钥对:
技术分享图片

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
  id_rsa : 生成的私钥文件
  id_rsa.pub : 生成的公钥文件
  know_hosts : 已知的主机公钥清单
    如果希望ssh公钥生效需满足至少下面两个条件:
     1) .ssh目录的权限必须是700
     2) .ssh/authorized_keys文件权限必须是600

2、有一下几种方法:
1)、通过ssh-copy-id的方式
    命令: ssh-copy-id -i ~/.ssh/id_rsa.put <romte_ip>
    举例:      

[[email protected] zhaoliliang]# ssh-copy-id -i   ~/.ssh/id_rsa.pub "-p9800 [email protected]"
[email protected]‘s password: 
Now try logging into the machine, with "ssh ‘-p9800 [email protected]‘", and check in:

  .ssh/authorized_keys

to make sure we haven‘t added extra keys that you weren‘t expecting.

注:远程端口是22默认端口,忽略-p参数
常见错误:
     -bash: ssh-copy-id: command not found //提示命令不存在
     解决办法:yum -y install openssh-clients
2) 通过scp将内容写到对方的文件中
命令:scp -p ~/.ssh/id_rsa.pub
[email protected]<remote_ip>:/root/.ssh/authorized_keys

[[email protected] zhaoliliang]# scp -P 9800 ~/.ssh/id_rsa.pub [email protected]:/home/ceshi/.ssh/authorized_keys

注:若远程机器普通用户家目录下没有.ssh目录需要手动创建;

3) 手工复制粘贴的方式
将本地id_rsa.pub文件的内容拷贝至远程服务器的~/.ssh/authorized_keys文件中

以上是关于Linux系统ssh普通用户免密认证的主要内容,如果未能解决你的问题,请参考以下文章

linux免密登录secure报密码过期

linux--ssh免密及别名登陆

Linux 普通用户之间免密登陆

Linux的SSH免密登录认证过程研究

Linux ssh服务 及免密匙认证

haddop完全分布式安装