Linux服务-openssh

1. 使用 SSH 访问远程命令行

1.1 OpenSSH 简介

OpenSSH这一术语指系统中使用的Secure Shell软件的软件实施。用于在远程系统上安全运行shell。如果您在可提供ssh服务的远程Linux系统中拥有用户帐户,则ssh是通常用来远程登录到该系统的命令。ssh命令也可用于在远程系统中运行命令。

常见的远程登录工具有:

  • telnet
  • ssh
  • dropbear
telnet      //远程登录协议,23/TCP
//一般用于测试端口或者接口是否开启
认证明文
数据传输明文 ssh //Secure SHell,应用层协议,22/TCP
通信过程及认证过程是加密的,主机认证
用户认证过程加密
数据传输过程加密 dropbear //嵌入式系统专用的SSH服务器端和客户端工具,一般应用于手机上

1.2 SSH 版本

openssh有两个版本,分别为v1和v2,其特点如下:

v1:基于CRC-32做MAC,无法防范中间人攻击

v2:双方主机协议选择安全的MAC方式。基于DH算法做密钥交换,基于RSA或DSA算法实现身份认证

关于密钥交换

协商生成密码的过程叫做密钥交换(Internet Key Exchange,IKE)

使用的是DH协议(Diffie-Hellman):

    A(主机) --> B(主机)

    p,g(大素数,生成数),在网络中传输的,公开的

    A:自己取一个随机数x

    B:自己取一个随机数y

    A:g^x%p --> B

    B:g^y%p --> A

    A:(g^y%p)^x=g^yx%p

    B:(g^x%p)^y=g^xy%p

这最后得出的g^xy%p就是最终的密钥

1.3 SSH 认证方式

openssh有两种认证方式,分别是:

  • 基于口令认证(即密码认证)
  • 基于密钥认证(非对称加密。有一对密钥,公钥(P)和私钥(S))

1.4 openSSH 的工作模式

openSSH是基于C/S架构工作的

服务器端    //sshd,配置文件在/etc/ssh/sshd_config
[root@CTL .ssh]# vim /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ # This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/usr/bin # The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value. # If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
.
.
.
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server 客户端
//ssh,配置文件在/etc/ssh/ssh_config
ssh-keygen //密钥生成器
ssh-copy-id //将公钥传输至远程服务器
scp //跨主机安全复制工具
$OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $ # This is the ssh client system-wide configuration file. See
# ssh_config(5) for more information. This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line. # Configuration data is parsed as follows:
# 1. command line options
# 2. user-specific file
# 3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end. # Site-wide defaults for some commonly used options. For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page. # Host *
# ForwardAgent no
# ForwardX11 no
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
.
.
.
# Send locale-related environment variables
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
SendEnv XMODIFIERS

1.5 Secure Shell 示例

//以当前用户身份创建远程交互式shell,然后在结束时使用exit命令返回到之前的shell

[root@CTL .ssh]# ssh 192.168.112.131
The authenticity of host '192.168.112.131 (192.168.112.131)' can't be established.
//生成了一个算法是SHA256得公钥
ECDSA key fingerprint is SHA256:dyCibeKTgTQDtKrGgYAKVnGsLcR/Necufp4Jvnx0cTc.
ECDSA key fingerprint is MD5:bb:a6:d4:16:be:40:d1:d9:ef:6b:89:c9:22:bb:bd:b0.
//问你是否信任所连接得主机,不信任则不连接
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.112.131' (ECDSA) to the list of known hosts.
root@192.168.112.131's password:
Last login: Mon Apr 1 14:24:13 2019 from 192.168.112.14
//此时从用户名得知已经登陆到另一台主机
[root@GUI ~]#
//以其他用户身份(remoteuser)在选定主机(remotehost)上连接到远程`shell`

[root@CTL .ssh]# ssh root@192.168.112.131
root@192.168.112.131's password:
Last login: Mon Apr 1 14:24:54 2019 from 192.168.112.14
[root@GUI ~]#
//以远程用户身份(remoteuser)在远程主机(remotehost)上通过将输出返回到本地显示器的方式来执行单一命令

