本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告

SSH免密码登录配置教程

发布:TangLu2018-7-12 11:55分类: 系统管理 标签: ssh

一、使用sshpass命令来传递密码

1、首先修改管理端SSH配置文件/etc/ssh/ssh_config,将SSH远程其它主机需要手动输入yes来进行认证的功能关闭掉

StrictHostKeyChecking no


2、安装sshpass,并使用它来传递密码,也可以通过sshpass结合ssh-copy-id实现批量传输公钥

yum install sshpass -y
sshpass -p "yourpassword" ssh 192.168.1.100
sshpass -p "password" ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.0.101


二、使用秘钥实现免密码登录

实验环境准备了三台服务器,生产环境中可以几十上百台

A:192.168.36.10(用于分发文件服务器)

B:192.168.36.15(接收分发文件服务器)

C:192.168.36.16(接收分发文件服务器)


1、使用ssh-keygen命令创建密钥对

ssh-keygen  -t  rsa  #除了rsa还有dsa格式,rsa可以实现加密认证也可以进行签名认证,dsa只能用于签名认证
# ssh-keygen -P "" -f ~/.ssh/id_rsa  #大写的P是密码,-f是私钥存放路径,实现非交互创建秘钥

2、执行命令后根据提示输入密钥的密码和存放路径,通常直接回车即可。命令执行完成后在用户家目录中生成了公钥(/root/.ssh/id_rsa.pub)和私钥(/root/.ssh/id_rsa)。公钥需要放在每台被远程的机器上,也就是说“谁要访问某服务器,谁就把公钥给某服务器”。在某些云平台上通常是将公钥传输给远端机器后,在平台上把私钥内容写进去,实现通过界面管理服务器。

ssh-keygen.png

 

3、进入用户家目录查看密钥文件,确认私钥权限为600,公钥为644,而.ssh目录权限是700

ssh-keygen2.png


4、利用ssh-copy-id命令推送公钥文件到以后需要分发文件的服务器(把公钥传给需要做免密钥登陆的机器不管是本地电脑还是服务器,都可以实现免密钥登陆)

# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.36.15  #命令完整写法
ssh-copy-id 192.168.36.15  #简写
sshpass -p 'yourpass' ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.36.15 #结合sshpass还可以实现免密分发公钥


5、命令执行后在分发服务器的对应用户家目录中会生成.ssh目录,并且该目录下还有一个authorized_keys文件,这个是被自动改名的公钥文件,因为在sshd_config文件中指明了公钥文件的名字。所以直接复制公钥文件中的内容到该文件中也是可以实现ssh-copy-id这个命令的效果


6、在A服务器上执行ssh命令连接B、C服务器,正常的话已经不需要输入密码可以直接登录了,利用这一特性,可以用一些脚本实现查看多台服务器的内存信息等,如下图就是在192.168.36.15服务器上通过SSH查看192.168.36.16的IP信息且不需要输入密码

openssh.jpg 

7、在A服务器使用scp命令进行分发文件测试,需要注意的是分发服务器和接收服务器都需要安装对应的命令,下图创建了三个测试文件,成功通过scp推送过去并不输入密码

openssh2.png

 

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《SSH免密码登录配置教程
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-219.html  [生成短网址]

已有 0/7926 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~