使用工具
- PowerShell
- 浏览器
- 一台 Ubuntu 22 服务器
过程
- 首先购买一台适合的云服务器,然后放开在云服务器厂商的面板的「安全策略」上默认入站端口22,给本地的机器提供连接云服务器的能力
- 此时就可以直接在本地的机器上使用命令来访问云服务器了
1
2# 遵守以下格式输入相应的信息回车,输入正确的密码就可以访问了
ssh -i username@ip_address但是怎么可能现在就停下!毕竟我们是懒人!
接着为了以后的舒服而努力,简化登录过程和提高安全性
采用密钥的登录方式 - 在云服务器厂商的面板里面生成一个ssh安全密钥,并绑定你想要连接的服务器实例上
- 把拿到手的密钥文件存放到适合的位置
我放在 C:\User\username\.ssh 文件夹中,直接方便管理和配置了 - 打开在
C:\User\username\.ssh中的config文件,在里面按照1
2
3
4
5
6
7
8
9
10
11
12Host server_name
HostName ip_address
User user_name
IdentityFile .pem_file_path
Port port
# 解释:
# server_name:是你希望使用命令登录的服务器的代替名字
# ip_address:是你的服务器的具体ip地址
# user_name:是你希望登录的该服务器内的账户的名字
# .pem_file_path:是你的安全密钥存放在的地址
# port:是你通过哪个端口来访问你的服务器(默认是22,如果没有改过可以不用特意写这一条) - 保存文件
- 回到 PowerShell 中,直接使用以下格式的命令
1
ssh server_name
结果
这样就可以安全的访问到我们想要访问的的服务器了
- 无密码传输
- 登录更便捷
只需要保管好密钥文件不要泄露就属于绝对安全的方式
一些可能需要注意到的坑
如果生成了两个名字相同的安全密钥
复现步骤:
- 生成一个 win.pem
- 在本地已经使用过这个密钥连接过服务器
- 在本地和云服务器均删除了密钥文件
- 再次生成一个 win.pem 文件
- 放回到相同位置
- 使用ssh连接
- PowerShell报错 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:X/rCSY3s8mgmkiS/aNn0JZSF2+BwhhOmnkIA1GmbYxM.
Please contact your system administrator.
Add correct host key in C:\\Users\\User/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\user/.ssh/known_hosts:7
Host key for ip_address has changed and you have requested strict checking.
Host key verification failed.
问题解析:
第一次成功连接服务器 server_name 时,你的电脑(SSH 客户端)会把那台服务器的“指纹”(也就是 Host Key)保存在 C:\Users\user\.ssh\known_hosts 文件里。这就像是给你的服务器拍了张“快照”存起来。
现在,当你再次连接 server_name 时,服务器提供了一个新的、不一样的“指纹”。你的电脑将新指纹和之前保存的旧指纹一对比,发现不匹配,于是立刻发出警告并拒绝连接。它这么做是出于安全考虑,因为它无法确定是哪种情况
解决方法
删除保存在你电脑里的那条旧的、错误的指纹记录,然后重新连接一次,让 SSH 客户端接受并保存新的正确指纹
1 | ssh-keygen -R ip_address |