文章

SSH

SSH

本文记录了 SSH 的基本原理和简单使用

SSH 是什么

SSH 是一种加密的网络安全协议,用于安全地远程登录和执行命令. 流程如下

ssh流程

简单用法

登录

语法:

1
ssh -p 22 user@host

参数:

  • -p:指定端口号。
  • user:登录的用户名。
  • host:登录的主机。

默认的端口号为22,当端口号为22的时候,可以省略,直接使用如下方式:

1
ssh user@host

此外,如果本地正在使用的用户名与远程登录的用户名一致,登录用户名也是可以省略的,即如下:

1
ssh host

退出

1
exit

远程登录实例

1、 获取两条主机的 ip 地址, 分别为A(10.6.12.178) B(10.6.12.179)

1
2
3
4
5
6
7
ifconfig | grep inet\ 

-----------------------------------
注意上面命令中最后有一个空格, 反斜杠对其转译
➜  Desktop ifconfig | grep inet\
	inet 127.0.0.1 netmask 0xff000000
	inet 10.6.12.178 netmask 0xffff0000 broadcast 10.6.255.255

2、 B 连接 A, 假设要登录的用户为 will

1
2
3
4
5
6
7
8
9
10
➜  ~ ssh -p 22 will@10.6.12.178
The authenticity of host '10.6.12.178 (10.6.12.178)' can't be established.
ED25519 key fingerprint is SHA256:L46IIfpuz3bSmkeeAtEg6td9I+t8TOEewDPeJn6SNEI.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.6.12.178' (ED25519) to the list of known hosts.
(will@10.6.12.178) Password:

----------------------------------------
第一次输出是本地没有 A 的指纹,是否继续, 输入 yes 即可, 之后会将 A 的指纹永久保存到本地, 此刻输入密码即可登录.

scp 命令, 安全的远程拷贝数据

对于远程拷贝场景, 可以使用 scp 命令, 和 cp 使用规则一致

1
2
3
4
5
6
➜  ~ scp ~/Desktop/abc.mov will@10.6.12.178:/Users/will/Desktop/xiaoyou
(will@10.6.12.178) Password:
abc.mov                                       100%   28MB   8.8MB/s   00:03

------------------------------
将本地文件,拷贝到远程主机指定目录

SSH 存在的问题

如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。

因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。

可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。

这种风险就是著名的”中间人攻击”(Man-in-the-middle attack)。


THE END.

本文由作者按照 CC BY 4.0 进行授权