ssh免密登录
原创大约 2 分钟
本文介绍,在Linux环境下ssh免密登录
操作环境说明
以下命令在 Ubuntu 20.04 LTS 系统上测试 , 原则上只要系统是Linux都通用
ubuntu@:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal
ssh免密登录介绍
SSH免密登录是一种通过SSH协议在计算机系统之间进行身份验证的方式,使得用户无需每次登录时都输入密码即可登录远程系统。它基于公钥加密技术,用户在本地计算机上生成一对密钥:公钥和私钥。公钥存储在要访问的远程系统中,而私钥则留存在用户的本地计算机上。
SSH免密登录的过程通常如下:
- 用户在本地计算机上生成密钥对(公钥和私钥)。
- 用户将公钥传输到要访问的远程系统上,并添加到目标用户的授权文件(例如
~/.ssh/authorized_keys
)中。 - 用户尝试连接到远程系统时,客户端会向远程系统发送一个使用私钥进行签名的请求。
- 远程系统收到请求后,使用用户的公钥进行验证签名。如果验证成功,则允许用户登录,而无需密码。
SSH免密登录的优点包括:
- 便利性:用户无需记住密码,可以方便地进行远程登录。
- 安全性:与传统密码登录相比,使用密钥对进行登录更加安全,因为密钥长度通常更长,难以猜测。
- 自动化:对于自动化任务和脚本,SSH免密登录可以轻松地进行身份验证,而无需用户交互。
SSH免密登录的实现基于公钥加密技术,因此提供了比密码登录更高的安全性。然而,为了确保安全性,必须保护好私钥,避免私钥泄露给未经授权的人员。此外,还应该定期更换密钥,以及限制和监控密钥的访问。
ssh免密登录实现步骤
客户机生成密钥对
cd ~/.ssh/
ssh-keygen -t rsa
# 执行下面操作无需再服务器端操作
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器
服务器端操作
方法一
scp id_rsa.pub root@客户机ip:~/.ssh/id_rsa.pub_temp
cat id_rsa.pub_temp >> authorized_keys
rm id_rsa.pub_temp
方法二
vim ~/.ssh/authorized_keys
# copy 客户端生成的 id_rsa.pub 内容到 authorized_keys 文件
# 保存并退出
:wq!