游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

运维必备!Linux相关远程SSH运维总结分享

  对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下。
  bash:ssh:commandnotfound
  解决办法:yuminstallyopensshserveropensshclinets
  1。ssh登录时提示:Readfromsocketfailed:Connectionresetbypeer。
  尝试了很多解决方案均无效,无奈!卸载sshd,然后重新安装
  yumremoveopenssh
  rmrfetcssh
  yuminstallyopenssh
  systemctlstartsshd。service
  2。ssh远程登陆后的提示信息
  我们经常会使用中控机ssh信任跳转到其他机器上,但是不知道有没有运维朋友注意到ssh跳转成功后的终端显示的提示信息?
  这些提示信息,是为了方便我们在第一时间知道ssh跳转到哪台目标机上,也是为了避免长期频繁跳转后由于大意造成的误入机器操作的风险,我们通常会在ssh跳转到目标机器后显示一些提示信息,在一些国家,登入给定系统前,给出未经授权或者用户监视警告信息,将会受到法律的保护。如下:
  〔rootbastionIDC〕sshp22192。168。1。15
  Lastlogin:FriJul1513:26:532016from124。65。197。154
  HOSTNAME:monitserver
  IPADDRES:192。168。1。15
  IDC监控机
  那么上面的提醒信息是在哪设置的呢?
  做法一:其实很简单,这些信息是在目标机器的etcmotd文件里自定义的
  〔rootmonitserver〕catetcmotd
  HOSTNAME:monitserver
  IPADDRES:192。168。1。15
  IDC监控机
  做法二:在目标机器的etcsshsshdconfig文件里定义,然后重启sshd服务即可。这两种做法是一致的效果!
  Banneretcsshfile
  〔roothost1921681117〕catetcsshfile
  thisis192。168。1。117
  远程登陆:
  〔rootlinuxnode2〕ssh192。168。1。117
  thisis192。168。1。117
  〔roothost1921681117〕
  3。实现SSH无密码登录:使用sshkeygen和sshcopyid
  sshkeygen产生公钥与私钥对。
  sshcopyid将本机的公钥复制到远程机器的authorizedkeys文件中,sshcopyid也能让你有到远程机器的homeusername。ssh和。sshauthorizedkeys的权利。
  操作记录:
  1)第一步:在本地机器上使用sshkeygen产生公钥私钥对
  sshkeygentrsa一路默认回车
  这样就会在当前用户家目录下的。ssh目录里产生公钥和私钥文件:idrsa。pub、idrsa。可以将idrsa。pub公钥文件复制成authorizedkeys
  2)第二步:可以手动将本机的idrsa。pub公钥文件内容复制到远程目标机的。sshauthorizedkeys文件中,可以就可以实现ssh无密码登陆。
  当然,也可以在本机直接使用sshcopyid将公钥复制到远程机器中
  sshcopyidiroot。sshidrsa。pubuserip把本机的公钥拷贝到远程机器上,比如B机器
  也可以不加公钥路径,会默认加上
  sshcopyiduserip
  注意:
  sshcopyid将key写到远程机器的。sshauthorizedkey。文件(文件会自动创建)中
  对于非22端口(比如22222)情况下的sshcopyid的使用,需要这样用:
  sshcopyidiroot。sshidrsa。pubp22222root192。168。18。18
  3)这样,本机登录到上面远程机器(B机器)就不用输入密码
  sshuserip
  4。ssh登录失败,报错:Pseudoterminalwillnotbeallocatedbecausestdin
  现象:
  需要登录线上的一台目标机器A,但是不能直接登录(没有登录权限),需要先登录B机器,然后从B机器跳转到A机器。
  脚本如下:
  localhost:rootcatIDC7。sh
  !binbash
  sshroot101。201。114。106sshp25791root103。10。86。7
  但是在执行脚本的时候报错如下:
  Pseudoterminalwillnotbeallocatedbecausestdin
  原因:
  伪终端将无法分配,因为标准输入不是终端。
  解决办法:
  需要增加tt参数来强制伪终端分配,即使标准输入不是终端。
  在脚本里添加tt参数即可,如下:
  localhost:rootcatIDC7。sh
  !binbash
  sshroot101。201。114。106sshttp25791root103。10。86。7
  或者
  localhost:rootcatIDC7。sh
  !binbash
  sshtroot101。201。114。106sshttp25791root103。10。86。7
  5。ssh远程登陆缓慢问题
  解决办法:
  编译etcsshsshdconfig配置文件:
  UseDNSno
  GSSAPIAuthenticationno
  然后重启sshd服务即可!
  6。ssh登录出现:permissiondenied(publickey。gssapiwithmic)
  解决方法:
  修改etcsshsshdconfig文件,将其中的:
  PermitRootLoginno修改为yes
  PubkeyAuthenticationyes
  AuthorizedKeysFile。sshauthorizedkeys前面加上屏蔽掉
  PasswordAuthenticationno修改为yes
  最后重启sshd服务即可!
  7。ssh连接错误问题
  1)在使用ssh或scp或rsync远程连接的时候,出现如下报错:
  Addressmapstolocalhost,butthisdoesnotmapbacktotheaddressPOSSIBLEBREAKINATTEMPT!
  解决方法:
  修改本机sshconfig文件
  〔rootkvmserver〕vimetcsshsshconfig
  GSSAPIAuthenticationno
  〔rootkvmserver〕etcinit。dsshdrestart
  问题迎刃而解
  2)本机scp、rsync命令都已具备,但是在使用scp或rsync远程同步的时候报错:
  bash:scp:commandnotfound
  bash:rsync:commandnotfound
  原因:是由于远程机器上没有安装scp或rsync造成的!安装这两个命令即可
  yuminstallopensshclients
  yuminstallrsync
  3)远程ssh连接时错误TheX11forwardingrequestwasrejected!
  解决方法:
  将sshdconfig中设置X11Forwardingyes
  重启sshd服务。
  8。ssh连接超时被踢出问题
  当使用xshell,SecureCRT等客户端访问linux服务器,有时候会出现终端定期超时被踢出的情况。
  下面介绍三种方法来防止超时被踢出的方法,后两种情况的设置方法以及通过设置shell变量来达到此目的的方法:
  1、配置服务器
  vimetcsshsshdconfig
  1)找到ClientAliveInterval参数,如果没有就自己加一行
  数值是秒,比如你设置为120,则是2分钟
  ClientAliveInterval120
  2)ClientAliveCountMax
  指如果发现客户端没有响应,则判断一次超时,这个参数设置允许超时的次数。如3、5等自定义
  修改两项参数后如下:
  ClientAliveInterval120
  ClientAliveCountMax30不允许超时次数
  修改etcsshsshdconfig文件,将ClientAliveInterval0和ClientAliveCountMax3的注释符号去掉,将ClientAliveInterval对应的0改成60,没有就自己输入。
  ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔,默认是0,不发送。而ClientAliveInterval60表示每分钟发送一次,然后客户端响应,这样就保持长连接了。ClientAliveCountMax,使用默认值3即可。ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值,就自动断开。正常情况下,客户端不会不响应。
  重新加载sshd服务。退出客户端,再次登陆即可验证。
  3)重启sshdservice
  etcinit。dsshrestart
  2、配置客户端
  vimetcsshsshconfig
  然后找到里面的
  ServerAliveInterval
  参数,如果没有你同样自己加一个就好了
  参数意义相同,都是秒数,比如5分钟等
  ServerAliveInterval300
  3、echoexportTMOUT1000000root。bashprofile;source。bashprofile
  在Linux终端的shell环境中通过设置环境变量TMOUT来阻止超时。如果显示空白,表示没有设置,等于使用默认值0,一般情况下应该是不超时。如果大于0,可以在如etcprofile之类文件中设置它为0。
  9。ssh远程登陆,公钥授权不通过:Permissiondenied(publickey,gssapikeyex,gssapiwithmic)
  公司IDC机房服务器,之前做了跳板机环境,其他机器只允许从跳板机ssh无密码信任过去,并且在信任关系做好后,禁用了其他机器的密码登陆功能(sshdconfig文件里设置PermitEmptyPasswordsno)
  后来跳板机出现了问题,打算重装这台机器,重装前取消了其他机器里只允许跳板机ssh信任关系,并且恢复了密码登陆功能:
  〔rootbastionIDCssh〕vimetcsshsshdconfig
  PermitEmptyPasswordsyes
  〔rootbastionIDCssh〕servicesshdrestart
  修改后,当时在其他机器间是可以ssh相互登陆,当时没在意,以为一切ok了。
  可是,到了第二天,再次ssh登陆时,尼玛,居然报错了
  Permissiondenied(publickey,gssapikeyex,gssapiwithmic)。
  最后发现是selinux惹的祸!关闭它即可。
  1)临时关闭selinux
  〔rootbastionIDCssh〕setenforce0
  〔rootbastionIDCssh〕getenforce
  Permissive
  2)永久关闭
  〔rootbastionIDCssh〕vimetcsysconfigselinux
  SELINUXdisabled
  〔rootbastionIDCssh〕reboot重启系统才能生效
  说明:
  1)ssh可同时支持publickey和password两种授权方式,publickey默认不开启,需要配置为yes。
  如果客户端不存在。sshidrsa,则使用password授权;存在则使用publickey授权;如果publickey授权失败,依然会继续使用password授权。
  2)GSSAPI身份验证。
  GSSAPIAuthentication是否允许使用基于GSSAPI的用户认证。默认值为no。仅用于SSH2。
  GSSAPICleanupCredentials是否在用户退出登录后自动销毁用户凭证缓存。默认值是yes。仅用于SSH2。
  需要特别注意的是:
  GSSAPI是公共安全事务应用程序接口(GSSAPI)
  公共安全事务应用程序接口以一种统一的模式为使用者提供安全事务,由于它支持最基本的机制和技术,所以保证不同的应用环境下的可移植性。
  该规范定义了GSSAPI事务和基本元素,并独立于基本的机制和程序设计语言环境,并借助于其它相关的文档规范实现。
  如果我们在服务端打开GSSAPIAuthentication配置项,如下:
  〔rootserver〕vimetcsshsshdconfig
  。。。。。。。。
  GSSAPIAuthenticationyes
  GSSAPICleanupCredentialsyes
  那么在客户端登录服务端会用gssapikeyex,gssapiwithmic进行身份校验,同样客户端也要支持这种身份验证,如下:
  〔rootclient〕vimetcsshsshconfig
  GSSAPIAuthenticationyes
  GSSAPIDelegateCredentialsyes
  我们在客户端连接SSH服务端,如下:
  sshv192。168。1。11
  。。。。。。。。。。。。。。。。。
  debug1:Authenticationsthatcancontinue:publickey,gssapikeyex,gssapiwithmic,password
  debug1:Authenticationsthatcancontinue:publickey,gssapikeyex,gssapiwithmic,password
  debug1:Authenticationsthatcancontinue:publickey,gssapikeyex,gssapiwithmic,password
  debug1:Authenticationsthatcancontinue:publickey,gssapikeyex,gssapiwithmic,password
  我们看到如下的信息:
  debug1:UnspecifiedGSSfailure。Minorcodemayprovidemoreinformation
  Nocredentialscachefound
  debug1:Authenticationsthatcancontinue:publickey,gssapikeyex,gssapiwithmic,password
  debug1:Nextauthenticationmethod:gssapikeyex
  debug1:NovalidKeyexchangecontext
  说明SSH登录时采用GSSAPI的方式进行身份验证,但我们的系统不支持。
  最后如果我们不用这种方式进行身份验证的话,建议关闭这个选项,这样可以提高验证时的速度。
  10。ssh自定义安全设置
  1)为了ssh登陆的时候加一层保护,可以修改默认端口。修改ssh服务配置文件etcsshsshdconfig
  port2222
  这样远程连接时加短裤
  ssh192。168。1。83p2222
  2)ssh使用时加l后面跟用户名,表示登陆到对方的这个用户下面。
  sshlwangshibo192。168。1。83p2222
  等同于
  sshwangshibo192。168。1。83p2222
  3)限制ssh登陆的来源ip,白名单设置(hosts。allow优先级最高,具体参考:Linux服务器安全登录设置记录)
  一是通过iptables设置ssh端口的白名单,如下设置只允许192。168。1。024网段的客户机可以远程连接本机
  vimetcsysconfigiptables
  AINPUTs192。168。1。024ptcpmstatestateNEWmtcpdport2222jACCEPT
  二是通过etchosts。allow里面进行限制(如下),etchosts。deny文件不要任何内容编辑,保持默认!
  vimetchosts。allow
  sshd:192。168。1。,192。168。9。,124。65。197。154,61。148。60。42,103。10。86。7:allow
  sshd:all:deny
  4)仅允许特定的用户通过SSH登陆
  如不允许root用户登录;
  只允许几个指定的用户登录(比如wangshibo、guohuihui、liuxing用户)
  禁止某些指定的用户登录(比如zhangda,liqin用户)
  但是要注意:设置的这几个用户必须同时存在于本机和对方机器上
  修改ssh服务配置文件etcsshsshdconfig
  PermitRootLoginno将yes修改为no
  AllowUserswangshiboguohuihuiliuxing这个参数AllowUsers如果不存在,需要手动创建,用户之间空格隔开
  DenyUserszhagndaliqin这个参数DenyUsers如果不存在,需要手动创建,用户之间空格隔开
  也可以设置仅允许某个组的成员通过ssh访问主机。
  AllowGroupswheelops
  实例说明:
  1)只允许指定用户进行登录(白名单):
  在etcsshsshdconfig配置文件中设置AllowUsers选项。格式如下:
  AllowUsersrootgracekevinapp
  表示只允许grace用户、kevin用户通过ssh登录本机。
  AllowUsersroot192。168。10。10app192。168。10。11kevin192。168。10。13
  表示只允许从192。168。10。10登录的root用户、从192。168。10。11登录的app用户、从192。168。10。13登录的kevin用户可以通过ssh登录本机。
  2)只拒绝指定用户进行登录(黑名单):)
  在etcsshsshdconfig配置文件中设置DenyUsers选项。格式如下:
  DenyUserswangbolinanzhangyang
  表示拒绝wangbo、linan和zhangyang用户通过ssh登录本机。
  需要注意的是:
  AllowUsers、DenyUsers跟后面的配置之间使用TAB键进行隔开
  多个百名单或黑名单之间使用空格隔开
  例子:
  〔rootCentos6〕catetcsshsshdconfig
  。。。。。。。
  AllowUsersroot192。168。10。202app192。168。10。200kevin192。168。10。202
  〔rootCentos6〕etcinit。dsshdrestart
  〔rootCentos6〕catetcsshsshdconfig
  。。。。。。。
  AllowUsersrootappkevin
  〔rootCentos6〕etcinit。dsshdrestart
  〔rootCentos6〕catetcsshsshdconfig
  。。。。。。。
  DenyUserswangbolinanzhangyang
  〔rootCentos6〕etcinit。dsshdrestart
  如下,由于已经允许了app和root登录,则后面针对root192。168。10。202和app192。168。10。200的限制就无效了(两者别放在一起配置)
  〔rootCentos6〕catetcsshsshdconfig
  。。。。。。。
  AllowUsersapprootroot192。168。10。202app192。168。10。200
  〔rootCentos6〕etcinit。dsshdrestart
  还可以使用pam规则限制ssh登录
  1)允许指定的用户(比如kevin、grace账号)进行登录
  在etcpam。dsshd文件第一行加入,一定要在第一行,因为规则是自上而下进行匹配的。
  authrequiredpamlistfile。soitemusersenseallowfileetcsshusersonerrfail
  然后在etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名,不用重新启动sshd服务。
  最后重启sshd服务即可!
  操作如下:
  〔rootdockertest1〕vimetcpam。dsshd
  PAM1。0
  authrequiredpamlistfile。soitemusersenseallowfileetcsshusersonerrfail
  。。。。。。。。
  〔rootdockertest1〕touchetcsshusers
  〔rootdockertest1〕vimetcsshusers
  kevin
  grace
  〔rootdockertest1〕etcinit。dsshdrestart
  2)pam规则也可以写成deny的。比如拒绝kevin、grace账号进行登录
  操作如下:
  〔rootdockertest1〕vimetcpam。dsshd
  PAM1。0
  authrequiredpamlistfile。soitemusersensedenyfileetcsshusersonerrsucceed
  。。。。。。。。
  〔rootdockertest1〕touchetcsshusers
  〔rootdockertest1〕vimetcsshusers
  kevin
  grace
  〔rootdockertest1〕etcinit。dsshdrestart
  3)pam规则可以使用group限制。
  允许规则:
  authrequiredpamlistfile。soitemgroupsenseallowfileetcsecurityallowgroupsonerrfail
  禁止规则:
  authrequiredpamlistfile。soitemgroupsensedenyfileetcsecuritydenygroupsonerrsucceed
  操作如下:
  〔rootdockertest1〕vimetcpam。dsshd
  PAM1。0
  authrequiredpamlistfile。soitemgroupsenseallowfileetcsecurityallowgroupsonerrfail
  新建一个组,组名为bobo,然后将kevin和grace添加到这个bobo组内
  〔rootdockertest1〕groupaddbobo
  〔rootdockertest1〕gpasswdakevinbobo
  Addinguserkevintogroupbobo
  〔rootdockertest1〕usermodGbobograce
  〔rootdockertest1〕idkevin
  uid1000(kevin)gid1000(kevin)groups1000(kevin),1002(bobo)
  〔rootdockertest1〕idgrace
  uid1001(grace)gid1001(grace)groups1001(grace),1002(bobo)
  在etcsecurityallowgroups文件按中加入组名(注意如果不加root,则root就不能被允许登录了)
  〔rootdockertest1〕vimetcsecurityallowgroups
  bobo
  〔rootdockertest1〕etcinit。dsshdrestart
  如上设置后,则只有kevin用户能被允许登录!
  如果是禁止规则,则第一行改为下面内容:
  authrequiredpamlistfile。soitemgroupsensedenyfileetcsecuritydenygroupsonerrsucceed
  除此之外,禁止某些用户ssh登录,可以使用passwd或usermod命令进行账号锁定
  5)取消密码验证,只用密钥对验证
  修改ssh服务配置文件etcsshsshdconfig
  PasswordAuthenticationno
  PubkeyAuthenticationyes
  6)给账号设置强壮的密码:将密码保存到文本进行复制和粘帖就可以了
  yumyinstallexpect
  mkpasswdl128d8C15s10
  lVj。jgsKrf0cvtgmydqo7qPotxzxen9mefy?ej!kcaX2gQrcu2ndftkeamllznxiHikTagiVz0cMtqOcIypkpd,vvDkJhs3qsb:CiCqgtqdqvse5lssfmranbtx
  参数说明:
  l密码长度
  d多少个数字
  C大写字母个数
  s特殊符号的个数
  7)只允许通过指定的网络接口来访问SSH服务,(如果本服务器有多个IP的时候)
  仍然是修改etcsshsshdconfig,如下:
  ListenAddress192。168。1。15默认监听的是0。0。0。0
  这样,就只允许远程机器通过ssh连接本机的192。168。1。15内网ip来进行登陆了。
  8)禁止空密码登录
  如果本机系统有些账号没有设置密码,而ssh配置文件里又没做限制,那么远程通过这个空密码账号就可以登陆了,这是及其不安全的!
  所以一定要禁止空密码登陆。修改etcsshsshdconfig,如下:
  PermitEmptyPasswordsno这一项,默认就是禁用空密码登陆
  9)sshconfig和sshdconfig
  sshconfig和sshdconfig都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。sshdconfig的配置一般都比较熟悉,下面单独说下sshconfig针对客户端的配置文件:
  〔rootdns01dnsrsync〕catetcsshsshconfig
  Sitewidedefaultsforvariousoptions
  Host
  ForwardAgentno
  ForwardX11no
  RhostsAuthenticationno
  RhostsRSAAuthenticationno
  RSAAuthenticationyes
  PasswordAuthenticationyes
  FallBackToRshno
  UseRshno
  BatchModeno
  CheckHostIPyes
  StrictHostKeyCheckingno
  IdentityFile。sshidentity
  Port22
  Cipherblowfish
  EscapeChar
  下面对上述选项参数逐进行解释:
  Sitewidedefaultsforvariousoptions
  带表示该句为注释不起作,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置。
  Host
  Host只对匹配后面字串的计算机有效,表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换号使下面选项只针对该算机器生效。
  ForwardAgentno
  ForwardAgent设置连接是否经过验证代理(如果存在)转发给远程计算机。
  ForwardX11no
  ForwardX11设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAYset)。
  RhostsAuthenticationno
  RhostsAuthentication设置是否使用基于rhosts的安全验证。
  RhostsRSAAuthenticationno
  RhostsRSAAuthentication设置是否使用用RSA算法的基于rhosts的安全验证。
  RSAAuthenticationyes
  RSAAuthentication设置是否使用RSA算法进行安全验证。
  PasswordAuthenticationyes
  PasswordAuthentication设置是否使用口令验证。
  FallBackToRshno
  FallBackToRsh设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所以此选项应当设置为no。
  UseRshno
  UseRsh设置是否在这台计算机上使用rloginrsh,原因同上,设为no。
  BatchModeno
  BatchMode:批处理模式,一般设为no;如果设为yes,交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。
  CheckHostIPyes
  CheckHostIP设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为yes。
  StrictHostKeyCheckingno
  StrictHostKeyChecking如果设为yes,ssh将不会自动把计算机的密匙加入HOME。sshknownhosts文件,且一旦计算机的密匙发生了变化,就拒绝连接。
  IdentityFile。sshidentity
  IdentityFile设置读取用户的RSA安全验证标识。
  Port22
  Port设置连接到远程主机的端口,ssh默认端口为22。
  Cipherblowfish
  Cipher设置加密用的密钥,blowfish可以自己随意设置。
  EscapeChar
  EscapeChar设置escape字符。
  比如说,A机器的ssh端口是22,B机器的端口是22222,一般来说A机器ssh连接B机器的时候是使用p22222指定端口。但是可以修改A机器的etcsshsshconfig文件中的
  Port为22222,这样A机器ssh连接的时候就默认使用22222端口了。
  去掉SSH公钥检查的方法(交互式yesno)
  SSH公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击。但是在特定情况下,严格的SSH公钥检查会破坏一些依赖SSH协议的自动化任务,就需要一种手段能够绕过SSH的公钥检查。
  SSH连接远程主机时,会检查主机的公钥。如果是第一次连接该主机,会显示该主机的公钥摘要,弹出公钥确认的提示,提示用户是否信任该主机(Yesno)。当选择Yes接受,就会将该主机的公钥追加到文件。sshknownhosts中。当再次连接该主机时,就不会再提示该问题了。
  SSH公钥检查有好处,但首次连接时会导致某些自动化任务中断,或者由于。sshknownhosts文件内容清空,导致自动化任务中断。
  去掉SSH公钥检查的方法:
  1)SSH客户端的StrictHostKeyChecking配置指令,可以实现当第一次连接服务器时,自动接受新的公钥。只需要修改etcsshsshconfig文件,包含下列语句:
  StrictHostKeyCheckingno
  2)或者在ssh连接命令中使用oStrictHostKeyCheckingno参数
  〔rootpuppet〕sshp22222172。168。1。33oStrictHostKeyCheckingno
  或者
  〔rootpuppet〕sshp22222172。168。1。33oUserKnownHostsFiledevnulloStrictHostKeyCheckingno
  ssh登陆忽略knownhosts文件
  使用ssh登录远程机器,同时会把ssh信息记录在本地的。sshknownhsots文件中。如果出现ssh冲突了,需要手动删除或修改knownhsots里面对应远程机器的ssh信息。那么如果忽略掉这个knownhosts的访问?操作如下:
  1)修改etcsshsshdconfig配置文件中的选项IgnoreUserKnownHosts改成yes,重启sshd服务即可。
  2)如果还是不行,就在etcsshsshdconfig配置文件中再加入一下几行,然后再重启sshd服务。
  StrictHostKeyCheckingno
  UserKnownHostsFiledevnull
  ansible中取消ssh交换式yesno
  配置文件etcansibleansible。cfg的〔defaults〕中(打开注释)
  uncommentthistodisableSSHkeyhostchecking
  hostkeycheckingFalse
  ssh只允许使用key登录,禁止使用密码登录
  1)生产公私钥文件
  sshkeygentrsa
  上面命令一路回车,此时在root。ssh目录下生成了2个文件,idrsa为私钥,idrsa。pub为公钥。
  私钥自己下载到本地电脑妥善保存(丢了服务器可就没法再登陆了),为安全,建议删除服务器端的私钥。公钥则可以任意公开。
  使用以下命令将公钥导入到系统中:
  catroot。sshidrsa。pubroot。sshauthorizedkeys
  2)修改SSH的配置文件etcsshsshdconfig
  vimetcsshsshdconfig
  RSAAuthenticationyes
  PubkeyAuthenticationyes
  AuthorizedKeysFile。sshauthorizedkeys
  默认PasswordAuthentication为yes,即允许密码登录,改为no后,禁止密码登录
  PasswordAuthenticationno
  3)重启SSH服务
  etcinit。dsshdrestart
  4)使用私钥登录xshell或securecrt客户端了
  SSH服务启动报错案例
  在某台服务器上部署了sftp服务,最后发现sftp远程登录正常,但是ssh远程登录失败(尽管已经输入了正确的用户名和密码)。
  〔rootkevinssh〕servicesshdrestart
  Stoppingsshd:〔OK〕
  Startingsshd:etcsshsshdconfigline81:UnsupportedoptionGSSAPIAuthentication
  etcsshsshdconfigline83:UnsupportedoptionGSSAPICleanupCredentials
  Startingsshd:〔OK〕
  如上启动后,远程ssh登录这台机器,输入正确的用户名和密码,则会登录失败!!
  〔rootkevinssh〕sshV
  OpenSSH7。6p1,OpenSSL1。0。1efips11Feb2013
  原因是新版本的openssh不支持以上参数,需要修改sshd的配置文件。
  修改内容如下,否则还是无法通过ssh登录这台服务器:
  〔rootkevinssh〕vimetcsshsshdconfig
  。。。。。。。
  去掉前面的注释,允许root通过ssh登录
  PermitRootLoginyes
  注释掉下面三个参数
  GSSAPIAuthenticationyes
  GSSAPICleanupCredentialsyes
  UsePAMyes
  再次重启ssh,上面的报错信息就没有了。此时远程ssh登录就OK了!
  〔rootkevinssh〕servicesshdrestart
  Stoppingsshd:〔OK〕
  Startingsshd:〔OK〕
  SSH连接超时时间(timedout)设置
  1)使用下面命令连接,可以减少ssh连接超时等待的时间
  sshoConnectTimeout5p22root172。16。60。20
  或者修改sshdconfig文件里面的UseDNS选项,改为UseDNSno
  2)设置SSH超时时间的方法
  vimroot。bashprofile
  exportTMOUT1000000以秒为单位。或者修改etcprofile文件也可以。
  sourceroot。bashprofile
  vimetcsshsshdconfig
  ClientAliveInterval60
  servicesshdrestart
  意思是每过一分钟,sshd都会和sshclient打个招呼(即服务器端给客户端发送一个空包),检测它是否存在,如果不存时则断开连接!
  这里需要注意:设置完成后,要退出ssh远程连接,再次登录后才可以生效。因为要再读取一次bashprofile文件。
  总结:
  在ClientAliveInterval(etcsshsshdconfig)、环境变量TMOUT(在etcprofile或。bashprofile中设置)以及putty的Secondsbetweenkeepalives(默认为0)这些设置方法中,
  经检测验证,只有TMOUT可以控制ssh连接在空闲时间超时,自动断开连接的时间,数字单位为秒。在设置了TMOUT后(非0),另外两个变量则不起作用的。
  另外,特别提醒的是,设置好ssh的登录超时时间以后,记得退出重新登录或重启系统,以使配置生效。
  3)SSH禁止超时设置
  SSH默认过一段时间会超时,有时候正在执行着脚本,出去一会回来就断开了,输出信息都看不到了,很是无奈!
  其实禁止SSH自动超时最简单的办法就是:每隔一段时间在客户端和服务器之间发送一个空包!!!!!
  至于到底是从客户端发给服务器,还是服务器发给客户端其实都不重要,重要的是需要它们之间要有通信。
  下面介绍两种阻止SSH连接超时的方法(推荐方法二):
  方法一:客户端阻止SSH超时
  编辑本地的SSH配置文件:。sshconfig
  vim。sshconfig
  ServerAliveInterval120
  这个设置会让客服端机器在使用SSH连接服务器时,每隔120秒给服务器发送一个空包,保持它们之间的连接。
  方法二:服务器端阻止SSH超时
  如果有服务器端的root权限,可以在服务端进行配置,这样就不需要每个客户端都单独配置。
  vimetcsshsshdconfig
  ClientAliveInterval120
  ClientAliveCountMax720
  第一行,表示每隔120秒向客户端发送一个空包,以保持于客户端的连接。
  第二行,表示总共发送720次空包,之后断开它们之间的连接,也就是:120秒72086400秒24小时后。
  最后重启sshd服务,再打开新终端进行ssh连接就可以了,在24小时内不会出现连接超时。
  etcinit。dsshrestart
  SSH公钥下发无效
  ssh的。pub公钥已经拷贝到远程主机的。sshauthorizedkeys文件里,但是ssh跳转时,仍然要输入密码!!即公钥下发后,ssh信任关系没有生效!
  解决办法:
  1)远程主机对应用户家目录下的。ssh目录必须是700或755权限,绝不能是775或777权限!即只对该用户有写权限!(一般设置700权限)
  2)远程主机对应用户家目录下的。sshauthorizedkeys文件权限必须是600权限!即只对该用户有写权限!(一般设置600权限)
  3)远程主机对应用户家目录的权限必须是700或755权限,绝不能是775或777权限!即只对该用户有写权限!(一般设置700权限),大多数情况下都是由于这个原因导致的!!!
  如果。ssh目录和。sshauthorizedkeys文件权限对别的用户有写权限,则就会导致ssh认证失败!
  例如在一次ansible自动化部署中,之前配置好的ssh信任关系失效,报错如下:
  {changed:false,msg:SSHError:datacouldnotbesenttoremotehost172。16。60。240。Makesurethishostcanbereachedoverssh,unreachable:true}
  查看现象,发现之前配置好的ssh信任关系失效了!!
  〔rootbz3devjenci1002lx0319〕sshp22kevin172。16。60。240
  Authorizedonly。Allactivitywillbemonitoredandreported
  kevin172。16。60。240spassword:
  分析原因及解决办法:
  登录172。16。60。240这台机器的kevin用户下,发现authorizedkeys文件里确实已经传入了ansible主节点的idrsa。pub公钥内容,并且下面两个权限都正确:
  〔kevinbz4autestap1002〕lld。ssh
  drwx2kevinkevin4096Jul2410:48。ssh700权限是正确的
  〔kevinbz4autestap1002〕ll。sshauthorizedkeys
  rw1kevinkevin2412Jul2410:45。sshauthorizedkeys600权限也是正确的
  然后查看kevin用户目录权限,发现是777!这才是问题根源!该用户目录权限不能对别的用户有写权限,否则会造成ssh认证失败!
  〔kevinbz4autestap1002〕lldhomekevin
  drwxrwxrwx14kevinkevin4096Jul2410:48homekevin
  修改为600权限即可
  〔kevinbz4autestap1002〕chmod600homekevin
  〔kevinbz4autestap1002〕lldhomekevin
  drwx14kevinkevin4096Jul2410:48homekevin
  再次在远程尝试ssh认证跳转
  〔rootbz3devjenci1002lx0319〕sshp22kevin172。16。60。240
  〔kevinbz4autestap1002〕
  Centos7修改ssh默认端口的方法
  CentOS7对于防火墙这一块的设置有一定的修改,修改ssh端口后,必须关闭防火墙和selinux之后才能正常重启sshd服务,否则启动失败。操作记录如下:
  1)修改etcsshsshdconfig这个是修改ssh服务端配置文件。
  〔rootk8smaster01〕vimetcsshsshdconfig
  。。。。。。。。。
  Port22这行最好去掉号,防止配置失效以后不能远程登录,还得去机房修改,等修改以后的端口能使用以后在注释掉
  Port6666下面添加这一行
  〔rootk8smaster01〕vimetcsshsshconfig这个是修改ssh客户端配置文件,一般可以不用修改。
  。。。。。。。。
  Port22
  Port6666
  ssh客户端配置文件使用场景:
  比如A机器的etcsshsshconfig客户端配置文件的ssh端口是22,B机器的etcsshsshdconfig服务端配置文件是6666
  那么A机器ssh连接B机器时就要带上p6666,如果A机器的ssh客户端配置文件的端口也是6666的话,就可以直接ssh连接B机器了。
  2)要关闭防火墙和selinux。否则,centos7修改ssh端口后会启动sshd服务失败!一定要注意这个!
  〔rootk8smaster01〕systemctldisablefirewalld
  〔rootk8smaster01〕systemctlstopfirewalld
  〔rootk8smaster01〕firewallcmdstate
  notrunning
  〔rootk8smaster01〕catetcsysconfigselinux
  。。。。。。。
  SELINUXdisabled
  〔rootk8smaster01〕setenforce0
  〔rootk8smaster01〕getenforce
  Disabled
  这样,在修改ssh端口后,就能顺利启动sshd服务了!
  这里还需要注意下:如果是打开了防火墙或selinux,则需要将修改的sshd端口添加到对应的防火墙规则中(默认只加了ssh的22端口)
  a)firewalld配置
  添加到防火墙:
  firewallcmdzonepublicaddport6666tcppermanent(permanent是保存配置,不然下次重启以后这次修改无效)
  重启:
  firewallcmdreload
  查看添加端口是否成功,如果添加成功则会显示yes,否则no
  firewallcmdzonepublicqueryport6666tcp
  b)selinux配置
  使用以下命令查看当前SElinux允许的ssh端口:
  semanageportlgrepssh
  添加6666端口到SELinux
  semanageportatsshporttptcp6666
  然后确认一下是否添加进去
  semanageportlgrepssh
  如果成功会输出
  sshportttcp6666,22
  c)然后就可以顺利启动sshd服务了。

