OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务
常见的ssh访问远程命令行
- telnet
- ssh
- dropbear
telnet //远程登录协议,23号端口/tcp协议
认证明文
数据传输明文
ssh //secure shell ,应用层协议,22号端口,tcp协议
通信过程及认证过程加密,主机认证
用户认证过程加密
数据传输过程加密
openssh的工作模式
openssh是基于c/s架构工作的(服务器-客户机,即Client-Server(C/S)结构)
服务器端 //sshd,配置文件在/etc/ssh/sshd_config
客户端 // ssh,配置文件在/etc/ssh/ssh_config
ssh-keygen //秘钥生成器
ssh-copy-id 将公钥传输到远程服务器上
scp //跨主机安全复制工具
配置ssh秘钥的身份验证
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:6vOQocFil3szGHRiRO5my+Mgsq2Ic6PLaHoKWWHDw8E root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| ...o |
| oE+ |
| B = . |
| . O + |
| + X . S |
| + * B + |
|= . B B |
|O=+o +.+ |
|&X... .o. |
+----[SHA256]-----+
[root@localhost ~]#
[root@localhost .ssh]# scp id_rsa.pub root@192.168.11.128:/root/.ssh/authorized_keys
root@192.168.11.128's password:
id_rsa.pub 100% 580 297.0KB/s 00:00
[root@localhost ~]# ssh root@192.168.11.128
Last login: Sat Oct 10 15:10:12 2020 from 192.168.11.131
[root@localhost ~]#