//首先登陆一台主机查看自己IP
[root@GUI .ssh]# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:8e:77:9b brd ff:ff:ff:ff:ff:ff
inet 192.168.112.131/24 brd 192.168.112.255 scope global dynamic ens33
valid_lft 1191sec preferred_lft 1191sec
inet6 fe80::bc68:f1a3:4a1f:87fb/64 scope link
valid_lft forever preferred_lft forever
//在用另一台主机通过ssh来远程执行命令
[root@CTL .ssh]# ssh root@192.168.112.131 '/usr/sbin/ip a s ens33'
root@192.168.112.131's password:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:8e:77:9b brd ff:ff:ff:ff:ff:ff
inet 192.168.112.131/24 brd 192.168.112.255 scope global dynamic ens33
valid_lft 1783sec preferred_lft 1783sec
inet6 fe80::bc68:f1a3:4a1f:87fb/64 scope link
valid_lft forever preferred_lft forever
[root@CTL .ssh]#
//w命令可以显示当前登录到计算机的用户列表。这对于显示哪些用户使用ssh从哪些远程位置进行了登录以及执行了何种操作等内容特别有用
[root@CTL .ssh]# ssh 192.168.112.131
root@192.168.112.131's password:
Last login: Mon Apr 1 14:30:57 2019 from 192.168.112.14
//在切换到GUI主机使用w命令查看 可以看到192.168.112.14用户在登陆中
[root@GUI .ssh]# w
14:40:59 up 4:37, 2 users, load average: 0.00, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.112.1 10:03 3.00s 0.17s 0.01s w
root pts/1 192.168.112.14 14:40 2.00s 0.03s 0.03s -bash

1.5 SSH 主机密钥

ssh通过公钥加密的方式保持通信安全。当某一ssh客户端连接到ssh服务器时,在该客户端登录之前,服务器会向其发送公钥副本。这可用于为通信渠道设置安全加密,并可验证客户端的服务器。

当用户第一次使用ssh连接到特定服务器时,ssh命令可在用户的/.ssh/known_hosts文件中存储该服务器的公钥。在此之后每当用户进行连接时,客户端都会通过对比/.ssh/known_hosts文件中的服务器条目和服务器发送的公钥,确保从服务器获得相同的公钥。如果公钥不匹配,客户端会假定网络通信已遭劫持或服务器已被入侵,并且中断连接。

这意味着,如果服务器的公钥发生更改(由于硬盘出现故障导致公钥丢失,或者出于某些正当理由替换公钥),用户则需要更新其~/.ssh/known_hosts文件并删除旧的条目才能够进行登录。

//主机ID存储在本地客户端系统上的 ~/.ssh/known_hosts 中(家目录中的隐藏目录.ssh)
[root@CTL ~]# cat /root/.ssh/known_hosts
192.168.112.131 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJvfkdzYN1ayz0bbvSc5be4/rddT4r2q/DfLo6VtruJgNNsexqi5GzSJ7AGB1kECRSw4/eg1Z11x05bGjRJfL+8= //主机密钥存储在SSH服务器上的 /etc/ssh/ssh_host_key* 中(也就是不手动生成密钥的情况下会自动使用这里的密钥)
[root@CTL ~]# ls /etc/ssh/*key*
/etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ed25519_key /etc/ssh/ssh_host_ed25519_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub

2. 配置基于 SSH 密钥的身份验证

用户可通过使用公钥身份验证进行ssh登录身份验证。ssh允许用户使用私钥-公钥方案进行身份验证。这意味着将生成私钥和公钥这两个密钥。私钥文件用作身份验证凭据,像密码一样,必须妥善保管。公钥复制到用户希望登录的系统,用于验证私钥。公钥并不需要保密。拥有公钥的ssh服务器可以发布仅持有您私钥的系统才可解答的问题。因此,可以根据所持有的密钥进行验证。如此一来,就不必在每次访问系统时键入密码,但安全性仍能得到保证。

使用ssh-keygen命令生成密码。将会生成私钥/.ssh/id_rsa和公钥/.ssh/id_rsa.pub。

