如何使用OpenSSH远程管理Linux服务器
作为Linux系统管理员,没有人不知道OpenSSH。SSH采用了密文的形式在网络中传输数据,实现了更高的安全级别,是Telnet服务的安全替代品,sshd是OpenSSH的服务端守护进程,而与之对应的Windows下客户端软件有很多,常用的有SecureCRT、putty等。通过SecureCRT远程连接Linux系统,不受网络速度和带宽的影响,无论是ADSL拨号上网还是56K的"猫"拨号上网,都能轻松连接,操作维护方便。SecureCRT的使用在前面章节已经有介绍,这里详细介绍OpenSSH服务端程序的配置。
OpenSSH在Red Hat Linux企业级版本中是默认安装的,一般的安装目录为/etc/ssh,对应的服务器配置文件为/etc/ssh/sshd_config。我们重点讲述这个配置文件中每个选项的含义。
2
1 [root@localhost ~]# vi /etc/ssh/sshd_config
2 Port 22
3 ("Port"用来设置sshd监听的端口,这里采用的是默认的端口号22)
4 #Protocol 2,1
5 (设置使用的ssh协议为ssh1或ssh2,如果仅仅使用ssh2,
设置为Protocol 2即可)
6 #ListenAddress 0000
7 ("ListenAddress"用来设置sshd服务器绑定的IP地址)
8 # HostKey for protocol version 1
9 #HostKey /etc/ssh/ssh_host_key
10 # HostKeys for protocol version 2
11 #HostKey /etc/ssh/ssh_host_rsa_key
12 #HostKey /etc/ssh/ssh_host_dsa_key
13 ("HostKey"用来设置服务器密匙文件的路径)
14 #KeyRegenerationInterval 1h
15 ("KeyRegenerationInterval"用来设置在多少秒之后
系统自动重新生成服务器的密匙(如果使用密匙)。重新生成
密匙是为了防止利用盗用的密匙解密被截获的信息)
16 #ServerKeyBits 768
17 ("ServerKeyBits"用来定义服务器密匙的长度)
18 SyslogFacility AUTHPRIV
19 ("SyslogFacility"用来设定在记录来自sshd的消息的时候,
是否给出"facility code")
20 #LogLevel INFO
21 ("LogLevel"用来记录sshd日志消息的级别)
22 #LoginGraceTime 2m
23 ("LoginGraceTime"用来设置如果用户登录失败,在切断
连接前服务器需要等待的时间,以秒为单位)
24 PermitRootLogin no
25 ("PermitRootLogin"用来设置超级用户root能不能用SSH登
录。root远程登录Linux是很危险的,因此在远程SSH登录Linux
系统时,这个选项建议设置为"no")
26 #StrictModes yes
27 ("StrictModes"用来设置SSH在接收登录请求之前是否检查
用户根目录和rhosts文件的权限和所有权。此选项建议设置为"yes")
28 #RSAAuthentication yes
29 ("RSAAuthentication"用来设置是否开启RAS密钥验证,
如果采用RAS密钥登录方式时,开启此选项)
30 #PubkeyAuthentication yes
31 ("PubkeyAuthentication"用来设置是否开启公钥验证,
如果采用公钥验证方式登录时,开启此选项)
32 #AuthorizedKeysFile ssh/authorized_keys
33 ("AuthorizedKeysFile"用来设置公钥验证文件的路径,
与"PubkeyAuthentication"配合使用)
34 # similar for protocol version 2
35 #HostbasedAuthentication no
36 #IgnoreUserKnownHosts no
37 ("IgnoreUserKnownHosts"用来设置SSH在进行
RhostsRSAAuthentication安全验证时是否忽略用户
的"$HOME/ssh/known_hosts"文件)
38 #IgnoreRhosts yes
39 ("IgnoreRhosts"用来设置验证的时候是否使用
"~/rhosts"和"~/shosts"文件)
40 PasswordAuthentication yes
41 ("PasswordAuthentication"用来设置是否开启密
码验证机制,如果是用密码登录系统,应设置为"yes")
42 PermitEmptyPasswords no
43 ("PermitEmptyPasswords"用来设置是否允许用口令为
空的账号登录系统,肯定是"no"了)
44 X11Forwarding yes
45 ("X11Forwarding"用来设置是否允许X11转发)
46 #PrintMotd yes
47 ("PrintMotd"用来设置sshd是否在用户登录的时候显示"/etc/motd"中的信息)
上面括号中带下划线的内容为注释,是对sshd_config配置文件中每个选项含义的解释,这里仅仅列出最常用的一些选项,也是我们给出的推荐配置。
对sshd_config文件配置完毕,接着重启sshd守护进程,使修改生效:
/etc/initd/sshd restart
/etc/initd/sshd restart
注意 这里要切记的是,重启sshd服务,一定要到Linux系统本机去执行,如果在SSH远程连接环境下重启sshd服务,你就会被关在门外!
最后一步是设置sshd服务开机自动启动,只需执行如下命令即可:
chkconfig --level 35 sshd on
chkconfig --level 35 sshd on
这样sshd服务会在系统运行级3和5下自动启动
secure shell protocol简称SSH,是由IETF网络工作小组(network working group) 制定,在进行数据传输之前, SSH先对联级数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递的数据安全
SSH是 专门为远程登录会话和其他网络服务(例如:rsync,ansible)提供的安全性协议 ,利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程连接服务器软件(例如:Telnet/23端口/非加密的)等
然后开始输入用户名
右击选中追踪流,在右侧再选中TCP流
即可显示数据包的全过程,圈中的部分是用户名,之所以每个单词重复出现,是因为数据有请求,有确认,所以会重复,去重以后就是用户名:shuai,密码:123456
在显示 yes/no 的时候,如果输入的 yes 就接收到了服务端发送过来的公钥信息,把这个信息放到了 /root/ssh/known_hosts文件 里
SSH服务由服务端软件 OpenSSH(Openssl) 和客户端 常见的有SSH(linux),secureCRT,putty,Xshell 组成SSH服务默认使用22端口提供服务, 他有两个不兼容的SSH协议版本,分别是1x和2x
如果在进行连接的时候出现以下情况,如何解决
基于口令的安全验证方式就是知道服务器的SSH连接账号和口令(也要知道对应服务器的IP地址及开放的SSH端口,默认为22端口)就可以通过SSH客户端登录到远程主机上面,此时联机过程中所有传输的数据都是加密的!
- 演示XSHELL及SSH客户端连接,口令验证测试
基于密钥的安全验证方式是指,需要依靠密钥,也就是必须事先建立一对密钥对,然后把 公用密钥(锁头:public key) 放在需要访问的目标服务器上,另外,还需要把 私有密钥(钥匙:private key) 放到SSH的客户端或对应的客户端服务器上
此时,如果想要连接到这个带有公用密钥的SSH服务器上,客户端SSH软件或者客户端服务器就会向SSH服务器发出请求,请用联机的用户密钥进行安全验证,SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下面寻找事先放上去的对应用户的公用密钥,然后把它和连接SSH客户端发送过来的公用密钥进行比较,如果两个密钥一直,SSH服务器就用公用密钥加密"质询(challenge)"并把它发送给SSH客户端!
SSH客户端收到"质询"之后就可以用自己的私钥解密,在把它发送给SSH服务器,使用这种方式,需要知道联机用户的密钥文件,与第一种基于口令验证的方式相比,第二种方式不需要在网络上传送口令密码,所以安全性更高了,这是我们也注意保护我们的密钥文件,特别是私钥文件,一旦被黑获取到,危险系数增大很多
修改SSH服务的运行参数,是通过修改配置文件 /etc/ssh/sshd_config 来实现的
一般来说SSH服务使用默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供SSH服务的情况,可以不需要修改任何参数配置
SSH服务监听参数说明
企业服务器被入侵案例
拉取:PULL
首先,先要获取到Linux的端的IP地址,进行查看ip地址的方式,可以直接命令行中直接输入ifconfig,就可以查看到ip地址信息。
然后可以从网上下载一个为ssh的客户端,下载完成后puttyexe的应用程序,直接双击这个应用程序即可。
这样就直接进入到putty客户端的界面中,在host name输入刚才记录的ip地址信息。
输入完成之后,这样就可以直接连接Linux的服务器中了,但还不能操作,需要先登录账号,login as中输入Linux的用户名
还需要账号的密码,直接输入密码,然后回车。
这样就直接ssh客户端可以直接操作远程中Linux服务器了。
0条评论