SSH 配置

SSH

批量管理


SSH介绍

SSH是Secure Shell Protocol的简写,由IETF网络工作小组(Network working Group)指定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全

SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用SSH协议可以有效的放置远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密) 
在默认状态下,SSH服务主要提供了两个服务功能,一个是提供类似Telnet远程联机服务器的服务,即上面提到的SSH服务;另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务(vsftp,proftp

SSH客户端(SSH命令)还包含一个远程安全拷贝命令scp,也是通过ssh协议工作 
1.png-64.4kB

ssh小结

1、SSH是安全的加密协议,用于远程连接linux服务器 
2、SSH默认端口是22,安全协议版本SSH2,除了2之外还有SSH1(漏洞) 
3、SSH服务端主要包含两个服务协议SSH远程连接,SFTP服务 
4、Linux SSH客户端包含ssh远程连接命令,以及远程拷贝scp命令

SSH结构

SSH服务由服务端软件OpenSSH (openssl)和客户端(常见的有SSH(linux),SecureCRT,Putty,Xshell)组成,SSH服务默认使用22端口提供服务,它有两个不兼容的SSH协议版本分别是1.x和2.x

检查安装SSH

  1. [root@web01 ~]# rpm -qa openssh
  2. openssh-5.3p1-111.el6.x86_64 远程连接安装包
  3. [root@web01 ~]# rpm -qa openssl
  4. openssl-1.0.1e-42.el6.x86_64 加密安装包

OpenSSH同时支持SSH 1.x2.x 用SSH 2.x的客户端程序不能链接到SSH1.x的服务程序上

SSH服务是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求,SSH服务端的进程名为sshd,负责实时监听远程SSH客户端的连接请求,并进行处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。

SSH客户端包含ssh以及像scp(远程拷贝)slogin(远程登录)sftp(安全FTP文件传输)等应用程序

SSH的工作机制大致是本地的ssh客户端发送一个连接请求到远程的ssh服务器,服务器检查连接的客户端发送的数据包和ip地址,如果确认合法,就会发送密钥给SSH的客户端,此时,客户端本地再将密钥发回给服务端,自己建立连接。SSH1.x和SSH2.x在连接协议上有一些安全方面的差异

SSH加密技术

SSH加密技术是将人类可以看得懂的数据,通过一定的特殊的程序算法,把这些数据变成杂乱的无意义的信息,然后,通过网络进行传输,二挡到了目的地后,在通过对应的解密算法,把传过来的加密的数据信息解密成加密前的可读取的正常数据。因此,当数据在互联网上传输时即使被有心的黑客监听窃取了,也很难获取到真正需要的数据 
网络上的数据包加密技术一般是通过所谓的一对公钥私钥(Public key and Pivate key)组合撑的密钥对进行加密解密操作。 
2.png-42.2kB

SSH 1.x 
每一台SSH服务器主机都可以使用RSA加密方式来产生一个1024-bit的RSA Key 这个RSA的加密方式就是用来产生公钥和私钥的算法之一。 
当服务动时,就会产生一个768 bit的临时公钥存放在Server

  1. [root@m01 ~]# grep ServerKey /etc/ssh/sshd_config
  2. #ServerKeyBits 1024

3.png-80.8kB

SSH 2.x 
SSH 1.x的联机过程中,当Server接收Clinet端Private Key后,就不再针对该次联机的Key pair进行检验。若此时有而已黑客对该联机key pair插入而已的程序代码时,由于服务端你不会在检验联机的正确性,因此可能会接收该程序代码,从而导致系统被黑 
为了改正这个缺点,SSH version2多加了一个确认联机正确性的Diffie-Hellman机制 
在每次数据传输中,Server都会以该机制检查数据的来源是否正确,这样,可以避免联机过程中被插入而已程序代码的问题 
另外,SSH2同时支持RSADSA密钥,但是SSH1仅支持RSA密钥 
由于SSH1协议本身存在较大问题,建议使用SSH2的联机模式 
当Client端SSH联机请求传送过来时,Server就会将这个768-bit的公钥传给Client端 
此时Client会将此公钥与先前存储的公钥进行对比,看是否一致,判断标准是Client端联机用户目录下~/.ssh/known_hosts文件的内容(linux-客户端) 
1.png-109.2kB

不加用户默认是root 不加-p 指定端口 默认是22

  1. [root@m01 ~]# ssh -p52113 oldboy@10.0.0.41
  2. The authenticity of host '[10.0.0.41]:52113 ([10.0.0.41]:52113)' can't be established.
  3. RSA key fingerprint is 96:66:71:6c:ab:2f:8d:58:ce:2c:19:78:a7:ad:13:58.
  4. Are you sure you want to continue connecting (yes/no)?

不加账户默认是root

连接密码文件存放路径

  1. [root@backup /]# cat ~/.ssh/known_hosts
  2. 10.0.0.7 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3KsbWJYe6fa2by0asfaZluclFBDtJH61HYG/jxxNEXhVqkGfdp2vN6tHroTFSMPdOHNbqOZICP8YQRpS9UMddfeZxWpf/+HwJLe+40J5eCVY/YgVaDIUVJrxVgkUfB4/XBoUawhSoqLQELnQHVeayHLvQSiZmlFYTaQ0Vb7g+qO7cUHdxi5/1zCplJhq9TMbz78yfWrwvP3iX6x/QdBX72OKUSS02b7KSwhfGj76OX56BmnQx8fVMMotrxTtWuRqYAw+BBtAjr197SZ4J0aJagWHod6HDxA4yfYebB/RuBtmd2va4+TqQtq6N2zvZ7Z5ud2drpZZmruIdGg91mlMLQ==

如何防止SSH登录入侵:

1、用密钥登录,不用密码登录 
2、牤牛阵法:解决SSH安全问题 
3、防火墙封闭SSH,指定源限制(局域网,信任公网) 
4、开启SSH只监听本地内网IP(ListenAddress 10.0.0.8) 
5、尽量不给服务器外网IP

远程连接SSH服务

ssh基本使用语法 
ssh -p52113 oldboy@172.16.1.1 
1. 连接远程主机命令的基本语法 
2. -p小写接端口,默认22端口时可以省略-p22 
3. -@ 前面为用户名,如果当前用户连接,可以不指定用户 
4. @后面为要连接的服务器的IP

密钥存储路径

  1. [oldboy@m01 ~]$ cat ~/.ssh/known_hosts

如果端口已修改为特殊端口,那么用上面命令连接就会发生问题

  1. [oldboy@m01 ~]$ ssh -p22 oldboy@10.0.0.31
  2. ssh: connect to host 10.0.0.31 port 22: Connection refused #提示拒绝连接

保存的结果可能为: 
1、no route to hosts 可能为防火墙 
2、Connection refused 可能是防火墙,可能是连接端口错误

远程执行命令(最好全路径) ssh -p 22 root@10.0.0.1 /sbin/ifconfig

SSH小结:

1、切换到别的机器上 ssh -p52113 user@ip 
2、到其他机器执行命令(不会切到机器上) ssh -p 52113 user@ip 命令 
3、当第一次SSH连接的时候,本地会产生一个密钥文件~/.ssh/known_hosts

SSH客户端附带的远程拷贝scp命令

scp的基本语法使用:scp -sercure copy (remote file copy program) 
 PUSH 
scp -P22 -rp /tmp/oldboy oldboy@10.0.0.1:/tmp 
 PULL

  1. scp -P22 -rp root@10.0.0.1:/tmp/oldboy/ /tmp/

参数: 
#→ -P(大写)接接口,默认22 可以省略 
#→-r 递归,表示拷贝目录 
#→-p 表示在拷贝前后保持文件或目录属性 
# -l 限制速度

scp 知识小结:

1、scp是加密的远程拷贝,而cp仅为本地拷贝 
2、可以把数据从一台机器推送到另一台机器,也可以从其他服务器把数据拉回到本地执行命令的服务器 
3、每次都是全量完成拷贝,因此效率不高,适合第一次拷贝用,如果需要增量拷贝,用rsync

ssh服务附带的sftp功能服务

windows客户端和linux服务器之间传输数据工具:

1) rz、sz(lrzsz) 
2) winscp WinSCP-v4.0.5 基于SSH,sftp 
3) SFX(xshell) 4) SFTP 基于SSH加密传输 
5) samba,http,ftp,nfs 
FTP工具:vsftp、proftpd、SFTP

