Linux预备知识——免密远程登录

使用情景一:在Linux或者mac上频繁登录另外一台主机

使用情景二:在需要自动化部署的时候

这时候每次都要输入口令 这时候就需要免密登录

用公钥加密(相当于锁) 私钥解密(相当于钥匙)

步骤1: 生成密钥对

ssh-keygen -t rsa -C "名称" -f "名称_rsa" // rsa 加密方式

步骤2: 上传配置公钥

上传公钥到服务器对应帐号的home路径下的./ssh/
ssh-copy-id -i "公钥文件名" 用户名@服务器ip或域名
// 配置公钥文件访问权限为 600 -rw-------
登录服务器查看公钥是否上传
ssh 用户名@服务器ip或域名
cd /home/
ls -a // 查看所有文件(包括隐藏文件)
cd .ssh/
cat "公钥文件名" // 查看文件内容中是否是正确
检查正确上传之后 exit 退出

使用scp上传
可以用 cat abc_rsa.pub >> // 写入到文件里面

步骤3: 配置本地私钥

在同层目录可以显示传入
ssh -i 私钥文件名 用户名@服务器ip或域名 // 就可以面给密登录
不在同一级目录
ssh -i 相对路径/私钥文件名 用户名@服务器ip或域名
例:ssh -i .ssh/abc_res 用户名@服务器ip或域名 // 假设我的私钥文件名为abc_rsa

步骤4: 免密登录功能的本地配置文件

编辑自己 home 目录的 ./ssh/ 路径下的config 文件
User root // 登录的用户名
Host zhangsan // 服务器的别名
HostName www.abc.com // 服务器的ip或网址
Port 54322 // 端口号(默认填22)
StrictHostKeyChecking no
IdentityFile ~/ssh/abc_rsa // 指定私钥文件的地址
IdentitiesOnly yes
Protocol 2 // ssh的版本
Compression yes
ServerAliveInterval 60 // 每个60s网服务器发一个心跳
ServerAliveCountMax 20
LogLevel INFO // 日志输出等级,只输出主要日志

如果有多个服务器,上面的多复制几块

配置config 文件的访问权限为644

config 的访问权限也应该为 600 -rw-------

ssh 别名 // 登录