OpenSSH应用

OpenSSH,一种用于远程登录的应用程序;登录是指在一个系统中拥有在这个系统中运行的一个用户的身份,当用户满足登录到这个系统的一个口令时即可正常登录;为什么要使用OpenSSH呢?

Telnet是一种远程登录工具,他是系统自带的,但是Telnet在数据传输过程当中是以明文的形式传输的,这样就很容易被有心人抓包破解重要信息;而OpenSSH这种远程登录程序,他的所有传输过程都是加密的过程;这样就加大了中间人攻击的难度,它可以动态的设置加密密码,如dsa,rsa,ecdsa等;

SSH有两个版本,一个是SSH V1,一个是SSH V2;但是SSH V1在运行环节出现了很多严重的问题,所以一般不会有人去使用,如果一意孤行去使用,中间出新问题也只能自己去承担,支持使用的是V2版本的;SSH远程登录有两种方式,一种是基于口令的认证,即根据用户密码登录,一种是基于密钥对的形式,由客户端生成一对密钥对,私钥保存在客户端;将公钥发送给服务器中的某个用户的家目录中;当客户端要登录到服务器中的用户时,服务器通过公钥解密数据判断数据来源,来源正确则登录;

SSH口令认证:

ssh命令:

ssh [options]...[[email protected]]hostname [command]

常用选项:

-l user:指定此次使用哪个用户进行远程登录;,如果使用了此选项,则ssh

命令中的主机名前面的用户名需要省略;若如果没有使用-l选项指定用户,又没有             在主机名前面加上用户名,则ssh客户端程序默认使用本地主机当前登录的用户的用             户名作为此次登录的用户名;

-p port:指名用于访问远程服务器的目标端口号

实例:

处于centos7环境下的终端,经过远程登录命令ssh登录到了centos6.7的终端,可以看到的是,当   我们第一次远程登录时,他会让我们确认一下是否登录,下一次再登录时,就只需要输入用户密码即   可;如:

我们还可以是用这种方式进行远程登录:

SSH密钥对验证:

由客户端生成一对密钥,私钥由客户端保管,公钥发往服务器某个用户的家目录下;当远程登录   时,通过公钥验证客户端信息;

1.建立密钥对:

ssh-keygen:

-b bits:不同加密算法拥有不一样的密钥字节要求,如

RSA:最少768bits,默认2048bits;

DSA:明确指定1024bits;

ECDSA:256bits,384bits,521bits;

ED25519:忽略-b指定的长度;

-t:指定加密算法的类型;如rsa,dsa,ecdsa等;

-f filepath:指定密钥对存放的路径;

-P:设置私钥密码;可以在命令行设置,也可以在命令启动后,交互设置;

实例:

id_rsa.pub即为公钥;将其复制到服务器的某个用户的家目录下;通过ssh-copy-id命令;

ssh-copy-id:将密钥文件复制到另一个服务器中的用户

常用选项:

-i:指定密钥路径;

-p port:指定连接到的服务器端口;

实例:

在centos6.7,即[email protected]下,wjq这个用户的家目录下会产生一个.ssh的文件,里面     保存的就是客户端发往服务器的公钥;

当完成上述操作后,客户端就可以基于密钥对的形式登录到服务器端了;

scp:可以将客户端与远程主机之间建立数据传输;

两种使用情形:

推送:把我们的东西给别人

scp [option]... SRC HOST:/PATH/TO/DEST(将本地主机的SRC文件,传送到远程主机的DEST目录下)   拉取:把别人的东西拿过来

scp [option]...HOST:/PATH/TO/DEST SRC(将172.16.72.1主机的DEST文件放到本地主机的SRC目录下)

常用选项:

-r:递归复制,复制目录内容;

-p:保留原文件的权限信息;

-q:静默模式;不输出任何信息;

-P port:指明远程主机ssh协议监听的端口;

实例:将客户端的文本文件a传送到172.16.72.5下的wjq这个用户的家目录

172.16.72.5/home/wjq:

若想更改配置信息的话,可以配置文件/etc/ssh/ssh_config中更改,也可以在命令行中直接引用,如消去第一次登录时严格的认证;