//使用ssh-keygen生成密钥时首先会询问你密钥文件存放的位置,默认是在/root/.ssh/id_rsa和id_rsa.pub
[root@CTL ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): //接着会询问你是否为你的私钥配置密码
Enter passphrase (empty for no passphrase): //最后会提示你密钥创建成功,私钥存放在id_rsa,公钥放在id_rsa.pub
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:
SHA256:XFV5J+RPAuuHQZBipB8yUyQ22/QAOWT+z2Tsi+cJcpw root@CTL
The key's randomart image is:
//RSA算法密钥一般为2048位
+---[RSA 2048]----+
| .B=* .o+oo. |
| +oOoo.o +o o|
| Boo.o o ooo|
| B + . o + |
| S + o . .|
| . B . |
| . E + |
| o o.o |
| .o+ |
+----[SHA256]-----+

注意:

生成密钥时,系统将提供指定密码的选项,在访问私钥时必须提供该密码。如果私钥被偷,除颁发者之外的其他任何人很难使用该私钥,因为已使用密码对其进行保护。这样,在攻击者破解并使用私钥前,会有足够的时间生成新的密钥对并删除所有涉及旧密钥的内容。

关于权限

生成ssh密钥后,密钥将默认存储在家目录下的.ssh/目录中。私钥和公钥的权限就分别为600和644。.ssh目录权限必须是700。

[root@CTL ~]# ll .ssh/
总用量 12
-rw-------. 1 root root 1679 4月 1 15:27 id_rsa
-rw-r--r--. 1 root root 390 4月 1 15:27 id_rsa.pub
-rw-r--r--. 1 root root 177 4月 1 14:24 known_hosts
[root@CTL ~]# ll .ssh/ -d
drwx------. 2 root root 57 4月 1 14:24 .ssh/
//注意使用ssh-copy-id命令传输密钥时
会在接受端生成一个authorized_keys文件,这个文件的权限必须是600

在可以使用基于密钥的身份验证前,需要将公钥复制到目标系统上。可以使用ssh-copy-id完成这一操作

通过ssh-copy-id将密钥复制到另一系统时,它默认复制~/.ssh/id_rsa.pub文件,如果想要指定复制的文件要使用-i选项

