OPENSSH 详解
一、什么是Openssh
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
知识延伸:
ssh协议有两个版本:
v1:基于CRC-32 做MAC,不安全; (一般用于实现主机认证)
v2:基于协议协商选择双方都支持的最安全的MAC机制
基于DH做密钥交换,基于RSA或DSA实现身份认证,从而实现无需输入账号面膜
客户端通过检查服务器端的主机秘钥来判断是否能够继续通信;
认证方式:
1、基于口令的认证
2、基于密钥的认证
二、为什么要使用OpenSSH
由于传统的telnet、rcp ftp等工具是明文传输数据的,对数据安全性存在很大的安全隐患,而OpenSSH可以对传输的数据进行加密从而大大提高了数据的安全性。
三、OpenSSH程序简介
1、OpenSSH的分为客户端和服务端两部分
Clients端的配置文件:/etc/ssh/ssh_config
Server端的配置文件:/etc/ssh/sshd_config
Server端服务脚本:/etc/rc.d/init.d/sshdOpenSSH在Linux系统中默认是安装并启动的
openssh 主要的关键包有四个
openssh.x86_64 5.3p1-104.el6 //服务端和客户端的公共组件
openssh-askpass.x86_64 5.3p1-104.el6 //
openssh-clients.x86_64 5.3p1-104.el6 //客户端安装包
openssh-server.x86_64 5.3p1-104.el6 //服务端安装包
openssl-clients 几个常用文件
[root@1inux ssh] # rpm -ql openssh-clients
/etc/ssh/ssh_config //客户端配置文件
/usr/bin/scp //远程复制文件
/usr/bin/sftp //远程文件共享
/usr/bin/slogin
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan
openssl-server 几个常用文件
/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
2、服务器端配置文件/etc/ssh/sshd_config 主要参数详解
服务端配置文件是让别人登陆时使用的
注:配置文件中使用“#”注释掉的一般就是使用默认
#Port 22 //默认端口号,为了其安全一般要更改为其他端口
#AddressFamily any //说明要监听任意地址
#ListenAddress 0.0.0.0 //监听本机所有IPV4的ip
#ListenAddress :: //监听本机所有的IPV6的地址
Protocol 2 监听的协议版本
# HostKey for protocol version 1 //说明key的协议版本
SyslogFacility AUTHPRIV //使用AUTHPRIV 记录日志
#LogLevel INFO //log日志级别
#Authentication: //认证相关
#LoginGraceTime 2m //登陆宽限时长 默认2分钟不登录自动关闭
#PermitRootLogin yes //是否支持管理员直接登陆
#StrictModes yes //是否使用严格模式 (严格检查用户的某些相关信息)
#MaxAuthTries 6 //最大尝试次数 (6次以后终端断开)
#MaxSessions 10 //最大并发允许链接数 (超过 将拒绝)
#RSAAuthentication yes //是否支持RSA密钥认证
#PubkeyAuthentication yes //是否支持公钥认证
#AuthorizedKeysFile .ssh/authorized_keys //默认保存口令的文件
#PermitEmptyPasswords no //是否支持空密码登陆
PasswordAuthentication yesUsePAM yes //是否使用PAM 认证( 是一种统一认证框架)
X11Forwarding yes //是否转发图形界面请求 (可以打开远程服务器图形界面)
Subsystem sftp /usr/libexec/openssh/sftp-server
#UseDNS yes //是否允许DNS反解 比较浪费时间一般更改为no/etc/ssh/ssh_known_hosts //保存已经认可主机的文件
3、客户端配置文件/etc/ssh/ssh_config 主要参数详解
客户端配置文件时登陆别人的ssh使用的
#Host * //表示连接所有主机
#Port 22 //默认连接端口
#Cipher 3des //加密时使用的加密机制
#StrictHostKeyChecking ask //严格的主机秘钥检查 即第一次连接时是否询问
四、客户端ssh的使用
1、ssh的基本语法ssh [OPTIONS] [user]@server [COMMAND]-l user: 以指定用户身份连接至服务器;默认使用本地用户为远程登录时的用户;ssh user@serverssh -l user server
[root@1inux ~]# ssh centos@172.16.66.81
The authenticity of host ‘172.16.66.81 (172.16.66.81)’ can’t be established.
RSA key fingerprint is d6:3b:33:71:32:69:7a:dd:47:c2:49:03:ec:03:a1:5e.
Are you sure you want to continue connecting (yes/no)?
[root@1inux ~]# ssh -l centos 172.16.66.81
The authenticity of host ‘172.16.66.81 (172.16.66.81)’ can’t be established.
RSA key fingerprint is d6:3b:33:71:32:69:7a:dd:47:c2:49:03:ec:03:a1:5e.
Are you sure you want to continue connecting (yes/no)?
-p PORT:指明要连接的端口:
[root@1inux ~]# ssh -p 22 -l centos 172.16.66.81
The authenticity of host ‘172.16.66.81 (172.16.66.81)’ can’t be established.
RSA key fingerprint is d6:3b:33:71:32:69:7a:dd:47:c2:49:03:ec:03:a1:5e.
Are you sure you want to continue connecting (yes/no)?
-X :启用X11Forwarding,即转发X界面的请求;-x: 禁用;-Y: 启用信任的X11Forwarding2、ssh 基于秘钥的认证2.1、ssh-keygen语法:ssh-keygen [OPTIONS]-t {rsa|dsa} 密钥类型 一般使用rsa-b # 指明密钥长度-f /PATH/TO/OUTPUT_KEYFILE 指明密钥文件-P '' :指明加密密钥的密码,表示使用空密码
[root@1inux ~]# ssh-keygen -t rsa //生成密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_90 //定义保存的密钥文件名
Enter passphrase (empty for no passphrase): //要求对生成的密钥对加密,也可以不加密 输入两次回车就OK
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_90. //说明已经生成密钥
Your public key has been saved in /root/.ssh/id_90.pub. //说明已经生成公钥
The key fingerprint is:
7a:17:b3:e7:6f:54:a1:30:23:62:7c:04:37:10:52:08 root@1inux
The key’s randomart image is:
±-[ RSA 2048]----+
| E…+==+ |
| …+.o.+ . |
| . o . + . .|
| . .|
| S o . |
| . + . |
| . . o … |
| . . o . |
| .o. |
±----------------+
[root@1inux ~]#
[root@1inux ~]# ls .ssh/
id_90 id_90.pub known_hosts
[root@1inux ~]#
也可以指明秘钥路径 及密码
[root@1inux .ssh]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ‘’ //经测试 名字必须为id_rsa
Generating public/private rsa key pair.
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:
33:c3:f8:f3:2c:ed:88:cc:db:7a:97:5f:d0
OPENSSH 详解相关推荐
- linux安装openssh服务器的命令,ubuntu 安装openssh服务器的教程详解
1.安装openssh 首先得安装 openssl 和zlib 安装openssl ---下载openssl-1.0.1j.tar.gz,解压到/usr/openssl/目录下进入解压目录 执行./c ...
- Nmap扫描教程之基础扫描详解
Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在 ...
- ansible 详解
文章目录 一.ansible 简介 1.1 ansible 是什么? 1.2 ansible 特点 1.3 ansible 架构图 二.ansible 任务执行 2.1 ansible 任务执行模式 ...
- sshd系统自带启动脚本详解
SSH 为 Secure Shell 的缩写.sshd服务是linux系统中最经常使用的服务之一.由于其规避了明文传送口令.内容本文及中间人***的安全隐患,因此经常作为远程管理系统的首选方案.虽然各 ...
- java jsch api_详解Java使用Jsch与sftp服务器实现
在实际项目中常会遇到需要连接服务器获取文件的场景,如账务系统需要通过连接行方的sftp服务器拉取回单文件.本文将主要讨论使用Java中的jsch与sftp服务器实现ssh免密连接. 一.什么是SFTP ...
- SSH原理之图文详解
一.Telnet和SSH 1.Telnet Telnet是一个远程连接服务是一个C/S架构,具有Server端和Client端,Client通过telnet协议连接到服务器端,这是早期常 ...
- python编程入门与案例详解pdf-这些年我读过的技术经典图书(附电子版下载地址)...
C技术资料 1.<> 作者: 谭浩强 这是我推荐的第一本书, 也是我接触的第一本书, 为什么把它放在第一位, 因为我觉得这本书对我的影响很大, 感觉这本书的最大特点是: 内容很全面, 内容 ...
- 从程序详解拒绝服务***
从程序详解拒绝服务*** 拒绝服务(Denial of Service, DoS)***是最简单的网络***形式之一,它只阻止对服务或资源的访问,而不是试图窃取信息.DoS***有两种常见的形式:使 ...
- java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例
java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...
最新文章
- Oracle SQL 空值排序(Nulls)
- java实现手机短信验证全过程
- ASP.NET Core 3.x启动时运行异步任务(一)
- java ssm 多租户_(十一)java B2B2C 源码 多级分销springmvc mybatis多租户电子商城系统- SSO单点登录之OAuth2.0登录流程(2)...
- 项目管理(4):备战pmp
- pptx模块的图片框
- (转) 淘淘商城系列——Redis集群的搭建
- 极客学院视频源码资料
- vb连接mysql出现的问题_连接数据库问题用户定义类型未定义【vb6】
- session的removeAttribute()和invalidate()的区别
- web前端到底怎么学?干货资料!
- android滑动fragment,android中ViewPager结合Fragment进行无限滑动
- 计算机控制课设串级回路,计算机控制系统课程设计
- 芯片数据分析步骤5 过滤探针
- windows下CMD常用命令
- 购物直播APP开发系统方案
- UVALive 3713 Astronauts(2SAT)
- AM437X系列编译环境搭建
- 网络编程close与shutdown的区别
- 万豪国际集团在华运营酒店超过400家
热门文章
- class Model(nn.Module)
- 一次Linux线上系统page allocation failure问题处理实战记录
- HFS for Windows 9.0 安装注意事项 [2013-07-15更新]
- PhoneGap安装和使用教程
- 浏览器开发工具请求头与响应头属性介绍
- ios13 无法传参_小偷的终极克星!iOS13真正杀手锏:关机断网也可定位设备
- 火溶CEO王伟峰:Unity3D手机网游开发
- Arduino 和LCD1602液晶屏 I2C接口 万年历时钟可调
- Java 文件操作(File类)
- Qt软件开发_解决中文路径无法识别问题