openssh与安全

★  ssh服务的最佳实践: ★

1     不要使用默认端口

2      禁止使用协议版本1

3      限制可登陆多用户,最好做一个白名单

4      设定空闲会话超时时长 (用户连上去无操作多长时间自动端看连接)

5      利用防火墙设置ssh的访问策略,例如仅允许哪些主机访问连接

6      仅监听特定的ip地址  (如果有多个ip,还是内外网,还有vpn,那就仅开通内网远程登录,通过远程vpn,再登录服务器)

7      基于口令认证时,要采用强密码策略 (不低于8位,常换,不用弱口令,各类字符都有)

8      使用基于秘钥的认证

9      禁止使用空口令

10    禁止管理员直接登录

11    限制ssh的访问频度(密码错了几次就断开)和并发在线数

12    做好日志分析,使用awk等做好统计/var/log/secure

ssh protocol  ssh协议的版本:

v1:不安全(有些老的程序只支持第一版,所以有时还是要开启)

v2:

Openssh:

sshd :配置文件 /etc/ssh/sshd_config

ssh: 配置文件   /etc/ssh/ssh_config

客户端程序ssh:

ssh 
[option] [[email protected]]host [COMMAND]

ssh -l user [option] host [COMMAND]

常用选项:

-l user   指定的用户登录远程主机

-p port   指明远程服务器的端口;为了服务器安全是要修改ssh的端口,

-b bind_ip  把服务绑定在某个ip上面,多ip时可以使用这个选项

-X :  支持x11转发

-Y :    支持信任的X11转发

X:协议,x-windows图形化窗口,也是C/S架构图形为C,主机为S

X11转发的作用:在本地显示远程主机上面的图形窗口,首先本地为X图形界面,或者提供了x server,并不需要远程主机上面有图形界面功能

-o    后面根特定的选项  
-o StrictHostKeyChecking=no不做严格的主机登录检查,不输入yes

-t    强制伪tty分配,你想连接的sshd服务器不能一次性到达,需要中间先登录一个sshd服务器,通过跳板机到达

~】#  ssh -t  remoteserver1 ssh remoteserver2

先连接远程主机1,通过远程主机分配伪终端,跳转到远程主机2

当然在此过程中你要先后输入两次密码了,(你懂得)

省略command则表示为登录这台主机;如果使用命令,则表示临时切换主机执行完指定命令后退出远程的主机

~】#   ssh 172.16.1.1               (使用本地登录用户名作为远程登录用户名,并不是root就是默认用户)

~】#   ssh [email protected]

~】#   ssh -p 20000  172.16.1.5

~】#   ssh 172.16.1.1 “shutdown -h now”   (关机你就连接不上了^_^)

~】#  ssh -o
StrictHostKeyChecking=no 172.16.1.4     第一次远程登录时跳过yes确认远程登录对象


[[email protected]
xinetd.d]# ifconfig eth0 | grep "inet addr:"

inet addr:172.16.1.2  Bcast:172.16.255.255  Mask:255.255.0.0

[[email protected]
xinetd.d]# ssh 172.16.1.1

[email protected]‘s
password:

Last
login: Wed Jun 29 23:20:39 2016 from 172.16.250.146

[[email protected]
~]# ip addr show eno16777736 | grep "inet\b"

inet 172.16.1.1/16 brd 172.16.255.255 scope
global eno16777736

[[email protected]
~]# exit

登出

Connection
to 172.16.1.1 closed.

[[email protected]
xinetd.d]# ssh 172.16.1.1 "ip addr show eno16777736 | grep ‘inet\b‘ "

[email protected]‘s
password:

inet 172.16.1.1/16 brd 172.16.255.255 scope
global eno16777736

接收的所有认可的服务器列表:~/.ssh/known_hosts   一个一行

ssh的配置文档/etc/ssh/ssh_config      修改文件则以后会成为默认

OPTION1 
VALUE

#开头的是默认的

vim /etc/ssh/ssh_config

StrictHostKeyChecking     no    以后登录远程主机不在第一次输入yes,采用非严格的远程登录

ssh主机认证:需要用到主机认证秘钥,此秘钥由服务器端维护和提供

ssh支持的用户认证:

基于口令的认证:用户输入账号和密码

基于秘钥的认证:用户提供一对密钥,私钥保留在客户端,公钥保存在远程服务器端

ssh基于秘钥的认证

ssh-keygen [-q] [-b bits] -t type   [-f output_keyfile]


