1、公私钥简介与原理公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是:
非对称加密算法不能使用相同的密钥进行解密,也就是说公钥加密的只能使用私钥进行解密。
2、使用密钥进行ssh免密登录ssh使用私钥登录大致步骤就是:主机A(客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。
(1) 实验环境 1) 主机A(客户机):192.168.187.137 2) 主机B(被登陆机):192.168.187.143
(2) 实验开始 ## -t rsa可以省略,默认就是生成rsa类型的密钥 ssh-keygen -t rsa ## 生成时指定格式:按以下命令生成 RSA 格式的密钥对即可 ssh-keygen -m PEM -t rsa 说明:命令执行后会有提示,输入三次回车即可,执行完成后会在当前用户的.ssh目录下生成两个文件:id_rsa、id_rsa.pub文件,前者是私钥文件,后者是公钥文件(拷贝到其他主机只需要拷贝这个文件的内容)。在linux上以“.”点开头的文件名或目录名称代表具有隐藏属性,通过ll命令或ls命令看不见。可通过 ll -a 或者 ls -lath 查看。
2,将公钥复制到被登陆的主机上的 ~/.ssh/authorized_keys 文件中 方法一:使用 ssh-copy-id 直接拷贝 使用 ssh-copy-id 进行拷贝公钥非常方便,只需要指定目标主机和目标主机的用户即可。 ## 通过ssh-copy-id工具分发公钥内容到被登陆机上指定用户目录下 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.187.142 执行这条命令后会自动将登录主机的公钥文件内容追加至目标主机中指定用户(root).ssh目录下的authorized_keys文件中。这个过程是全自动的,非常方便。需要预先安装openssh插件。
方法二:自己创建文件进行拷贝 1) 在登录主机(客户机)上创建authorized_keys文件并将公钥追加到该文件。 先cd到登录机使用的用户下的 .ssh 目录,方便操作 ## 进入当前用户的.ssh目录(按实际情况指定用户即可) cd ~/.ssh/ ## 将公钥追加到授权关键列表 cat id_rsa.pub >> authorized_keys ## 修改文件权限为600,该文件有规定如果属组其他人出现可写则文件就不会生效 chmod 600 authorized_keys 2) 在被登录机的指定用户家目录下创建 .ssh 目录(这里在root用户下创建,因为要使用密钥登陆到root用户) # 进入当前用户家目录(按实际情况指定) cd ~/ # 查看有没有.ssh目录,一般安装过openssh都会有 ls -lath # 如果确实没有,手动创建也一样 mkdir .ssh ##将目录权限改为700该目录的权限必须是700才有效 chmod 700 .ssh 3) 将登录机创建的authorized_keys文件拷贝到被登录机,使用scp # 登录机上的.ssh/目录下操作 scp authorized_keys root@192.168.187.142:/root/.ssh/ authorized_keys 100% 402 576.4KB/s 00:00 当然你也可以直接拷贝登录机上的公钥id_rsa.pub内容文本,粘贴到被登录机上的authorized_keys文件里面粘贴,是一样的啦。
3,登录 ssh root@192.168.187.142 # 登录成功如下 Last login: Wed Feb 13 15:24:30 2019 from 192.168.187.137 首次登录将弹出保存信息,输入yes即可,此时已经实现了免密的密钥登陆。
注意事项和说明:
3、 ssh的两种登陆方式介绍(1) 口令验证登录
(2) 密钥验证登录
4、 总结ssh密钥登录可以实现免密登录,免密登陆有很多用途:例如scp免认证、rsync备份免交互等一切使用ssh认证的地方均可以免交互,也就实现了自动化。
密钥认证的大概步骤 1) 客户端(登录主机)生成一对密钥:# ssh-keygen 2) 将客户机的公钥复制到服务端(被登陆主机)要登录的用户的 ~/.ssh/authorized_keys 文件中:# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.187.142 注意:如果使用自己复制的方法,一定要注意.ssh目录和authorized_keys文件的权限,前者是700,后者是600 3) 使用客户机ssh连接服务端或者使用ssh协议认证的程序即可实现免密,免交互 注意:要想两端登录同时免密,就在主机B(被登陆机)也创建密钥然后将公钥拷贝到主机即可。
linux的无密码登录,利用RSA加密原理。使用rsa生成公钥和私钥。可以理解为:公钥是锁放在被登录的服务器上,私钥是钥匙放在客户端。锁和钥匙匹配就可以登录。 1,安装相关软件: yum install ssh ssh里包含ssh和ssh-keygen 2,在客户机生成公钥和私钥:方法在前面讲过,这里省略。生成:id_rsa.pub(公钥-锁) 和 id_rsa(私钥-钥匙) 3,将公钥放的被登录机器:方法在前面讲过,这里省略。如果拷贝id_rsa.pub到authorized_keys(注意可能会多拷贝回车,可以拷贝编辑器检查一下) 4,登录服务器: ssh 目标用户@目标ip 5,文件介绍;
|
|