码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2018-12-27 03:23:05      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:text   install   inux   命令   scp   6.4   必须   需要   copy   

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>
    举例:      

[root@XL-Jenkins-Game zhaoliliang]# ssh-copy-id -i   ~/.ssh/id_rsa.pub "-p9800 ceshi@47.107.76.42"
ceshi@47.107.76.42‘s password: 
Now try logging into the machine, with "ssh ‘-p9800 ceshi@47.107.76.42‘", 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
root@<remote_ip>:/root/.ssh/authorized_keys

[root@XL-Jenkins-Game zhaoliliang]# scp -P 9800 ~/.ssh/id_rsa.pub ceshi@47.107.76.42:/home/ceshi/.ssh/authorized_keys

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

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

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

标签:text   install   inux   命令   scp   6.4   必须   需要   copy   

原文地址:http://blog.51cto.com/12243012/2335762

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!