-q


静默模式


-b

秘钥位数,512,1024,2048,4096,默认2048

-t


指明秘钥格式rsa,dsa,ecdsa椭圆曲线算法,最好使用rsa或者ecdsa


-f


保存到哪个文件当中

默认在~/.ssh目录下


-P


指明对私钥加密的密码


-v


调试模式

-C
压缩方式

-X
只是X11转发

-Y
只是信任X11转发

~】#    ssh-keygen -t ecdsa           会在~/.ssh目录下生成id_ecdsa私钥和id_ecdsa.pub一对

~】#    ssh-keygen -t rsa -P
‘‘   指明私钥密码为空密码,则会跳过让你指定私钥密码环节

注:每个用户的一对私钥和公钥是可以重复使用的,不用每次都执行一次创建一对秘钥,不然会覆盖原有的私钥和公钥,尤其是你已经开始使用了,如果还想链接更多台的服务器,直接使用已存在的公钥传输给其他用户


[[email protected]
~]# 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:

aa:a1:93:52:ca:12:82:64:13:7c:c9:0c:df:b5:f3:50
[email protected]

The
key‘s randomart image is:

+--[
RSA 2048]----+

|..+
.  . E       |

+-----------------+

在本地主机,将公钥复制到要登录的远程主机的某用户的家目录下的~/.ssh/authorized_keys  文件中(有特定命令)

ssh-copy-id [-i [identity_file]] [[email protected]]machine

~】#    ssh-copy-id -i  ~/.ssh/id_rsa.pub [email protected]

~】#    ssh-copy-id -i  ~/.ssh/id_rsa.pub [email protected]


[[email protected]
~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]

/usr/bin/ssh-copy-id:
INFO: attempting to log in with the new key(s), to filter out any that are
already installed

/usr/bin/ssh-copy-id:
INFO: 1 key(s) remain to be installed -- if you are prompted now it is to
install the new keys

[email protected]‘s
password:

Number
of key(s) added: 1

Now try
logging into the machine, with:  
"ssh ‘[email protected]‘"

and
check to make sure that only the key(s) you wanted were added.

[[email protected] ~]# ssh 172.16.1.2          这个时候是不需输入远程用户密码

Enter passphrase for key ‘/root/.ssh/id_rsa‘:       如果每有给私钥文件加密,那么直接可以登录成功

Last
login: Tue Jun 28 12:15:15 2016 from 172.16.250.146

之后在远程服务器上会在相应用户家目录下面的.ssh目录里面有一个authorized_keys文件

aushorized_keys文件可以存放一到多个远程公钥登录的公钥,一行一个(每行都很长所以在你看来占据了很多行),所以不要随便删除这个文件


[[email protected]
.ssh]# cat authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCpAJFy7QTadK0ghnq63+BZ7Qzm5FLZ4XeVyb1kNwis6GkfyltnX2fzaeR5nLTM6uWHacfahin6Khy9nPX02jDFNMBYGUHg6NXHQLdGihYxv20j1zv4aZRlIPicuqktDM+c2Nda6Yzufun52gQvEzr9HELKMMIkEn6rs4GrY6TO2rG3mV5e8TM++MoV8i+8VZOfKK+I5buEHvBaz+oaQ7Y++WOcuOHir8Nn/wOoOZYrHAa7+qtPKYtEmUmT1eHqnJzdt2lpB0HZNIUuRikSVCCdI6QLmLb7E5xyuZmNB8F6owyenrGmyaerB2whKqoUMHjxCQt8ipr/yOfd/wK5BJV
[email protected]

这是在远程服务器上的 一个本地登录的登录公钥,因为我这只设置了一个,所以只有这一个,一个,看起来很多行

----------------------

*********************

----------------------

SSH端口转发

v什么是SSH端口转发?

SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他TCP
端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他TCP
链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些TCP
应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH
的连接,也能够通过将TCP 端口转发来使用SSH 进行通讯

vSSH 端口转发能够提供两大功能:

加密SSH Client 端至SSH Server 端之间的通讯数据

突破防火墙的限制完成一些之前无法建立的TCP 连接。

v本地转发:

格式:-L localport:host:hostportsshserver

~】# ssh –L 9527:server1:23 -fN server2

本地端口:远程主机:远程主机端口  
-N 后制定跳板机

~】#telnet 127.0.0.1 9527

