SSH 主要有两种登录方式,一种是密码的登录方式,另一种就是免密的公钥登录方式。
第一种硬密码的登录方式有很多弊端:
1:手打密码远程连接服务器这种方式很不安全,尤其是有新的运维人员要使用服务器时,告知硬密码是十分容易导致密码泄露的。
2:在做一些集群部署的时候,向远程服务器发送脚本并执行自动化部署脚本时,这个过程每台就要多次输入密码,就不说上百台,光是几十台就很恶心了,还浪费时间。
由此可见,使用ssh免密登录就显得非常必要了。
配置方法:
1. 首先本地主机运行命令生成RSA非对称加密的密钥,RSA加密是安全级别非常高的加密方式,据说暴力破解去尝试所有可能的密码至少都要50年以上。
>> ssh-keygen (有提示时全部按回车就可以)
>> ssh-copy-id 192.168.1.12 (这里的地址输入的是要远程免密登录的服务器IP地址)
这样你就可以免密登录远程服务器了。
当然,可能部分人没有安装ssh-client包,无法执行ssh-copy-id命令,可以先把公钥发到你的目标服务器,然后远程登录到你准备要免密登录的目标服务器,手动把密钥对的公钥加入到ssh的密钥验证文件中
本地服务器把公钥拷到远程服务器上
scp ~/.ssh/id_rsa.pub XX@yourip
目标服务器
>> mkdir -m 700 ~/.ssh
>> touch ~/.ssh/authorized_keys
>> cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
>> chmod 600 ~/.ssh/authorized_keys
至此全部配置就完了,最重要的是保证.ssh文件夹是权限700,authorized_keys文件权限是600.
当你再次ssh XXX@yourip,你就不用再输入密码了