小米MIX5曝新料?屏幕方面有重大的升级,搭配200W快充?就在不久前,小米发布了MIX系列的最新旗舰小米MIX4,采用了CUP屏下镜头的设计方案,实现了正面无开孔接近真全面屏的视觉观感,这也是小米史上第一款采用屏下的第一款全面的屏机形……错了性别不错爱3结局是啥,错了性别不错爱3简介爱情片《错了性别不错爱》上映有两部,可第三部没有上映,估计第三部的情节会接上前两部的情节,如果成为完结的情况,说不定会给观众带来比较完美的结局给展现,更把爱情发展更甜蜜。1错了……当华为被美国人禁用谷歌Gms后,Honor却在推特上公开配备当华为被美国人禁止用谷歌Gms后,Honor却在推特上。。。。。。背后捅刀子?给美国送子弹?联合谷歌绞杀华为?抛弃鸿蒙?谷歌孝子?HONOR在前期已经成功确认了与多……x战警观看顺序汇总X战警系列观影顺序2018x战警观看顺序:汇总《X战警》系列观影顺序2018x战警顺序怎么看,x战警系列观看顺序2018。喜欢的《x战警》系列的电影在2018年也是有上映的哦,而且这一部好像叫什么……印度电视剧推荐8部好看又好评且高分的印剧本文推荐8部印度电视剧,好看的印度好评高分电视剧,中国现在有不少网友对印度题材电视剧挺感兴趣的,好看的印度电视剧名字及剧情简介,喜欢的来看看吧。印度电视剧:佛陀此剧……孤城闭赵徽柔到底爱谁出身高贵却结局悲凉近日,电视剧《孤城闭》未播先火,在网上关于孤城闭中的人物大家都很好奇,在《孤城闭》中赵徽柔到底爱谁?赵徽柔最后和谁走到了一起?赵徽柔的结局是什么?一起来了解一下。电视剧《……小米赢了世界,却输给了舆论小米赢了世界却输给了舆论因为国内的小米可以说是所有同行的敌人明明可以卖4000的手机,你要卖1999,不搞死你我怎么赚钱?天天让你科普什么CPU,什么硬件,什么配置……10部儿童电影7一13岁励志又搞笑国产,2022暑假看一遍励志国产的适合7一13岁儿童的电影有哪些?励志的电影具有很好激励孩子的作用,因此,孩子是可以偶尔看一些励志电影的,下面是推荐10部儿童电影7一13岁励志又搞笑国产:《美丽中国》……老九门霍锦惜结局出乎人意料老九门霍锦惜简介老九门霍锦惜结局:在《老九门》中,霍家是唯一一家女性掌权的家族,而霍锦惜就是霍氏家族的人。霍锦惜被人称为ldquo;七姑娘rdquo;lsquo;,她不仅长得漂亮而且气质出尘,……有传言称AirPods3将与iPhone13一起在9月的活动根据DigiTimes的一份报告,第三代AirPods可能会在同一场发布会上发布,展示苹果即将推出的iPhone13系列,该报道援引熟悉此事的消息人士的话称。该报告总体上……李亚鹏新女友竟是王菲表妹华丽转身变妹夫?李亚鹏新女友竟是王菲表妹:华丽转身变妹夫?近日,李亚鹏疑牵手新欢在北京东三环鹏润大厦参加朋友聚会被拍,期间互动亲密,女方面容清秀长发飘飘,显得很有气质,靠在李亚鹏肩膀十分……别再被手机的超高像素远摄夜拍功能蒙骗了这些都是噱头现在的智能手机功能越来越强大了,可以说几乎是无所不能了:可以上网看新闻,可以网购,可以聊天,可以移动支付,可以导航,可以看电影追剧听音乐,还可以拍摄图片和视频,而且只要你安装各……
身价上亿的搜狐CEO每天只睡4个多小时,管理时间的高手身价上亿的搜狐CEO张朝阳上了热搜。在最近一次采访中,他说自己每天只睡4个多小时。张朝阳的日常时间表:4:30起床,5:306:30工作计划,接着就进入工作状……年轻人的第一台超薄电磁炉,炒菜都是米粉味最近小米上新了一款仅有23mm厚的米家超薄电磁炉,首发价格499元。小米这段时间的动作把高端两个字玩得不亦乐乎,除了手机、平板等发家产品,还有从形体到功能到实际体验,一改……如果太阳终会毁灭,那我们人类该如何应对?我们先来了解下太阳的寿命太阳目前正处于中年时期,根据计算,太阳至少还需要50亿年才会进入红巨星的阶段。并最终留下一颗白矮星,结束自己的一生。那怎样才算是太阳毁灭呢?……千元级平板买哪款?华为M6是首选,8。4英寸价格便宜尺寸合适今年平板市场显得异常凶猛,其中最明显的就是华为在今年推出了很多平板新品,而且也确实有很多人买,从统计数据来看平板市场已经很久没有这么火热了。不过不少人似乎也发现了一点问题,那就……辽宁喊话20家电商,叫停双十一四大问题为切实规范双十一网络集中促销活动秩序,近日,辽宁省市场监管局与沈阳市市场监管局共同组织召开了双十一电商企业座谈会。苏宁易购、贝壳找房、京东、唯品会、58同城、饿了么、美团、抖音……folly学习(一)C中如何实现一个通用迭代器folly中实现了一个通用的迭代器,位于follydetailIterators。h通用迭代器一般由两部分组成,类型声明和操作符重载类型声明因为迭代器主要作用,是被……有人能详细谈一下vivo,OPPO,一加,教育电子之间错综复步步高是OPPO、vivo的前身,可以说OPPO和vivo是一对亲兄弟。但是在2003年,OPPO的股东买断了OPPO的股份,将OPPO公司独立了出去,自此OPPO和步步高再也……折叠屏智能手机的最佳解决方案微软SurfaceDuo2重返手笔歌科技独家报道:虽然几经失败,但微软一直未曾放弃打入高端手机市场的决心,第2代的微软SurfaceDuo折叠屏手机精湛来袭,一起来围观。01微软SurfaceDuo……每个人还可以通过微信赚钱现在,微信已经成为手机中必不可少的APP。它不仅是社交软件还是付款工具;而且由于推出了微粒贷款,微信还可以申请贷款,但是有些用户相对而言,微信是否可以赚钱?此外,每个人还……网上很多人都说佳能比尼康好一点那为什么很多摄影师都是用尼康的尼康色彩好,佳能图像清。如果拍风景,当然选尼康。绝大多数摄影爱好者都喜欢拍风景,所以,选尼康的多。话说,你要是架上300的头打鸟,那你就得选佳能了摄影界有这样的说法:拍风……家里的wifi老是出现已连接但无法访问互联网,一会自己就好了我来回答这个问题。wifi显示已经连接但无法访问互联网,这种情况肯定是某个地方出现了问题,怎么来判断,就需要比较专业的知识和工具进行判断,我来给大家说一下测试方法。……工程塑料行业百度推广seo哪家效果好?seo从哪些方面研究竞很多做SEO优化的同行近期交流发现西安很多企业对百度推广seo越来越重视,那么今天就给大家讲讲工程塑料行业百度推广seo哪家效果好?seo从哪些方面研究竞争对手?百度推广……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网