当访问本机的9527的端口时,被加密后转发到server2的ssh服务,再解密被转发到server1:23

dataàlocalhost:9527 àlocalhost:XXXXXàserver2:22àserver2:YYYYY àserver1:23

这里server2为跳板机

v选项:

-f 后台启用

-N 不开远程shell,一般是与-f搭配使用的

-g 启用网关功能

上图的步骤操作完成之后,会在后台打开这个隧道,当我们使用服务的时候就可以使用了:

~】# telnet 127.0.0.1 9527    在本地虽然是连接本地的端口,但是刚才我们已经开启了端口转发,有数据在这个端口走,就会通过ssh刚建立的隧道,传输到跳板机,跳板机再去帮你找服务

这样一个明文的telnet被封装到ssh协议里面,变得安全起来

v远程转发:

格式:-R sshserverport:host:hostportsshserver

~】# ssh–R 4000:server1:23 –N server2

让跳板机远程连接8023端口,家庭本地主机侦听8023端口的访问,如有访问,就加密后转发请求到家庭本机sshd服务,再由跳板机解密后转发到serve1:23

Dataàlocalhost:8023àlocalhos:22àserver2:XXXàserver2:YYYàserver1:23

localhost 为家庭本地主机,server2为跳板机

注:远程主机和本机主机两种端口转发虽然最后达到的效果一样,但是贼在数据流向和端口之间的切换有很大不同

SSH动态端口转发:

v需要配置动态端口的情况

当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问请求被转发到sshserver上,由sshserver替之访问internet

在本机firefox设置代理proxy:127.0.0.1:1080

格式:   
~】#  ssh -D 1080 [email protected]

scp命令: 与cp命令相似    基于ssh连接完成复制,跨主机加密以后完成数据传输

文件:

远程为目录,则复制到目录中,创建同名文件

远程为目录,且文件存在,覆盖

远程为文件,则覆盖

目录:  复制目录必须使用-r选项

远程为目录,则复制到这个目录当中,新建一个同名目录

远程为文件,不被允许

远程为非存在目录,则复制过去,之后重命名

存在两种情形:

PULL  :  scp
[options] [[email protected]]host:/path/to/somefile 
/path/to/somefile

源文件是远程的,目标文件是本地的,用远程主机上拽文件过来,要求指定用户对远程主机文件有读权限

PUSH:  scp [options]
/path/to/somefile [[email protected]]host:/path/to/somefile

源文件是本地的,目标文件是远程的,把文件推送动远程主机,要求指定用户对远程主机文件有写权限

rsync 命令 (因为cp只能是每次都要拷贝一次,在增量备份当中显得低效)

rsync就是通过ssh协议封装了sync,基于ssh和rsh服务实现高效率的远程系统之间复制文件

使用安全的shll连接作为传输方式,比scp更快,只复制不同的文件

~】# rsync -av /etc server1:/tmp         复制目录和目录下文件

~】#  rsync -av /etc/ server1:/tmp        只复制目录下的文件   ,所以看好了后面有没有/

~】# rsync -avz --delete /etc server1:/tmp  当/etc下面文件发生增删查改,再执行这条命令,远程同步主机的/tmp目录也会发生变化,结合crond可以实现数据同步


-n

 模拟复制过程
-v

显示详细过程
-r 递归复制目录树
-p

保留权限

-t


保留时间戳

-g 保留组信息
-o
保留所有者信息


-l

把符号链接文件做为符号文件进行复制
-L 将软链接文件指向文件复制
-a


存档模式,相当于–rlptgoD,但不保留ACL(-A)和SELinux属性(-X),同步所有

z 压缩

sftp命令:   (openssh 自带的一个组件)

ftp: file transfer protocol  明文传输

安全的文件传输机制:

ftps:   ftp over ssl

sftp:   ftp  over 
ssh

sftp:  C/S架构

S:由sshd服务进程管理,是sshd的一个子系统,在centos系统上的openssh上为默认启动状态,所以默认不用配置

C:即sftp

连接至远程主机:

~】#   ftp [email protected]

ftp> 
help

ftp> get 
file_name  /tmp                后者的/tmp是本地的目录,意为下载某文件到本地/tmp目录

ftp> !COMMAND        加上!表示命令作用于本地主机,而不是远程主机


[[email protected]
mnt]# sftp [email protected]:/boot

Connecting
to 172.16.1.1...

[email protected]‘s password:   在这里需要输入密码,如果做过ssh公钥认证,则直接跳过此步骤

