前言
- 搞了台Linux服务器,想要本地与服务器进行远程连接?想要服务器与服务器之间节点互通?我们可以通过SSH来解决!
- 你觉得SSH远程连接输入密码太慢?脚本自动化需要人为输入密码?没关系,我们可以配置ssh的免密登录!
什么是SSH
SSH的全称是Secure Shell,使用非对称加密方式,是用于远程登录的最为可靠的网络协议。它的原理是生成一个公私密钥对,然后你可以将公钥放置到任意服务器,当持有私钥的客户端连接到服务器的时,公钥私钥如果匹配成功,系统无需密码就能解除锁定。
配置免密登录
下列步骤演示环境:
本地操作系统:MacOS
服务器操作系统:CentOS
- 本地进入”~/.ssh”目录
cd ~/.ssh
如果没有该目录需要手动创建该目录
mkdir ~/.ssh
- 生成密钥:
ssh-keygen 是一个用来生成、创建和管理 SSH 认证用的公私钥的工具。
ssh-keygen -t rsa
查看密钥对
ls
默认私钥文件名:id_rsa
默认公钥文件名:id_rsa.pub
-
将公钥内容添加到远程服务器的~/.ssh/authorized_keys文件中
a)本地Mac环境
ssh 服务器用户名@服务器地址 "echo \"`cat .ssh/id_rsa.pub`\" >> .ssh/authorized_keys"
b)本地Linux或Windows上的git bash环境
ssh-copy-id -i ~/.ssh/id_rsa.pub 服务器用户名@服务器地址
ssh-copy-id 是用来将本地公钥拷贝到远程的 authorized_keys 文件的脚本命令,它还会将身份标识文件追加到远程机器的 ~/.ssh/authorized_keys 文件中,并给远程主机的用户主目录适当的的权限。
-
把专用密钥添加到ssh-agent的高速缓存中
ssh-add
-
使用ssh登录远程服务器系统
ssh 服务器用户名@服务器地址