linux sftp客户端连接sftp服务方法

登录FTP的方法就是sftp oldboy@10.0.0.1 如果ssh端口为52113,则命令如下

  1. [oldboy@m01 ~]$ sftp -oPort=52113 oldboy@10.0.0.31
  2. Connecting to 10.0.0.31...
  3. sftp> cd /home/oldboy

#还可以像命令行那些切换目录

  1. sftp> put /etc/hosts #把/etc/hosts
  2. 从客户端本地传到nfs服务器当做连接目录
  3. Uploading /etc/hosts to /home/oldboy/hosts
  4. /etc/hosts 100% 349 0.3KB/s 00:00
  5. sftp>ls -l /home/oldboy #可以查看目录

SSH服务认证类型介绍

基于口令的安全验证:

基于口令的安全验证的方式就是大家现在一直在用的,只要知道服务器的SSH端口号口令,应服务器的IP及开放的端口,默认都为22,就可以通过ssh客户端登录到主机,此时联机过程中所有传输都是加密

基于密钥的安全验证:

基于密钥的安全验证方式是指,需要依靠密钥,也就是必须事先建立一对密钥,然后把公用密钥(Publickey)放在需要访问的目标服务器上,另外,个还需要把私有密钥(Private key)放到SSH客户端或对应的客户端服务器上