Changing
to: /boot

sftp> ls

......省略

grub

grub2

sftp> cd /          可以任意切换远程主机上面的任意位置,只要你远程登录的用户有足够的权限

sftp>
ls

bin    boot  
dev    etc    home  
lib    lib64  media 
mnt    opt    proc  
root

run    sbin  
srv    sys    tmp   
usr    var

sshd (服务器端)

配置目录/etc/ssh目录

ssh_host_key       ssh_host_key.pub

ssh_host_dsa_key    ssh_host_dsa_key.pub

ssh_host_rsa_key    ssh_host_rsa_key.pub

这6个密钥文件是用于实现主机认证

配置文件:  /etc/ssh/sshd_config          操作前请备份

#空格开头的为纯注释

格式:   配置指令  值


port


端口,默认位22


AddressFamily


地址家族,监听ipv4或者ipv6

SyslogFacility 系统日志

LoginGraceTime


用户登录的等待时期,最多2分钟,2分钟不登录,自动断开连接


MaxAuthTries


输入密码错误最多几次,默认6,但6要除以2,也就是3次,2还是2,1就是1,4还是2降低辞职避免暴力破解

ListenAddress
指定监听的ip,默认为0.0.0.0,监听所有主机


Protocol


定义协议版本,默认为2(1.2版本)


LogLevel

日志级别

PermitRootLogin


是否允许root用户直接远程登录;可以给关闭,之后用普通用户远程登录,之后su进来,之后使用root用户

MaxSessions
最大会话数量,默认10,最多可以有10个终端同时远程登录

RSAAuthentication 默认为yes ,是否支持rsa的认证机制,指的基于公钥的用户认证,默认支持
PubkeyAuthentication
默认为yes,支持基于公钥的认证,它和上面的指令需要同时打开,才能生效


AuthorizedKeysFile


基于远程基于公钥认证的公钥存放的文件路径,默认~/.ssh/authorized_keys

RhostsRSAAuthentication 默认为no,与远程主机连接必须做RSA认证,一般我们远程连接主机,如果以前从没有通信过,远程主机会先发送一个它的一个密钥(它的公钥)给主机,我们需要通过yes后同意接受。如果把值改为yes,如果本地主机事先没有这个密钥,就无法建立连接,因此非常安全。我们可以先建立连接,等本地known_hosts文件记录了远程主机的公钥之后,我们再打开这项功能。也可以把这个公钥放到加密狗上面随身携带,这项功能安全,但是也意为这麻烦,秘钥没了你就要去机房了

PasswordAuthentication

默认为yes,是否允许基于口令远程登录,如果开启基于密钥认证,则建议关闭

UsePAM

默认为yes,基于PAM模块认证,系统认证功能必然会用到的机制

AcceptEnv

默认为yes,基于PAM模块认证,系统认证功能必然会用到的机制
X11Forwarding 默认yes,是否允许X11协议做转发
PrintMotd 默认为yes,是否在用户登录时打印Motd信息,    对应/etc/motd文件

PrintLastLog

默认为yes,是否显示用户上一次在几点几分通过什么终端登录,这样会泄露你的登录信息,建议关闭,反正你也知道你上次大概什么时候登录的,让别人看到反而不好

UseDNS

默认为yes,是不是每次登录的时候,都基于DNS反解对方的地址到主机名,建议改为no,因为有的时候因为网络问题,你可能会卡在远程登录那一会才能登进系统
Subsystem 子系统,运用程序为/usr/libexec/openssh/sftp-server

StrictModes

是否检查家目录相关文件权限是否正确,ssh远程时使用的文件
GatewayPort
支持端口转发

ClientAliveInterval
0永远不动,用户连接上,多长时间不动断开连接


ClientAliveCountMax


会话最大连接数


PermitTunnel


允许隧道,涉及到端口准发,可以开启这个选项,如果你要设置的话


Banner

指定自定义/etc/ssh.txt文件,之后用户ssh远程登录的时候会打印文件里面的内容

以上是配置文件中常用的,还有写没有写在配置文件中的可以man 文件手册

~】#  man sshd_config    查看服务配置文档的帮助文档

~】#  man ssh_config

~】#  man sshd                       查看sshd怎么使用

修改完配置文档,要想生效,需要reload一下

~】#   service sshd reload

6版本上:  服务脚本  -->  /etc/rc.d/init.d/sshd

