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机器操作:
- 先生成秘钥对(公钥和私钥)
进入/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普通用户免密认证的主要内容,如果未能解决你的问题,请参考以下文章