此时,如果要想连接到这个带有公用密钥的SSH服务器,客户端SSH软件或者客户端端服务就会想SSH服务端发出请求,请求用联机用户密钥进行安全连接。SSH服务会在收到请求之后,会现在改SSH服务器上连接的用户的加密路下 放上去的对应用户密钥,然后把它和连接的SSH客户端发来进行密钥,如果两个密钥一直SSH服务就会用公用密钥加密“质询”(challenge)并把它发送给SSH客户端 
2.png-19.7kB

3.png-198kB

更改ssh默认登录配置

修改SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd_config实现的 
一般来说SSH服务使用默认的配置已经够很好的工作,如果对安全要求不高,仅仅提供SSH服务的情况不需要修改任何配置 
sshd_config配置文件说明: 
4.png-41.2kB

优化SSH配置文件选项

  1. [root@m01 etc]# cp /etc/ssh/sshd_config{,.ori} 修改配置文件前进行备份
  2. [root@m01 etc]# vim /etc/ssh/sshd_config
  3. Port 52113 //ssh连接端口默认为22,修改端口号可以提高级别
  4. PermitRootLogin no //禁止root远程登录
  5. PermitEmptyPasswords no //禁止空密码的用户登录
  6. UseDNS no //不使用DNS进行解析
  7. GSSAPIAuthentication no //会导致SSH连接慢

SSH远程连接服务慢的解决方案

  1. 在这里我们可以使用`sed`进行一键替换
  2. [root@m01 etc]# sed -r '13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' /etc/ssh/sshd_config

准备工作

优化SSH

sed -i ’13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords 
no\nUseDNS no\nGSSAPIAuthentication no’ /etc/ssh/sshd_config

  1. sed -i '13 iPort 52113\nPermitRootLogin no \n 禁止root登录
  2. PermitEmptyPasswords no \n 禁止使用密码
  3. UseDNS no\n 禁用DNS
  4. GSSAPIAuthentication no' 禁用GSSAPI
  5. sshd_config

