Linux_SSH免密随笔
一、介绍
SSH 为 Secure Shell
的缩写,它是建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH远程登录目标服务器有两种方式:
① 基于口令的安全认证: 每次登录的时候都要输入用户名和密码, 由于要在网络上传输密码, 可能存在中间人攻击的风险;
② 基于密钥的安全认证: 配置完成后就可以实现免密登录, 这种方式更加安全 —— 不需要在网络上传递口令, 只需要传输一次公钥. 常见的git的ssh方式就是通过公钥进行认证的.
二、配置SSH免密登录
如何实现远程服务器的免密登录?
两个文件: 本地环境的 ~/.ssh/id_rsa.pub
与 远程服务器的 ~/.ssh/authorized_keys
一个动作:把本地文件中的内容复制粘贴到远程服务器中
-
生成 SSH 密钥对(如果尚未生成):
- 在本地机器上打开终端。
- 输入
ssh-keygen
并按回车。 - 按照提示操作,可以直接按回车使用默认设置。这将在
~/.ssh/
目录下生成一对密钥(id_rsa
和id_rsa.pub
)。-
id_rsa: 生成的私钥文件
-
id_rsa.pub: 生成的公钥文件
-
[wpy@hdsgs etc]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/wpy/.ssh/id_rsa): Created directory '/home/wpy/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/wpy/.ssh/id_rsa. Your public key has been saved in /home/wpy/.ssh/id_rsa.pub. The key fingerprint is: SHA256:jtM28ZcfKiGuJRVlhJ1FIK3ym54TBeeNYTyoI6MU8ik wpy@hdsgs The key's randomart image is: +---[RSA 3072]----+ | .B==o | |. . ++X | | o o ..* = | |E + o + ..+ . | | o . o +S. | | . =+o. . | | +.*=..o . | | ==o.. o . | | .oo. .. . | +----[SHA256]-----+ [wpy@hdsgs etc]$
一般默认rsa
-
-
将公钥复制到远程服务器:
- 对于每台远程服务器,使用
ssh-copy-id
命令复制公钥。例如:ssh-copy-id user@hostname
- 这里的
user
是远程服务器的用户名,hostname
是服务器的主机名或IP地址。 - 第一次连接时,您可能需要输入密码。
- 目标服务器中会生成authorized_keys: 存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。
- 对于每台远程服务器,使用
-
测试免密登录:
- 对每台服务器,尝试使用
ssh
登录:ssh user@hostname
- 如果您能够在不输入密码的情况下登录,说明免密登录设置成功。
- 对每台服务器,尝试使用
三、SSH命令
四、SSH免密登录原理
1、ssh 客户端向 ssh 服务器端发送连接请求
2、ssh 服务器端发送一个随机的信息
3、ssh 客户端使用本地的私钥对服务器端发送过来的信息进行加密
4、ssh 客户端向服务器端发送加密过后的信息
5、ssh 服务器端使用公钥对该信息进行解密
6、若解密之后的信息和之前发送的信息匹配,则信任客户端,否则不信任。
五、SSH免密登录其他事项
5.1 为何使用 ssh 10.0.0.1
可以登录?而不用加用户名
5.2 使用shell脚本,进行免密登录远程服务器进行某些操作
5.3 若当前机器A将公钥复制给远程服务器B,则A可免登录B,但B无法免登录A
5.4 禁用密码登录
修改云服务器的 ssh 配置文件:/etc/ssh/ssh_config
。PasswordAuthentication
设置为 no
,禁用密码登录
# 禁用密码登录
Host *
PasswordAuthentication no
5.5
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!