其格式:

HOST pattern

OPTION1 VALUE

OPTION2 VALUE

如:

基于服务器端口的配置文件/etc/ssh/sshd_config

在该配置文件下,修改关于服务器的配置,对服务器所需要具备的功能作出调整;

配置文件的格式:

配置指令 值

常用配置指令:

Protocol 2:选择SSH协议版本,通常为V2;

Port 22:SSH服务要监听的服务端口,通常在生产环境中SSH服务的监听端口都不为22,这样       就可以避免一些恶意破坏;

PermitRootLogin yes:是否允许客户端以root用户身份登录,可以以普通用户的身份登录,       在进行root转换,通常为no;

ListenAddress 0.0.0.0:指明SSH服务要监听IP地址;

MaxAuthTries 6:密码输错次数;

UseDNS yes:是否允许使用DNS反向解析主机名;

AllowUsers user1 user2...:设置登录用户的白名单,明确规定只允许哪些用户进行远程登       录;

AllowGroups group1 group2...:设置组的白名单;

DenyUsers user1 user2...:设置登录用户的黑名单,明确规定只允许哪些用户进行远程登         录;

DenyGroups group1 group2...:设置组的黑名单;

在修改配置文件之后,为使得配置文件生效,必须将配置文件重启;

在CentOS7中systemctl reload sshd.service

在CentOS5,6中service sshd reload

综上所述,如何最好的实现ssh服务:

1.不要使用root登录;

2.一定要使用口令的方式登录时,密码设复杂点;

3.最好使用密钥对登录;

4.不要使用V1协议;

5.IP地址的监听要监听特定的IP地址,不要是0.0.0.0;

6.Port端口不要是22;

7.设置黑白名单;

8.设置空闲会话的超时时长;

9.做好日志;

10.设置ssh的访问频度;

11.禁止使用空密码;

dropbear:作为SSH的另一种表现形式,也具有远程登录的功能,是一种轻量级的实现方案,多用于         嵌入式环境;

dropbear程序在系统中是没有的,需要我们自己手动编译安装;

编译安装的步骤:

1.首先上网下载一个dropbear的源代码包,并使用tar -xf命令解压;

2.进入源代码包,cd 源代码包;

3.执行./configure生成makefile文件;

4.执行过程中出错,我们需要安装一个小程序,zlib-devel;使用yum安装即可;

5.安装完后重新执行./configure

6.执行make命令,当需要部分功能时,可编译一部分代码,如

只编译三个功能;

7.执行make install命令,若只编译了上述三个功能,则在其后加一个install继续执行即可;

8.安装成功,可使用dropbear -h验证是否成功;

dropbear的使用:

dropbear可以通过交换密钥的方式构建出远程服务器与客户端主机的桥梁;但dropbear的使用必需先创建三个dropbear的配置文件用来存放密钥,分别是:

dropbear_rsa_host_key

dropbear_dss_host_key

三个配置文件分别针对于rsa,dss,ecdsa;

现在/etc下创建一个dropbear目录,用于存放这三个文件;

如:

dropbear_rsa_host_key

dropbear_dss_host_key

启动dropbear:

-p IP:port:设置当前服务器IP,并将dropbear远程访问的端口列出;

-F:使dropbear应用程序运行在前台,可观察到有哪些客户端登录登出服务器;

-E:将dropbear服务进程运行期间产生的信息从标准错误输出而不是写入到系统日志文件          (/var/log/message)

-w:不能使用root用户进行登录,但登录后可切换;

在另一台客户端主机,要想连接到已经启动dropbear的服务器端口就要使用如下命令

~]#ssh -p port [email protected]

当客户端进行登录后,就会在服务器端的前台界面下出现一条记录,表示该用户登录到服务       器,当客户端退出时,服务器这边还是会有客户端退出的记录;

如:

时间: 2024-10-11 00:30:41

OpenSSH应用的相关文章

openssl、openssh升级