检查houst解析

  1. cat >>/etc/hosts/ <<EOF
  2. 172.16.1.5 lb01
  3. 172.16.1.6 lb02
  4. 172.16.1.7 web02
  5. 172.16.1.8 web01
  6. 172.16.1.51 db01 db01.etiantian.org
  7. 172.16.1.31 nfs01
  8. 172.16.1.41 backup
  9. 172.16.1.61 m01
  10. EOF结束

实验步骤

  1. [root@m01 /]# useradd oldboy
  2. [root@m01 /]# echo "123456"|passwd --stdin oldboy
  3. [root@m01 /]# id oldboy
  4. [root@m01 /]#su oldboy
  5. [oldboy@web01 ~]$ ssh-keygen -t dsa //非交互式创建密钥

#ssh-keygen是生产密钥的工具 -t参数是指定密钥的类型,这里是建立dsa类型密钥 
#也可以使用ssh-keygen -t rsa来建立rsa类型密钥 
#RSA与DSA加密算法的区别 
#RSA:是一种加密算法(PS:RSA也可以进行数字签名的)它的简写的来由是RonRivest、Adi Shamir和LeonAdleman 这三个姓氏加在一起就是RSA 
#DSA就是数字签名算法的英文全称的简写,即Digital Sigenature Algorithm=DSA 
RSA既可以进行加密,也可以进行数字签名实现认证,而DSA只能用于数字签名

脚本分发密钥

  1. yum install -y sshpass
  2. ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa &>/dev/null
  3. sshpass -p 123456 ssh -o StrictHostKeyChecking=no 用户名@主机名

一键产生密钥对:

  1. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
  2. echo -"\n"|ssh-keygen -t dsa -""
  1. [oldboy@web01 ~]$ ll -la
  2. total 28
  3. drwx------. 3 oldboy oldboy 4096 May 6 00:59 .
  4. drwxr-xr-x. 3 root root 4096 May 1 04:39 ..
  5. -rw-------. 1 oldboy oldboy 25 May 5 18:58 .bash_history
  6. -rw-r--r--. 1 oldboy oldboy 18 Jul 24 2015 .bash_logout
  7. -rw-r--r--. 1 oldboy oldboy 176 Jul 24 2015 .bash_profile
  8. -rw-r--r--. 1 oldboy oldboy 124 Jul 24 2015 .bashrc
  9. drwx------ 2 oldboy oldboy 4096 May 6 00:59 .ssh 注意权限
  1. [oldboy@web01 .ssh]$ ll
  2. total 8
  3. -rw------- 1 oldboy oldboy 668 May 6 00:59 id_dsa 私钥=钥匙
  4. -rw-r--r-- 1 oldboy oldboy 602 May 6 00:59 id_dsa.pub 公钥=锁

[oldboy@web01 .ssh]$ssh-copy-id -i id_dsa.pub oldboy@10.0.0.41 
ssh-copy-id 只能发公钥,不能发私钥 
-i 代表发送的文件 代表默认发送(端口22情况)

  1. [oldboy@web01 .ssh]$ ssh-copy-id -i id_dsa.pub “-p 52113 oldboy@10.0.0.41

代表改变端口-p 后面加上修改后的端口即可

  1. [oldboy@web01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldboy@172.16.1.31
  2. [oldboy@web01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub "-p52113 oldboy@172.16.1.41"

SSH免密码登录小结:

1)免密码登录是单向的,方向从私钥(钥匙)==》公钥(锁) 
2)SSH免密码登录基于用户的,最好不要跨不同的用户 
3)ssh连接慢的问题解决

例子:将本地hosts发送给指定的ip

