OpenSSH
openssh简介
OpenSSH是 Secure SHell(安全外壳协议,简称SSH)协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
OpenSSH 是一组用于安全地访问远程计算机的连接工具。 它可以作为 rlogin、 rsh rcp 以及 telnet 的直接替代品使用。 更进一步, 其他任何 TCP/IP 连接都可以通过 SSH 安全地进行隧道/转发。 OpenSSH 对所有的传输进行加密, 从而有效地阻止了窃听、 连接劫持。
OpenSSH这一术语指系统中使用的Secure Shell软件的软件实施。用于在远程系统上安全运行shell。如果您在可提供ssh服务的远程Linux系统中拥有用户帐户,则ssh是通常用来远程登录到该系统的命令。ssh命令也可用于在远程系统中运行命令。
常见的远程登录工具有:
- telnet
- ssh
- dropbear
telnet //远程登录协议 端口默认: 23/TCP
认证明文
数据传输明文
ssh //Secure SHell,应用层协议 端口默认: 22/TCP
通信过程及认证过程是加密的,主机认证
用户认证过程加密
数据传输过程加密
dropbear //嵌入式系统专用的SSH服务器端和客户端工具,比如手机
SSH认证的方式
openssh的方式有两种:
-
基于口令的认证(密码)
-
基于密钥的认证(密钥)
openSSH的工作模式
openssh是基于C/S(客户端/服务器端)架构工作
在Linux中openSSH服务器端的配置文件在 /etc/ssh/sshd_config
在Linux中openSSH客户端的配置文件在 /etc/ssh/ssh_config
ssh-keygen //密钥生成器
ssh-copy-id //将公钥传输至远程服务器
scp //跨主机安全复制工具
服务:
[root@server .ssh]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-09-24 00:54:54 EDT; 1h 16min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 973 (sshd)
Tasks: 1 (limit: 11201)
Memory: 7.7M
CGroup: /system.slice/sshd.service
.....
连接示例:
//以当前用户身份创建远程交互式连接,然后在结束时使用exit命令返回之前的shell,需要注意的是使用的是当前的用户去连接的,如果对端没有这个用户或输入对端用户密码错误则会连接失败。
[root@client ~]# ssh 192.168.220.9
The authenticity of host '192.168.220.9 (192.168.220.9)' can't be established.
ECDSA key fingerprint is SHA256:ZeQy7MqiTiEdnowRrum5zEWROx4LRrsYwdL8dvgx6N0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.220.9' (ECDSA) to the list of known hosts.
root@192.168.220.9's password: //输入密码
Last login: Fri Sep 24 00:55:03 2021 from 192.168.220.1
root@server ~]# exit
logout
Connection to 192.168.220.9 closed.
//指定远程登录用户(remoteuser)在指定远程