7版本上:Systemd  Unit File  --->  
/usr/lib/systemd/system/sshd.service

~】#  systemctl reload sshd

限制可远程登录的用户

~】#  vim /etc/ssh/sshd_config

写入

AllowUsers        user1 user2  user3     空格隔开

Allowgroups     
group1

这是白名单

DenyUsers         
user1 user2

DenyGroups   
group1

这是黑名单

黑名单和白名单只能使用一个,如果同时使用那就拒绝大于允许

补充:  如果修改了sshd的端口,同时你开启了防火墙和selinux的话,首先要调整防火墙策略,改个端口,删了以前那条就行

对于selinux:

~ 】# tail
/var/log/messages   查看selinux的日志

~ 】# sealert -l
15d342-54ef-8982dfc6e0    这是根据日志提醒操作的

~ 】# semanage port -a -t
ssh_port_t  -p tcp 20000    这是其上命令建议的操作

~ 】# semange port -l | grep
ssh         查看是否添加端口成功

ssh 协议的另一个实现:dropbear

轻量化实现,多用户嵌入式方案当中,使用机制和openssh大致相同   (在无线路由器上就是这样允许远程登录的)

~】#  yum install dropbear
-y               (epel源里面有)

配置目录:/etc/dropbear

服务端程序:/usr/sbin/dropbear

客户端程序:/usr/bin/dbclient

为dropbear生成主机秘钥:/usr/bin/dropbearkey

~】#  dropbearkey -t rsa -s 2048
-f /etc/dropbear/dropbear_rsa_host_key

~】#  dropbearkey -t dss  -f /etc/dropbear/dropbear_dss_host_key     (因为dss只支持1024位,所以不用指定)

~】#  dropbearkey -t ecdsa -s 521
-f /etc/dropbear/dropbear_ecdsa_host_key (椭圆曲线,最长支持521位)

~】#  dropbear -p 20000 -E
-F

-E 为把标准输出从执行日志改为错误输出,这样信息就会显示在终端上

-F  前台运行,测试的时候使用这两项,平时打开,不用

-p  指定开启服务使用的端口,默认是22,但是这个和ssh冲突,测试需要修改,或者停sshd

另一台主机登录测试:

~】#  ssh -p 20000 172.16.1.1

~】#  dbclient-p 20000 172.16.1.1

如果测试都没有问题,可以开启服务了systectl命令开启此服务,但是因为不想使用默认端口22,我们需要

~】#  cat
/usr/lib/systemd/system/dropbear.service

EnvironmentFile=-/etc/sysconfig/dropbear

ExecStart=/usr/sbin/dropbear -E -F $OPTIONS

这两行的意思就是开启的时候,会调用/etc/sysconfig/dropbear文件里面的OPTIONS参数

~】#  vim
/etc/sysconfig/dropbear    文件为空

写入

OPTIONS=“-p 20000”

~】# systectl start dropber.service

~】#  ss  -tnl    显示20000端口是否监听

这里演示一下我们测试dropbear能够服务可以使用

首先我们要在服务端先建立好钥匙


[[email protected]
xinetd.d]# dropbearkey -t rsa -s 2048 -f /etc/dropbear/dropbear_rsa_host_key

Generating
key, this may take a while...

Public
key portion is:

ssh-rsa ....中间秘钥省略..... [email protected]

Fingerprint:
md5 90:6e:5e:ef:d0:1b:02:cb:4b:f5:18:3e:8b:6d:57:26

在这个时候我们就可以开启服务,远程登录可以通过rsa加密算法,但是为了更好的支持远程登录可以开启更多登录;

这个时候开启服务的话是可以用的,但是会报错,所另外两个算法的文件没有找见,但是远程登录是可以成功的


[[email protected]
xinetd.d]# dropbear -p 20000 -E -F

[4518]
Jun 30 10:47:36 Failed loading /etc/dropbear/dropbear_dss_host_key

[4518]
Jun 30 10:47:36 Failed loading /etc/dropbear/dropbear_ecdsa_host_key

[4518]
Jun 30 10:47:36 Not backgrounding

当然为了安全我们只是用一个远程登录的方式也是可以的

所以下面的步骤是可以省略的


[[email protected]
xinetd.d]# dropbearkey -t dss  -f
/etc/dropbear/dropbear_dss_host_key

Generating
key, this may take a while...

Public
key portion is:

ssh-dss
AAAAB3NzaC1kc3MAAACBANr0SlgJdM6AxlJ/

