一.ssh免密码登陆需求
在我们处理集群或分布式系统时,经常会涉及到多个linux系统服务器。而在多个服务器间通信或资源共享时,如scp命令文件拷贝,需要录入密码校验,使操作过于繁琐,当密码精度过高时,整个操作更不方便。
那如何处理多个系统间免密码登陆?
1. 各服务器系统不设置密码,但此安全性不能保证,不推荐。
2.通过ssh实现免密码登陆。
二.ssh免密码登陆原理
在客户端服务器通过ssh-gen命令生成一个公钥/私钥,将生成的公钥拷贝到待免密码登陆的服务器,最后通过密钥加密解密配对的形式实现登陆,ssh免密码登陆的流程如下:
三.ssh免密码登陆前期准备
ssh安装检查命令:rpm -qa|grep openssh*
如果无内容输出,表示未安装。
安装命令:yum -y install openssh
四.ssh免密码登陆配置
定位到根目录,命令如下:
创建(.ssh)目录-命令:mkdir .ssh
生成ssh公私密钥-命令:ssh-keygen -t rsa
直接持续回车
拷贝公钥到认证文件-命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
具体命令和文件如下:
ssh系统配置文件修改-命令:vi /etc/ssh/sshd_config
PermitRootLogin yes
StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
五.ssh免密码登陆实践
1.本地免密码登录
测试命令:ssh localhost
如果不需要输入密码,表示本地配置成功。
退出ssh命令:exit
2.多系统免密码登录
服务系统A:192.168.65.128
服务系统B:192.168.65.129
服务系统A连接服务系统B
2.1 服务系统B相关配置类似1(本地免密码登录)。
2.2 拷贝服务系统A中公钥id_rsa.pub到服务系统B
scp id_rsa.pub root@192.168.65.129:/opt/software/
2.3 在服务系统B中将服务系统A拷贝的公钥文件写入到认证文件
cat id_rsa.pub >> ~/.ssh/authorized_keys
2.4 服务系统A测试登录服务系统B
六. Win7 通过SecureCRT登录服务系统A
正常Win7可以通过账号密码登录服务系统A。但当linux服务系统设置ssh免密码登录后,正常的Win7账号密码登录就会出错。
解决办法:
1. 服务系统A将生成的私钥id_rsa拷贝到Win7
2. secureCRT登录时,根据publicKey方式登录
3.导入服务系统A中的私钥id_rsa
确认后,看看是否能正常登录。
希望对您有帮助!!!