第一种 sudo 提权实现没有权限用户拷贝

  1. [root@web01~]#echooldboyALL= NOPASSWD:/usr/bin/rsync ”>>/etc/sudoers
  2. [root@web01~]#visudo -c
  3. [oldboy@web01 ~]$scp -P52113 hosts oldboy@172.16.1.31:~ //最好发送到家目录下,直接发送到/下是没有权限
  4. [oldboy@web01 ~]$ssh -p52113 -t oldboy@172.16.1.31 sudo rsync ~/hosts /etc/hosts
  5. 需要授权sudo权限

第二种 利用suid实现没有权限用户拷贝(了解即可,不建议使用)

  1. [root@web01~]#chmod u+s `which rsync`
  2. [oldboy@web01 ~]$scp -P52113 hosts oldboy@172.16.1.31:~
  3. [oldboy@web01 ~]$ssh -p52113 oldboy@172.16.1.31 rsync ~/hosts /etc/hosts

第三种 使用root进行操作 
rsync使用

  1. rsync -avz hosts -e ssh -p 52113oldboy@172.16.1.31:~

1、可以增量备份 
2、使用ssh隧道加密传输

常用连接介绍:

1.png-34.5kB

发送文件脚本

  1. [cyh888@m01 ~]$ sh fenfa.sh hosts
  2. hosts 10.0.0.41 is ok [ OK ]
  3. hosts 10.0.0.31 is ok [ OK ]
  4. [cyh888@m01 ~]$ cat hosts
  5. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  6. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  7. 172.16.1.5 lb01
  8. 172.16.1.6 lb02
  9. 172.16.1.7 web02
  10. 172.16.1.8 web01
  11. 172.16.1.51 db01 db01.etiantian.org
  12. 172.16.1.31 nfs01
  13. 172.16.1.41 backup
  14. 172.16.1.61 m01
  15. ===================2016-05-08=====
  16. [cyh888@m01 ~]$

查看对方系统版本

  1. [oldboy@web01 ~]$ sh view.sh
  2. ====172.16.1.41====CentOS release 6.7 (Final)
  3. ====172.16.1.31====CentOS release 6.7 (Final)
  4. [oldboy@web01 ~]$ cat view.sh
  5. #!/bin/sh
  6. for n in 41 31
  7. do
  8. echo -n "====172.16.1.$n====" -n代表不换行
  9. ssh -p 22 172.16.1.$n cat /etc/redhat-release
  10. done
  11. [oldboy@web01 ~]$ sh view.sh "cat /etc/redhat-release"
  12. ====172.16.1.41====CentOS release 6.7 (Final)
  13. ====172.16.1.31====CentOS release 6.7 (Final)
  14. [oldboy@web01 ~]$ cat view.sh
  15. #!/bin/sh
  16. for n in 41 31
  17. do
  18. echo -n "====172.16.1.$n===="
  19. ssh -p 22 172.16.1.$n $1 $1脚本当中第一个参数
  20. done

[oldboy@web01 ~]$ sh view.sh “iostat” 查看系统中的IO

  1. ====172.16.1.41====Linux 2.6.32-573.el6.x86_64 (backup) 05/06/2016 _x86_64_ (1 CPU)
  2. avg-cpu: %user %nice %system %iowait %steal %idle
  3. 0.01 0.00 0.14 0.10 0.00 99.76
  4. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  5. scd0 0.00 0.01 0.00 264 0
  6. sda 0.18 4.90 0.77 99662 15746
  7. ====172.16.1.31====Linux 2.6.32-573.el6.x86_64 (nfs01) 05/06/2016 _x86_64_(1 CPU)
  8. avg-cpu: %user %nice %system %iowait %steal %idle
  9. 0.03 0.03 0.22 0.20 0.00 99.53
  10. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  11. scd0 0.00 0.00 0.00 264 0
  12. sda 0.51 14.88 12.88 1153072 997908
  1. [oldboy@web01 ~]$ sh view.sh "free -m"
  2. ====172.16.1.41====
  3. total used free shared buffers cached
  4. Mem: 475 107 367 0 11 34
  5. -/+ buffers/cache: 60 414
  6. Swap: 1023 0 1023
  7. ====172.16.1.31====
  8. total used free shared buffers cached
  9. Mem: 475 417 57 0 28 288
  10. -/+ buffers/cache: 100 374
  11. Swap: 1023 0 1023
  12. 脚本里面将echo -n中的-n取消即可