近期公司应用需要用到https协议:Centos6.5自带的的openssl 1.0.1e版本存在名为"心脏出血"的漏洞. 环境:CentOS6.5_x86_64 准备相关的包openssh下载地址:http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssl相关包下载:http://www.openssl.org/source/pam相关包下载:http://pkgs.org/centos-6/centos-x

Linux(Centos)配置OpenSSH无密码登陆

最近在搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录. 在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的.telnet,因为其不安全性,在linux系统中被搁置使用了. " 公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub: 私钥文

RHEL6.5升级安装OPENSSH

openssh的运转需要openssl和zlib的支持,升级openssh最好同步升级openssl和zlib,避免出现不匹配的现象,此文只升级openssl和openssh. 1.安装telnet服务 # yum -y install telnet-server* # rpm -qa | grep telnet # vi /etc/xinetd.d/telnet 将disable字段改为no # chkconfig --list xinetd xinetd              0:关闭 

CentOS 6.6升级OpenSSH到最新版本7.5.p1

本文主要简单记录CentOS 6.6下OpenSSH升级步骤,安装编译所需工具包 yum install gcc pam-devel zlib-devel 一.升级原因7.4以下openssh版本存在严重漏洞:1.OpenSSH 远程权限提升漏洞(CVE-2016-10010)  2.OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)  3.Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)  OpenSSL>=1.0.1可以不用升级OpenS

四、远程连接与openssh

4.1.openssh简介 传统的网络程序都是采用明文传输数据和密码,如telnet.ftp等,存在很大的安全漏洞,黑客只需要使用一些数据包截取工具就可以获得包括密码在内的重要数据.正因如此,后来才出现了SSH (Secure shell,安全命令壳).SSH是由芬兰的一家公司所研发的加密通信协议,所有SSH传输的数据都是经过加密,可以有效防止数据的窃取以及'中间人'的攻击.SSH建立在应用层和传输层基础上的安全协议,监听tcp的22号端口,属于是文本协议.OpenSSH是SSH的替代软件,完全

简单的openssh自动升级脚本

在使用前需要注意: 在/tmp/123下面有这三个文件: zlib-1.2.11     openssh-7.4p1   openssl-1.0.2k 安装必要的工具 gcc以及其依赖包,建议直接用yum安装GCC 安装好TELNET 脚本执行完成后,先看SSH版本再重启服务. cd /tmp/123tar -zxvf zlib-1.2.11.tar.gzcd zlib-1.2.11 ./configure --prefix=/usr/local/zlibmakemake installmkdi

HP Unix openssl、openssh 升级

一.升级前请先启用telnet服务!防止远程ssh连接断开后无法连到服务器上. 二.准备好下面的5个包,这几个包是升级openssh和openssl所依赖的. 下面的包的官网下载地址是http://hpux.connect.org.uk/hppd/packages_popular.html gettext-0.19.8.1-ia64-11.31.depot.gz  libiconv-1.14-ia64-11.31.depot.gz openssh-7.4p1-ia64-11.31.depot.g

【linux基础】26、openssh基础

一.远程登录协议 1.telnet简介 以前,很少有人买得起计算机,更甭说买功能强大的计算机了.所以那时的人采用一种叫做Telnet的方式来访问Internet:也就是把自己的低性能计算机连接到远程性能好的大型计算机上,一旦连接上,他们的计算机就仿佛是这些远程大型计算机上的一个终端,自己就仿佛坐在远程大型机的屏幕前一样输入命令,运行大机器中的程序.人们把这种将自己的电脑连接到远程计算机的操作方式叫做"登录",称这种登录的技术为Telnet(远程登录). 2.Telnet的工作原理 当你

OpenSSH由5.3升级到7.3pl

第一步 准备升级包 openssh相关包openssh-7.3p1.tar.gzopenssl-1.0.2j.tar.gzzlib-1.2.8.tar.gz telnet相关包telnet-0.17-47.el6_3.1.x86_64.rpmtelnet-server-0.17-47.el6_3.1.x86_64.rpmxinetd-2.3.14-39.el6_4.x86_64.rpm远程操作选择telnet; 第二步 安装工具包 telnet安装 [[email protected] teln