无论是基于测试还是维护,日常工作中常常需要频繁登录到某台服务器,除了使用第三方软件记录密码外,还可以通过 SSH-Key 实现免密登录。
创建 SSH 密钥
SSH 采用非对称加密技术,认证密钥包含两部分:公钥和私钥,公钥用于远程服务器,私钥存于本地,因此如果想实现免密登录需要先创建密钥:
可以用命令cat
查看公钥内容:
保存至服务端
前文提过公钥用于远程服务器,因此需把公钥拷贝到远程服务器~/.ssh/authorized_keys
文件中。最常规的方法是通过 ssh 连接后把id_rsa.pub
的内容手动复制到远程服务器,不过这里打算用另一种方式实现:
当然还有一种更为简洁和优雅的方法,可以直接将公钥自动添加到远程服务器上:
现在输入ssh [email protected]
便可以实现免密登录,上面两种方法的效果是一样的。
注:
- authorized_keys 文件如果不存在,需手动创建;
- 如果端口不是默认 22,连接时均需另行指定;
更进一步
既然不用密码便可自动登录 SSH,我们可以更进一步把输入账号和 IP 的步骤也一起省略:
保存后配合之前的免密登录,连接 shh 不要太简单了:
参考
本周语录
琐事就是运维服务中手动性的,重复性的,可以被自动化的,战术性,没有持久价值的工作。
———— 《SRE:Google 运维解密》[right]