//ssh-copy-id的使用演示
[root@CTL ~]# ssh-copy-id 192.168.112.131
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/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
root@192.168.112.131's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '192.168.112.131'"
and check to make sure that only the key(s) you wanted were added. //在GUI主机上查看
[root@GUI .ssh]# ls
authorized_keys known_hosts
[root@GUI .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDX0r6w9kxBLQuvwuAzD7EyMCk/Lhwbh9vc61TkY25VboubUlXEsnc9hXkWgnHSsdXhO5wYCqWMfLUS7Xzb/L7VeRbu9QD0nlsVCRKSM0SavQ6jqFCkD3K/jemLjXmwQTE+DCGG3TAgaisq2wDUUpwQi5vU5d8Gmjv2PfLkuw2UVO3GGs95Wq9nRY7Jr/TmJ86+CGfZBAJMRmJvzwwQd5eeD4XgOOGN8Bjjfeq2rLBucEOCsjf4T++WOAj3RxnAKCMt+g2BE9ssVTbkab+SwhNLxB14gWjkcL0T4BfHQtk6j7H8V3Wr6348OF+48jFqdzyVLH5mitv2nTzJFZ+ZDlez root@CTL

使用ssh-copy-id传输密钥后在用ssh登陆不需要输入密码

[root@CTL ~]# ssh 192.168.112.131
Last login: Mon Apr 1 14:40:57 2019 from 192.168.112.14
[root@GUI ~]#

2.1 scp命令

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

//scp命令常用选项
-r //递归复制
-p //保持权限
-P //端口
-q //静默模式
-a //全部复制 //使用 scp 命令传送文件到远程主机
[root@CTL ~]# scp -r ./aaa/ 192.168.112.131:/root
111 100% 0 0.0KB/s 00:00
[root@GUI ~]# ls
aaa anaconda-ks.cfg initial-setup-ks.cfg
//使用 scp 命令从远程主机上下载文件到本地 [root@CTL ~]# scp -r 192.168.112.131:/root/bbb/ .
222 100% 0 0.0KB/s 00:00
[root@CTL ~]# ls
aaa anaconda-ks.cfg bbb
[root@CTL ~]# ls bbb/
222

3. 自定义 SSH 服务配置

虽然OpenSSH服务器通常无需修改,但会提供其他安全措施,可以在配置文件/etc/ssh/sshd_config中修改OpenSSH服务器的各个方面。

注意

/etc/ssh/sshd_config是服务端的配置文件

/etc/ssh/ssh_config可客户端的配置文件

PermitRootLogin {yes|no}    //是否允许root用户远程登录系统
PermitRootLogin without-password //仅允许root用户基于密钥方式远程登录
PasswordAuthentication {yes|no} //是否启用密码身份验证,默认开启

4. SSH 安全注意事项

  1. 密码应该经常换且足够复杂
[root@localhost ~]# openssl rand 20 -base64
Di9ry+dyV40xVvBHirsc3XpBOzg= //生成20位随机密码
  1. 使用非默认端口

注意:ssh服务默认端口为22,容易被别人扫描端口进行攻击,所以一般不使用默认端口

3. 限制登录客户端地址

4. 仅监听特定的IP地址

5. 禁止管理员直接登录

6. 仅允许有限制用户登录:AllowUsers,AllowGroups

7. 使用基于密钥的认证

8. 禁止使用空密码

9. 禁止使用SSHv1版本

10. 设定空闲会话超时时长

11. 利用防火墙设置ssh访问策略

12. 限制ssh的访问频度和并发在线数

13. 做好日志的备份,经常分析(集中于某台服务器)

4.1 sshd_config配置详解

Port 22          # SSH 预设使用 22 这个 port,您也可以使用多的 port !
              # 亦即重复使用 port 这个设定项目即可!
Protocol 2,1        # 选择的 SSH 协议版本,可以是 1 也可以是 2 ,
              # 如果要同时支持两者,就必须要使用 2,1 这个分隔了!
#ListenAddress 0.0.0.0   # 监听的主机适配卡!举个例子来说,如果您有两个 IP,
              # 分别是 192.168.0.100 及 192.168.2.20 ,那么只想要
              # 开放 192.168.0.100 时,就可以写如同下面的样式:
ListenAddress 192.168.0.100 # 只监听来自 192.168.0.100 这个 IP 的SSH联机。
                   # 如果不使用设定的话,则预设所有接口均接受 SSH
PidFile /var/run/sshd.pid      # 可以放置 SSHD 这个 PID 的档案!左列为默认值
LoginGraceTime 600     # 当使用者连上 SSH server 之后,会出现输入密码的画面,
              # 在该画面中,在多久时间内没有成功连上 SSH server ,
              # 就断线!时间为秒!
Compression yes      # 是否可以使用压缩指令?当然可以啰!
 
# 2. 说明主机的 Private Key 放置的档案,预设使用下面的档案即可!
HostKey /etc/ssh/ssh_host_key    # SSH version 1 使用的私钥
HostKey /etc/ssh/ssh_host_rsa_key  # SSH version 2 使用的 RSA 私钥
HostKey /etc/ssh/ssh_host_dsa_key  # SSH version 2 使用的 DSA 私钥
# 2.1 关于 version 1 的一些设定!
KeyRegenerationInterval 3600     # 由前面联机的说明可以知道, version 1 会使用
                   # server 的 Public Key ,那么如果这个 Public
                   # Key 被偷的话,岂不完蛋?所以需要每隔一段时间
                   # 来重新建立一次!这里的时间为秒!
ServerKeyBits 768           # 没错!这个就是 Server key 的长度!
# 3. 关于登录文件的讯息数据放置与 daemon 的名称!
SyslogFacility AUTH         # 当有人使用 SSH 登入系统的时候,SSH会记录资
                   # 讯,这个信息要记录在什么 daemon name 底下?
                   # 预设是以 AUTH 来设定的,即是 /var/log/secure             
                   # 其它可用的 daemon name 为:DAEMON,USER,AUTH,
                   # LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,
LogLevel INFO            # 登录记录的等级!嘿嘿!任何讯息!
                  
# 4. 安全设定项目!极重要!
# 4.1 登入设定部分
PermitRootLogin no     # 是否允许 root 登入!预设是允许的,但是建议设定成 no!
UserLogin no        # 在 SSH 底下本来就不接受 login 这个程序的登入!
StrictModes yes      # 当使用者的 host key 改变之后,Server 就不接受联机,
              # 可以抵挡部分的木马程序!
#RSAAuthentication yes   # 是否使用纯的 RSA 认证!?仅针对 version 1 !
PubkeyAuthentication yes  # 是否允许 Public Key ?当然允许啦!只有 version 2可以允许
AuthorizedKeysFile .ssh/authorized_keys
              # 上面这个在设定若要使用不需要密码登入的账号时,那么那个
              # 账号的存放档案所在档名!
# 4.2 认证部分
RhostsAuthentication no  # 本机系统不止使用 .rhosts ,因为仅使用 .rhosts 太
              # 不安全了,所以这里一定要设定为 no !
IgnoreRhosts yes      # 是否取消使用 ~/.ssh/.rhosts 来做为认证!当然是!
RhostsRSAAuthentication no # 这个选项是专门给 version 1 用的,使用 rhosts 档案在
              # /etc/hosts.equiv配合 RSA 演算方式来进行认证!不要使用
HostbasedAuthentication no # 这个项目与上面的项目类似,不过是给 version 2 使用的!
IgnoreUserKnownHosts no  # 是否忽略家目录内的 ~/.ssh/known_hosts 这个档案所记录
              # 的主机内容?当然不要忽略,所以这里就是 no 啦!
PasswordAuthentication yes # 密码验证当然是需要的!所以这里写 yes 啰!
PermitEmptyPasswords no  # 若上面那一项如果设定为 yes 的话,这一项就最好设定
              # 为 no ,这个项目在是否允许以空的密码登入!当然不许!
ChallengeResponseAuthentication yes # 挑战任何的密码认证!所以,任何 login.conf
                   # 规定的认证方式,均可适用!
#PAMAuthenticationViaKbdInt yes # 是否启用其它的 PAM 模块!启用这个模块将会
                   # 导致 PasswordAuthentication 设定失效!
 
# 4.3 与 Kerberos 有关的参数设定!因为我们没有 Kerberos 主机,所以底下不用设定!
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosTgtPassing no
 
# 4.4 底下是有关在 X-Window 底下使用的相关设定!
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
# 4.5 登入后的项目:
PrintMotd no # 登入后是否显示出一些信息呢?例如上次登入的时间、地点等
             # 等,预设是 yes ,但是,如果为了安全,可以考虑改为 no !
PrintLastLog yes     # 显示上次登入的信息!可以啊!预设也是 yes !
KeepAlive yes       # 一般而言,如果设定这项目的话,那么 SSH Server 会传送
             # KeepAlive 的讯息给 Client 端,以确保两者的联机正常!
             # 在这个情况下,任何一端死掉后, SSH 可以立刻知道!而不会
             # 有僵尸程序的发生!
UsePrivilegeSeparation yes # 使用者的权限设定项目!就设定为 yes 吧!
MaxStartups 10      # 同时允许几个尚未登入的联机画面?当我们连上 SSH ,
             # 但是尚未输入密码时,这个时候就是我们所谓的联机画面啦!
             # 在这个联机画面中,为了保护主机,所以需要设定最大值,
             # 预设最多十个联机画面,而已经建立联机的不计算在这十个当中
# 4.6 关于使用者抵挡的设定项目:
DenyUsers *        # 设定受抵挡的使用者名称,如果是全部的使用者,那就是全部
             # 挡吧!若是部分使用者,可以将该账号填入!例如下列!
DenyUsers test
DenyGroups test      # 与 DenyUsers 相同!仅抵挡几个群组而已!
# 5. 关于 SFTP 服务的设定项目!
Subsystem sftp /usr/lib/ssh/sftp-server

基本上,在系统中,除非有必要,否则请不要更改 /etc/ssh/sshd_config 这个档案的设定值!!需要注意的是最后一项,如果不愿意开放 SFTP 的话,将最后一行批注掉即可!

如果修改过上面这个档案(/etc/ssh/sshd_config),那么就必需要重新启动一次服务或主机

Linux服务-openssh的更多相关文章

  1. linux程序自启动和新建linux服务的方法

    1 linux创建自启动程序    自启动的两种方法,都经过自己测试.1.1 自启动程序方法1:    在etc/rc.local在里面加入/home/robin/code/autoruntest & ...

  2. 第11章 Linux服务管理

    1. 服务分类 (1)Linux的服务 ①Linux中绝大多数的服务都是独立的,直接运行于内存中.当用户访问时,该服务直接响应用户,其好处是服务访问响应速度快.但不利之处是系统中服务越多,消耗的资源越 ...

  3. 在 CentOS7 上将自定义的 jar 包注册为 linux 服务 service

    在 CentOS7 上将自定义的 jar 包注册为 linux 服务 service 1.在 /etc/rc.d/init.d/ 目录下创建一个名字和服务名完全相同的 shell 脚本文件 joyup ...

  4. linux笔记:linux服务管理

    linux服务的分类: 启动和自启动: 查询已经安装的服务: RPM包的默认安装路径: 独立服务的启动: 独立服务的自启动: 基于xinetd的服务的管理: xinetd服务的自启动: 源码包安装服务 ...

  5. Linux学习笔记(19) Linux服务管理

    1. 服务的分类 Linux服务可分为RPM包默认安装的服务和源码包安装的服务.前者可细分为独立的服务(直接作用于内存中)和基于xinetd服务.xinetd本身是独立的服务,其唯一的功能是管理其他服 ...

  6. [Linux]服务管理:rpm包, 源码包

    --------------------------------------------------------------------------------------------------- ...

  7. linux服务器之LVS、Nginx和HAProxy负载均衡器对比

    linux服务器之LVS.Nginx和HAProxy负载均衡器对比. LVS特点:  1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生:  2.稳定性.可靠性好,自身 ...

  8. 《如何将windows上的软件包或文件上传到linux服务上》

    昨天晚上朋友让我帮他简单的搭建个环境,他公司让他做款软件测试温度的,他自己搞的是嵌入式,在公司担任的是软件工程师,应届毕业生.也可能他们搞嵌入式的对这个linux系统不太熟,不会把windows上的软 ...

  9. linux服务端的网络编程

    常见的Linux服务端的开发模型有多进程.多线程和IO复用,即select.poll和epoll三种方式,其中现在广泛使用的IO模型主要epoll,关于该模型的性能相较于select和poll要好不少 ...

随机推荐

  1. vertical-align 详解

    vertical-align用来设置垂直对齐方式,所有垂直对齐的元素都会影响行高 值: baseline | sub | super | top | text-top | middle | botto ...

  2. 【three.js练习程序】创建地球贴图

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. Safari中的Date

    在js中处理Date时,发现Safari和其他浏览器的支持方式不一致 1.例如:2017-01-01 12:00:00 在其他浏览器中,使用这个格式的字符串进行new Date操作没有问题,但是在Sa ...

  4. 红帽7配置samba文件共享服务

    samba软件主要功能是为客户机提供共享使用的文件夹. 使用的协议是SMB(TCP 139).CIFS(TCP445). 所需的软件包:samba 系统服务:smb 1.安装samba服务 ~]#yu ...

  5. 针对于多个inner join或者left join多条件查询的时候,各个inner join 的指向问题

    转自https://blog.csdn.net/ck457897564/article/details/52487684 先看一段代码吧: <span style="font-size ...

  6. 50家硅谷IT公司技术博客

    分享一下 50 家硅谷优秀 IT 公司技术博客,从中可以了解企业文化,技术特色和设计语言,如果直接列出来很单调,加上点评,算吐槽版吧. 知名大厂   1. Facebook https://www.f ...

  7. How HashMap works in java 2

    https://www.javacodegeeks.com/2014/03/how-hashmap-works-in-java.html   Most common interview questio ...

  8. git status 显示中文和解决中文乱码

    目录 git status 显示中文和解决中文乱码 解决git status不能显示中文 解决git bash 终端显示中文乱码 通过修改配置文件来解决中文乱码 git status 显示中文和解决中 ...

  9. MySQL基础值 存储过程和函数

    一.创建存储过程和函数 什么是创建存储过程和函数? 就是将经常使用的一组SQL语句组合在一起,并将这些SQL语句当做一个整体存储在MYSQL服务器中. 创建存储过程的语句是:CREATE  PROCE ...

  10. SAP业务蓝图设计的一些想法

    SAP蓝图设计是面向业务流程的,目前国内很多软件公司在做蓝图设计(概要设计)都是面向功能的,而对于用户来说,需要的不是一个个功能点,而是要实现具体的业务.功能点是一个点,而业务流程是一条线.是在梳理业 ...