OpenSSH是Secure SHell(安全外壳协议,简称SSH)协议的免费开源实现1。它提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务,如rlogin、rsh、rcp以及telnet等1。
一、功能特点
- 安全连接
- 加密客户端与服务器之间的所有流量,从而遏止窃听、连接劫持和其他攻击。可以在远程系统上安全地运行shell,无论是在Linux系统之间,还是适用于Windows Server 2019、Windows 10(版本1809及更高版本)或Windows Server 2022等Windows系统与其他系统之间的连接等情况1。
- 多种功能用途
- 远程登录:如果在可提供ssh服务的远程Linux系统中拥有用户帐户,ssh是通常用来远程登录到该系统的命令,并且ssh命令也可用于在远程系统中运行命令1。
- 文件传输:支持远程拷贝文件。例如,可以将本地文件拷贝到远程主机(使用scp命令,如[root@localhost~]#scpanaconda - ks.cfg root@192.168.112.131:/tmp,输入远程主机密码后即可完成传输),也可以将远程主机文件拷贝到本地(如[root@localhost~]#scproot@192.168.112.130:/tmp/anaconda - ks.cfg/root )2。
- 端口转发:其他任何TCP/IP连接都可以通过SSH安全地进行隧道/转发1。
二、工作模式 OpenSSH基于C/S(客户端/服务器)工作模式,有两种认证方式:口令认证和基于密钥的认证(密钥)1。
三、安装(以CentOS系统为例)
- 服务器端安装
- 需要安装openssh - server,因为它是服务器端与客户端核心文件2。
- 客户端安装
- 需要安装openssh - clients。如果一台机器既要做客户端又要做服务器端,就需要在该系统中安装openssh、openssh - clients、openssh - server这三个软件包;CentOS7中默认已安装好上述三个软件包。可以通过[root@localhost~]#yum search openssh命令找到这些软件,再使用[root@localhost~]#yuminstallopenssh.x86_64命令安装相关软件2。
四、使用示例
- 远程登陆主机
- 远程主机登陆(首次登陆):例如在[hadoop@localhost~]$下执行ssh 192.168.112.130,首次登陆时会提示确认主机真实性(The authenticity of host '192.168.112.130(192.168.112.130)' can't be established. ECDSA key fingerprint is ff:7b:94:49:f5:2d:d3:59:23:c7:a8:cf:b0:d6:e4:b9. Are you sure you want to continue connecting(yes/no)?),输入yes后输入密码即可登陆,再次登陆不会有这个提示,并且主机信息会被添加到已知主机列表(Warning: Permanently added '192.168.112.130'(ECDSA) to the list of known hosts.)2。
- 指定用户名登陆:如[hadoop@localhost home]$ssh - lroot192.168.112.130,然后输入密码即可登陆2。
- 远程拷贝
- 本地文件拷贝到远程主机:例如[root@localhost~]#scpanaconda - ks.cfg root@192.168.112.131:/tmp,输入远程主机密码后即可将本地文件anaconda - ks.cfg 拷贝到远程主机的/tmp目录下2。
- 远程主机文件拷贝到本地:例如[root@localhost~]#scproot@192.168.112.130:/tmp/anaconda - ks.cfg/root ,输入远程主机密码后即可将远程主机/tmp目录下的anaconda - ks.cfg 文件拷贝到本地的/root目录下2。
- 免密远程登陆及免密远程拷贝设置
- 在A计算机root用户的命令行输入ssh - keygen--trsa,生成密钥对(适用于想要设置免密操作的情况)2。
telnet服务使用21号端口,明文传输信息
ssh服务使用22号端口,密文传输信息
配置服务实验
1,分别查看试验机IP地址
客户端
服务端
2,在客户端检测双方连通性
3,密码认证进行登录
4,密钥认证
客户端生成密钥对
- 对称加密:两公钥/两私钥
- 非对称加密:一公钥一私钥(默认是rsa非)
客户端将公钥上传给服务器
客户端使用私钥和服务器的公钥进行匹配
5,在服务端禁用root登录
修改配置文件
修改第38行被注释的命令
重启sshd服务
在客户端上测试登录服务端
6,主机文件上传与下载
下载 scp [可选参数] file_source file_target
scp local_file remote_username@remote_ip:remote_folder
声明:部分内容来自于网络,如有侵权联系删除