小c学Linux(14)--ssh命令详解

本文讲述了SSH连接遇到的常见问题及解决方法,特别是当主机公钥发生变化时如何更新客户端的known_hosts文件。文中还介绍了SSH的基本原理及其两种认证方式,并详细说明了如何通过密钥对进行免密码登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用ssh连接目标主机突然报了一个错误连接不上
RSA host key for ip has changed and you have requested strict checking.
Host key verification failed.

这里写图片描述

google了一下,直接使用命令ssh-keygen -r IP_ADDR直接清空之前的连接的信息,重新生成密钥文件。

作为新手的我,没搞清楚是什么回事。于是去学习了一波…..
其实从字面就可以知道原因的,可是自己就是不愿意去读认真的读一下这些信息,这就告诫我以后必须得先把错误信息读一遍再去查找资料~
Add correct host key in /Users/caijun/.ssh/known_hosts to get rid of this message.就是说以前的链接失效了,就比如说服务器或许重新安装,或者已经更改了公钥,但是你的客户端.ssh/known_hosts还是保存的还是原来的“钥匙”,所以你必须清空以前的,添加新的。

SSH - Security SHell

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。–百度百科

其默认监听端口:22,由于黑客常喜欢扫描22端口,建议更改服务器上的SSH默认端口。

SSH认证机制

基于口令
基于密钥

- 客户端在本地生成一对密钥
- 客户端将公钥复制到服务器,要登陆的用户的家目录下的隐藏目录.ssh中的一个名为authorized_keys或authorized_keys2中

配置过程

1. 生成密钥对,客户端
ssh-key -t rsa
 生成的密钥默认保存至当前家目录下的.ssh下的id_rsa,公钥在id_rsa.pub文件中

这里写图片描述

这里的known_hosts就是你以前连接过的信息,而我出的错误也就是因为这个文件的内容是目标主机更改之后的ssh连接信息,导致不能连接

2. 复制密钥至远程主机:
 ssh-copy-id -i 公钥文件 登陆用户@远程ip地址

这里写图片描述

可以看到,以后再连接目标主机,就直接登陆,不再需要密码了。

虽然不要输密码了,但是每次登陆都还是要输入IP地址,还是很麻烦。

所以将ip保存至~/.ssh/config配置文件中设置一个用户名,以后直接ssh user_name就可以直接登录了
这里写图片描述

只要ssh服务器端公钥存在且开启ssh服务,我们就可以以一个简单的命令ssh vm远程登录到服务器了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值