1 linux中什么是 ssh?有什么用?
(1)ssh 是一种协议
SSH(Secure Shell) 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
(2)ssh 服务
Linux 一般作为服务器使用,我们通常使用 ssh 服务(指实现 SSH 协议的软件)远程登录到 Linux 服务器来管理维护系统。
- OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。
- OpenSSH 的服务端:sshd(Linux 服务器启动该服务)
- OpenSSH 的客户端:ssh(客户端启动,通过它来访问服务端)
2 ssh 基于密匙的安全验证过程是怎样的?
需要创建一对密匙,把公用密匙放在服务器上。连接SSH服务器时,客户端向服务器发出请求,用你的放的公钥匙进行安全验证,服务器收到请求之后,先在该服务器上你的主目录下寻找你的公匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私匙解密。
3 对称加密与非对称加密区别是什么?
(1)对称加密
加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。效率高,对称加密的一大缺点是密钥的管理与分配,在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。
(2)非对称加密
非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。目前最常用的非对称加密算法是RSA 算法。虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。
4 非对称加密 RSA 算法的作用
(1)加密:公钥加密私钥解密
主要用于将数据资料加密不被其他人非法获取,保证数据安全性。使用公钥将数据资料加密,只有私钥可以解密。即使密文在网络上被第三方获取由于没有私钥则无法解密,从而保证数据安全性。
- A 在自己电脑上生成 RSA 钥匙文件,一个私钥文件一个公钥文件,并将他的公钥传送给 B。
- 此时 B 要传送信息给 A,于是 B 用 A 的公钥加密他的消息,然后传送给A。(网络上传输的密文,没有 A 的私钥无法解密,其他人获取之后也没用)
- A 用他的私钥解密 B 的消息。
(2)认证:私钥加密公钥解密
主要用于身份验证,判断某个身份的真实性。使用私钥加密之后,用对应的公钥解密从而验证身份真实性。
SSH 公钥登录则用的是第二种功能。
5 如何生成 ssh 密钥对?
- 运行完上面的命令会生成一对公私钥,默认保存在 ~/.ssh/ 下的 id_rsa,id_rsa.pub。
- id_rsa 是私钥,id_rsa.pub 是公钥,私钥一定要妥善保管。
- id_rsa 的权限必须是 600 , chmod 600 ~/.ssh/id_rsa。600 即(-rw------)只有所有者才有读和写的权限。
6 ssh 配置 config 文件与快捷登陆
(1)快捷登陆配置
在 ~/.ssh/ 下可以自己定义一些快捷键登陆的配置,该配置在 ~/.ssh/config
config 结构如下:
Host kafka_broker_01 #定义主机别名 ServerAliveInterval 30 HostName 122.22.222.102 #主机ip Port 33033 #ssh 端口 User bila #用户名 IdentityFile /Users/bila/.ssh/id_rsa #私钥 ProxyCommand ssh w_x_bastion -C -W %h:%p #设置跳板机
(2) 登陆
指定用户登录
ssh bila@192.168.0.103
指定端口号登录
ssh ssh 192.168.0.103 -p 2022