批量分发文件:(housts

  1. [oldboy@web01 ~]$ scp -P22 hosts 172.16.1.41:~
  2. hosts 100% 349 0.3KB/s 00:00
  3. [oldboy@web01 ~]$ scp -P22 hosts 172.16.1.31:~
  4. hosts 100% 349 0.3KB/s 00:00

脚本内容

  1. [oldboy@web01 ~]$ sh fenfa.sh
  2. hosts 100% 349 0.3KB/s 00:00
  3. hosts 100% 349 0.3KB/s 00:00
  4. [oldboy@web01 ~]$ cat fenfa.sh
  5. #!/bin/sh
  6. for n in 41 31
  7. do
  8. echo -n "====172.16.1.$n===="
  9. scp -P22 hosts 172.16.1.$n:~
  10. done

另一种方法:

  1. [oldboy@web01 ~]$ sh fenfa.sh hosts
  2. hosts 100% 349 0.3KB/s 00:00
  3. hosts 100% 349 0.3KB/s 00:00
  4. [oldboy@web01 ~]$ cat fenfa.sh
  5. #!/bin/sh
  6. for n in 41 31
  7. do
  8. echo -n "====172.16.1.$n===="
  9. scp -P22 $1 172.16.1.$n:~
  10. done

控制不输入任何命令进行操作

  1. [oldboy@web01 ~]$ sh fenfa.sh
  2. USAGE:/bin/sh fenfa.sh FILENAME
  3. [oldboy@web01 ~]$ cat fenfa.sh
  4. #!/bin/sh
  5. if [ $# -ne 1 ];then $#参数多少
  6. echo "USAGE:/bin/sh $0 FILENAME" $0脚本名字
  7. exit 1 1脚本执行后的状态
  8. fi
  9. for n in 41 31
  10. do
  11. echo -n "====172.16.1.$n===="
  12. scp -P22 $1 172.16.1.$n:~ 对应第一个执行命令
  13. done
  1. [oldboy@web01 ~]$ sh fenfa.sh
  2. USAGE:/bin/sh fenfa.sh FILENAME
  3. [oldboy@web01 ~]$ sh fenfa.sh hosts 成功ok 失败no
  4. dis hosts to 172.16.1.41 [ OK ]
  5. dis hosts to 172.16.1.31 [ OK ]

脚本内容

  1. #!/bin/sh
  2. . /etc/init.d/functions
  3. if [ $# -ne 1 ];then
  4. echo "USAGE:/bin/sh $0 FILENAME"
  5. exit 1
  6. fi
  7. for n in 41 31
  8. do
  9. scp -P22 $1 172.16.1.$n:~ &>/dev/null
  10. if [ $? -eq 0 ];then
  11. action "dis $1 to 172.16.1.$n" /bin/true
  12. else
  13. action "172.16.1.$n" /bin/false
  14. fi
  15. done

expect语言 解决非交互式输入密码的问题 
yum -y install expect 默认不存在需要安装

  1. [root@m01 ~]# which expect
  2. /usr/bin/expect

2.png-94.3kB

ssh+rsync+sersync简单易用 
Saltstack 
pupet 大网站用 
ansible (不需要客户端) 
cfengine (已淘汰)

SSH批量管理步骤:

1、ssh优化和hosts解析 
2、创建用户 
3、生成密钥对 
4、分发公钥到所有服务器 ssh-copy-id 
5、测试 远程连接ssh 远程执行命令ssh ifconfig 
远程拷贝文件scp rsync-e隧道模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器重启导致无法启动MySQL

今天服务器受到DDOS攻击&#xff0c;笔者脑残重启了一下服务器。结果造成MySQL服务器无法启动mysql日志见下图。160803 17:43:47 mysqld_safe Starting mysqld daemon with databases from /application/mysql/data160803 17:43:47 [Note] /application/mysql/bin/mysqld (mysq…

架构师之DNS实战

架构师 DNS实战 老男孩教育 DNS简介 1. DNS的出现及演化 网络出现的早起是使用IP地址通讯的&#xff0c;那是就几台主机通讯。但是随着接入网络主机的增多&#xff0c;这种数字标识的地址非常不便于记忆&#xff0c;UNIX上就出现了建立一个叫做hosts的文件&#xff08;Linux和W…

打包jar文件后的spring部署及hibernate自动建表经验总结

楔子 用springhibernate做一个服务器运行程序&#xff0c;在部署到服务器时&#xff08;打包成jar&#xff0c;在window server2008下运行&#xff09;&#xff0c;出现了以下两个纠结问题&#xff1a; 1. 加载不了Spring容器 2. hibernate.hbm2ddl.auto 到了服务器不能自动建表…

我是一个线程 [转]

我是一个线程&#xff0c;我一出生就被编了个号&#xff1a;0x3704&#xff0c;然后被领到一个昏暗的屋子里&#xff0c;在这里我发现了很多和我一模一样的同伴。 我身边的同伴0x6900 待的时间比较长&#xff0c;他带着沧桑的口气对我说&#xff1a;“我们线程的宿命就是处理包…

自动化运维之–Cobbler

Cobbler 自动化 Cobbler简介 Cobbler是一个快速网络安装linux的服务&#xff0c;而且在经过调整也可以支持网络安装windows。该工具使用python开发&#xff0c;小巧轻便&#xff08;才15k行python代码&#xff09;&#xff0c;使用简单的命令即可完成PXE网络安装环境的配置&…

开源jumpserver 堡垒机搭建

一、环境 CentOS 6.x x86_64 mini service iptables stop 关闭SELinux的方法&#xff1a; 修改/etc/selinux/config文件中的SELINUX”” 为 disabled &#xff0c;然后重启。 如果不想重启系统&#xff0c;使用命令setenforce 0 1.指定yum源 wget -O /etc/yum.repos.d/e…

Shell 变量及函数讲解 [2]

Shell 变量的输入 Shell变量除了可以直接赋值或脚本传参外&#xff0c;还可以使用read命令从标准输入获得&#xff0c;read为bash内置命令&#xff0c;可以通过help read查看帮助【语法格式】read [参数] [变量名]【常用参数】-p prompt&#xff1a;设置提示信息-t timeout&…

java大作业私人管家系统_重庆管家婆软件丨管家婆工贸PRO的E-MES管理详解

其实&#xff0c;ERP和MES在制造操作中扮演着独立而又互补的角色。ERP能将企业所有方面的数据进行实时、可用的全面集成&#xff0c;为管理决策提供高效、准确的业务决策支持;MES则能加强MRP计划的执行&#xff0c;把MRP计划同车间作业现场控制通过执行系统联系起来。这些“现场…

监控体系 [精]

监控体系 zabbix 监控对象&#xff1a;     1. 监控对象的理解&#xff1a;CPU是怎么工作的&#xff0c;原理     2. 监控对象的指标&#xff1a;CPU使用率 CPU负载 CPU个数 上下文切换     3. 确定性能基准线&#xff1a;怎么样才算故障&#xff1f;CPU负载多…

vs 设置起始页不见了_发朋友圈屏蔽爸妈,结果不小心设置成了仅家人可见...场面一发不可收拾哈哈哈哈!...

一提到爸妈的朋友圈&#xff0c;就会想到养生鸡汤&#xff0c;中老年流量谣言&#xff0c;土味表情包而出于保护个人隐私拒绝被爸妈误解而遭受灵魂拷问的考虑很多人选择了两全其美的分组法给家人看到阳光可爱正能量的一面沙雕的一面只展现给沙雕网友们可如果不小心把屏蔽的内容…

KVM 安装

KVM介绍 Kernel-based Virtual Machine的简称&#xff0c;是一个开源的系统虚拟化模块&#xff0c;自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理&#xff0c;所以相对于Xen&#xff0c;其核心源码很少。KVM目前已成为学术界的主流VMM之…

彼聆智能语音机器人_电销行业的人工智能:智能语音电话机器人

随着人工智能的发展&#xff0c;越来越多的机器人出现在我们的日常生活中&#xff0c;用于电话营销公司的自动打电话机器人、快递公司用来送快递的机器人、餐厅里用来上菜的机器人&#xff0c;最近更是有一款会后空翻的机器人。机器人正活跃在各行各业中&#xff0c;代替人类去…

Shell 基础介绍 [1]

本文目录1.什么是Shell&#xff1f;2.脚本语言类型3.其他常用的脚本语句种类4.Shell脚本的建立和执行5.Shell 变量类型6.普通变量7.Shell 特殊重要变量8.Shell进程状态变量9.Parameter Expansion10.扩展&#xff1a;其他变量的替换11.变量的数值&#xff08;整数&#xff09;计…

c++创建二叉树_数据结构:查找(4)|| 平衡二叉树

在介绍平衡二叉树之前&#xff0c;应该先了解平衡因子的概念&#xff0c;平衡因子定义为左子树深度减去右子树深度&#xff0c;这个值的绝对值越大&#xff0c;非常容易理解它就对应着越不平衡的情况。一棵平衡的二叉树的平衡因子只能是1&#xff0c;0&#xff0c;-1如何构建一…

华睿相机sdk 开发_索尼发布相机远程操作SDK(软件开发工具包)

索尼从2020年12月9日开始&#xff0c;向开发者免费提供针对索尼数码相机的软件开发工具包“ Camera Remote SDK” 1.03版。“ Camera Remote SDK”开发的软件可以远程更改相机设置、并执行诸如快门释放&#xff0c;实时取景监视(如取景和对焦)之类的操作。支持的操作系统包括Wi…

Linux 字体颜色设置

本文主要介绍Linux 字体颜色的调整&#xff0c;常用于shell脚本当中。我们举一个例子&#xff1a;echo-e"\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色&#xff0c;前景白色&#xff0c;闪烁光标&#xff0c;输出字符“ME”&#xff0c;然后重新设置屏幕…

利用Unity实现AOP

.NET程序中&#xff0c;可以利用Unity来实现AOP&#xff0c;用来进行日志、缓存或权限的处理。这里我们来写一个简单的程序&#xff0c;让其实现简单的AOP功能。 1.使用NuGet&#xff0c;在项目中获取Microsoft.Practices.Unity。 2.新建一个ITalk类及其实现 public interface …

javascript数组的各种操作

用 js有非常久了&#xff0c;但都没有深究过js的数组形式。偶尔用用也就是简单的string.split(char)。这段时间做的一个项目&#xff0c;用到数组的地方非常多&#xff0c;自以为js高手的自己竟然无从下手&#xff0c;一下狠心&#xff0c;我学&#xff01;呵呵。学了之后才知道…

老男孩Shell企业面试题30道 [答案]

老男孩Shell企业面试题 shell 2016年9月7日 本文来自于老男孩教育,未经本人同意&#xff0c;禁止转载&#xff01;否则追究法律责任。 原文&#xff1a;http://oldboy.blog.51cto.com/2561410/1632876 企业面试题1&#xff1a; &#xff08;生产实战案例&#xff09;&#x…

深度优化LNMP之Nginx [1]

Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息一般来说&#xff0c;软件的漏洞都和版本有关&#xff0c;因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息&#xff08;例如&#xff1a;Web软件名称及版本号等信息&#xff09;&#xff0c;这样恶意的用户就很难…