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

SSH免密码登录配置教程

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

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

1、首先修改需要作为管理端的一台机器的/etc/ssh/ssh_config,取消第一次SSH主机需要手动输入yes来进行认证的问题

StrictHostKeyChecking no


2、安装sshpass,并使用它来传递密码

yum install sshpass -y
sshpass -p "yourpassword" ssh 192.168.1.100



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

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

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只能用于签名认证


2、执行命令后根据提示输入密钥密码和存放路径(可以直接回车留空),然后可以看到用户的家目录中生成了公钥(/root/.ssh/id_rsa.pub)和私钥(/root/.ssh/id_rsa)文件。公钥就是需要放在每台被管理机器上的文件,在某些云平台上通常是将公钥传输给远端机器后,在平台上把私钥内容写进去,实现通过界面管理服务器。如果不想使用交互模式的话可以加上-P和-f选项提前指定好参数内容

ssh-keygen -P "" -f ~/.ssh/id_rsa  #大写的P是密码,-f是私钥存放路径


ssh-keygen.png

 

3、进入对应用户home目录查看文件,可以看到私钥权限是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  #需要输入密码
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/3494 人参与

发表评论:

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

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