十年网站开发经验+多家企业客户+靠谱的建站团队
量身定制+运营维护+专业推广+无忧售后,网站问题一站解决
[root@localhost~]#gpg-cvirtual_machine_reset_5.sh交互式解密:
gpg-dvirtual_machine_reset_5.sh.gpg非交互式:
[root@localhosttmp]#echo"cX0BCoWt1+qq9ZeKYCXTtxMQeiI"|gpg-c--no-tty--batch--passphrase-fd0virtual_machine_reset_5.sh[root@localhosttmp]#gpg--batch--passphrasecX0BCoWt1+qq9ZeKYCXTtxMQeiIvirtual_machine_reset_5.sh.gpg查看gpg版本:gpg-h
CentOS7的gpg是2.0.22,Ubuntu18.04的gpg是2.2.4
[root@localhosttmp]#ssh-keygen-f~/.ssh/id_rsa-P''-C'admin'5、ssh_config1、改端口号Port222、加主机[root@localhosttmp]#tail-5/etc/ssh/ssh_configHosttestboxHostName192.168.38.146UserrootPort2222IdentityFile~/.ssh/id_rsa就可以直接连了,默认是22端口6、ssh命令选项ProxyCommand
-q静默模式。大多数警告信息将不输出。-Whost:port请求客户端上的标准输入和输出通过安全隧道转发到host:port上,该选项隐含了"-N","-T",ExitOnForwardFailure和ClearAllForwardings选项-T禁止为ssh分配伪终端。-N明确表示不执行远程命令。仅作端口转发时比较有用。#ProxyCommandssh-q-W%h:%pgateway.example.com当跳板机用ssh当跳板机:
ssh-L[local_bind_addr:]local_port:remote:remote_portmiddle_hostroot@host3:~#ssh-L2222:192.168.38.154:80192.168.10.134-fNg通过这条神奇的命令,现在就可以通过访问192.168.10.135:2222来访问192.168.38.154:80了
其中"-L"选项表示本地端口转发,其工作方式为:host3主机监听2222端口;host3将192.168.38.154:80映射为本地2222;当有人访问192.168.10.135:2222时,本地ssh将此端口的数据包转发给192.168.10.134;192.168.10.134将数据包转发给192.168.38.154:80
该命令执行后,就把本机2222端口的流量转发给本机80端口了
可以发现,该命令执行后访问的还是本地IP的某一端口,所以叫本地转发
远程端口转发表示的是将远程端口的数据转发到本地。
看下面,远程端口转发使用的是-R,注意公网服务器要开启GatewayPorts
[root@hk-server~]#sed-i'$aGatewayPortsyes'/etc/ssh/sshd_config&&systemctlrestartsshd#这个必须得开,不然端口监听在127.0.0.1上[root@192-168-38-140~]#ssh-R2222:192.168.38.154:2247.75.136.95-fNg其工作方式为:192.168.38.140请求47.75.136.95上的ssh,在47.75.136.95上建立一个套接字监听2222端口,该端口是192.168.38.154:22的映射;当有主机连接47.75.136.95:2222时,此连接中的数据全部通过通过安全隧道转发给192.168.38.154:22
可以通过此方法,将内网搭建的博客网站映射出去,然后就可以通过公网访问了
再来一个:ssh-R12345:127.0.0.1:2247.75.136.95-fNg
[root@192-168-38-140~]#ssh-R12345:127.0.0.1:2247.75.136.95-fNg将请求转发给自己,该命令执行后,就可以通过47.75.136.95:12345来访问本地的192.168.38.140了
ssh-D[bind_addr:]portremote
ssh支持动态端口转发,由ssh来判断发起请求的工具使用的是什么应用层协议,然后根据判断出的协议结果决定目标端口
可以实现:让内网不能上网的服务器上网:
[root@192-168-38-140~]#ssh-D1080127.0.0.1-fNg然后192.168.10.135机器将火狐浏览器设置代理到socket代理:192.168.10.1341080
about:config将network.proxy.socks_remote_DNS设置为true,开启远程DNS
工作方式:我是192.168.38.140,我在本地监听1080,所有人都可以把数据转发到我的1080端口,我再把数据通过ssh隧道动态转发出去
UseDNSno#禁用DNS,解决连接慢GSSAPIAuthenticationno#不开启GSSAPI认证,解决连接慢Port9527#修改默认端口号PermitRootLoginyes#不允许root登陆PermitEmptyPasswordsno#禁止空密码登陆ssh_config的使用,将常用主机写到ssh_config或者~/.ssh/config里面,例如
HosttestboxHostName192.168.38.146UserrootPort2222IdentityFile~/.ssh/id_rsassh-agent管理密钥生产环境中经常对密钥加密,每次连接都需要输入密码,很麻烦,而且多个私钥时,也不用自己去指定ssh-agent全部管理了
启动ssh-agent
ssh-agent
添加私钥交给ssh-agent管理
ssh-add~/.ssh/id_rsa
列出ssh-agent管理的密钥
ssh-add-L
注意
使用ssh-add失败,提示Couldnotopenaconnectiontoyourauthenticationagent.执行:ssh-agentbash再试还有一种情况下比如,主机A需要通过主机B才能访问主机C的情况下,我们可能需要在B上保存私钥才可以,但是如果使用ssh-agent的agentforwarding功能后,就可以使用主机A登陆B和C了,而不用在B上保存私钥
比如google身份验证就是通过pam模块实现的
如何使用:epel源安装google-authenticator
家目录那个隐藏文件里面放着几个临时密码,防止手机丢了,可以自行在里面加几个密码,一次有效,
以pam_limits模块为例
先man看帮助
NAMEpam_limits-PAMmoduletolimitresourcesSYNOPSISpam_limits.so[conf=/path/to/limits.conf][debug][set_all][utmp_early][noaudit]DESCRIPTIONThepam_limitsPAMmodulesetslimitsonthesystemresourcesthatcanbeobtainedinauser-session.Usersofuid=0areaffectedbythislimits,too.Bydefaultlimitsaretakenfromthe/etc/security/limits.confconfigfile.Thenindividual*.conffilesfromthe/etc/security/limits.d/directoryareread.Thefilesareparsedoneafteranotherintheorderof"C"locale.Theeffectoftheindividualfilesisthesameasifallthefileswereconcatenatedtogetherintheorderofparsing.Ifaconfigfileisexplicitlyspecifiedwithamoduleoptionthenthefilesintheabovedirectoryarenotparsed.*可以看到,不管哪个用户,哪怕root都受到此限制的影响,且默认情况下,限制文件未/etc/security/limits.conf及/etc/security/limits.conf.d/.conf**
使用limit-a查看当前所有资源限制情况
[root@192-168-38-140pam.d]#ulimit-acorefilesize(blocks,-c)0datasegsize(kbytes,-d)unlimitedschedulingpriority(-e)0filesize(blocks,-f)unlimitedpendingsignals(-i)1779maxlockedmemory(kbytes,-l)64maxmemorysize(kbytes,-m)unlimitedopenfiles(-n)1024pipesize(512bytes,-p)8POSIXmessagequeues(bytes,-q)819200real-timepriority(-r)0stacksize(kbytes,-s)8192cputime(seconds,-t)unlimitedmaxuserprocesses(-u)1779virtualmemory(kbytes,-v)unlimitedfilelocks(-x)unlimited默认文件打开数太小,不够,生产中必须修改,ubuntu18.04现在默认都改大了,如下:
*softnofile128000*hardnofile256000rootsoftnofile128000roothardnofile256000