Fingerprint:
md5 30:69:94:3d:e6:14:2d:86:9e:9b:ec:a0:93:36:f2:37

[[email protected]
xinetd.d]# dropbearkey -t ecdsa -s 521 -f /etc/dropbear/dropbear_ecdsa_host_key

不管是开启一个加密算法,还是3个都开启,我们这个时候可以开启dropbear服务了,当然建议暂时关闭防火墙


[[email protected]
xinetd.d]# dropbear -p 20000 -E -F

[4523]
Jun 30 10:49:45 Not backgrounding

在本地客户端试图连接远程服务


[[email protected]
ssh]# ssh -p 20000 172.16.1.1

The
authenticity of host ‘[172.16.1.1]:20000 ([172.16.1.1]:20000)‘ can‘t be
established.

RSA key
fingerprint is 90:6e:5e:ef:d0:1b:02:cb:4b:f5:18:3e:8b:6d:57:26.

Are you
sure you want to continue connecting (yes/no)? yes

Warning:
Permanently added ‘[172.16.1.1]:20000‘ (RSA) to the list of known hosts.

[email protected]‘s
password:

或者通过dbclint连接


[[email protected]
ssh]# dbclient -p 20000 172.16.1.1

Host
‘172.16.1.1‘ is not in the trusted hosts file.

(ssh-rsa
fingerprint md5 90:6e:5e:ef:d0:1b:02:cb:4b:f5:18:3e:8b:6d:57:26)

Do you
want to continue connecting? (y/n) y

[email protected]‘s
password:

我们可以查看ip,是否已经远程登录成功,我这里本地为6,远程为7,能使用ip addr就说明ok了


[[email protected]
~]# ip addr show eno16777736 | grep ‘inet\b‘

inet 172.16.1.1/16 brd 172.16.255.255 scope
global eno16777736

我们在测试的 服务器端,因为我们开启了测试的前台显示,和输出为错误输出到终端,我们可以看到连接状况


[[email protected]
xinetd.d]# dropbear -p 20000 -E -F

[4523]
Jun 30 10:49:45 Not backgrounding

[4550]
Jun 30 10:50:26 Child connection from 172.16.1.2:59012

[4550]
Jun 30 10:51:00 Password auth succeeded for ‘root‘ from 172.16.1.2:59012

当本地客户端断开连接的时候就会显示


[4583]
Jun 30 11:07:04 Exit (root): Disconnect received

编译安装dropbear

v2、ftp://172.16.0.1/pub/Sources/sources/dropbear/dropbear-2013.58.tar.bz2    (马哥内网服务器)

v3、tar xf dropbear-2013.58.tar.bz2,

v4、less INSTALL  或者cat INSTALL  查看安装帮助信息

v5、./configure

v6、make PROGRAMS=‘dropbear scp dropbearkey
dbclient‘  这里注意一下,如果有ssh有scp,这里的的scp就别安装了

v7、make PROGRAMS=‘dropbear scp dropbearkey
dbclient‘ install

v8、ls /usr/local/sbin/ /usr/local/bin/

v9、/usr/local/sbin/dropbear -h

v10、mkdir /etc/dropbear

v11、dropbearkey -t rsa -f
/etc/dropbear/dropbear_rsa_host_key -s 2048

v12、dropbearkey -t dss -f
/etc/dropbear/dropbear_dsa_host_key

v13、dropbear -p :2222 -F -E ; ss –tnl  #前台运行,信息终端错误输出(测试用,正常启用的话,不用加-F和-E)

v14、ssh -p 2222 [email protected]

v15、dropbear -p :2222 #后台运行    (这是后台执行,测试成功就要执行这个,或者直接执行,不测试)

v16、dbclient -p 2222 [email protected]

时间: 2024-11-04 16:12:51

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应用

OpenSSH,一种用于远程登录的应用程序:登录是指在一个系统中拥有在这个系统中运行的一个用户的身份,当用户满足登录到这个系统的一个口令时即可正常登录:为什么要使用OpenSSH呢? Telnet是一种远程登录工具,他是系统自带的,但是Telnet在数据传输过程当中是以明文的形式传输的,这样就很容易被有心人抓包破解重要信息:而OpenSSH这种远程登录程序,他的所有传输过程都是加密的过程:这样就加大了中间人攻击的难度,它可以动态的设置加密密码,如dsa,rsa,ecdsa等: SSH有两个版本,

四、远程连接与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