首页 > 其他分享 >SSH服务常见问题及报错汇总

SSH服务常见问题及报错汇总

时间:2023-10-18 23:32:02浏览次数:38  
标签:sshd 常见问题 no etc 报错 SSH 设置 root ssh

SSH常见问题汇总


目录

ssh知识要点 2

什么是ssh服务 3

ssh的软件包 3

客户端软件包 3

服务端软件 3

SSH服务配置文件说明 3

ssh_config和sshd_config配置文件区别 3

服务端优化配置选项 7

ssh入侵案例说明 8

IP如何防止SSH登录入侵小结: 8

修改服务器默认监听端口报错 8

ssh登录失败,报错:Pseudo-terminal will not be allocated because stdin 10

ssh登录出现:permission denied 10

ssh连接错误问题 10

1)在使用ssh或scp或rsync远程连接的时候,出现如下报错: 10

2)本机scp、rsync命令都已具备,但是在使用scp或rsync远程同步的时候报错: 11

3)远程ssh连接时错误“ The X11 forwarding request was rejected!” 11

ssh报错:Read from socket failed: Connection reset by peer. 11

ssh远程登录后的提示信息 11

做法一: 12

做法二 12

实现ssh无密码登录 13

第一步: 13

第二步 13

ssh自定义安全设置 13

Linux SecureCRT终端连接密钥交换失败错误 15



ssh知识要点

  1. ssh是安全的加密协议,用于远程连接Linux服务器
  2. ssh默认端口是22,安全协议版本sshv2(除了2之外还有1),sshv1有漏洞,不更换密钥;sshv2定期更换密钥;利用Diffie-Hellman机制定期更新密钥
  3. ssh服务端主要包括两个服务功能:ssh远程连接和sftp服务
  4. Linux ssh客户端包括ssh远程连接命令,以及远程拷贝scp命令等
    ssh-copy-id -t 指定加密类型 -i 指定密钥存放路径 -o StrictHostKeyChecking=no 在登录其它服务器时不检测指纹信息

什么是ssh服务

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

ssh的工作机制大致是本地的ssh客户端先发送一个连接请求到远程的ssh服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给SSH的客户端,此时,客户端本地再将密钥发回给服务端,自此连接建立。

ssh的软件包

客户端软件包

[root@localhost ~]# rpm -qf `which ssh`

openssh-clients-8.0p1-5.el8.x86_64

服务端软件

[root@localhost ~]# rpm -qf `which sshd`

openssh-server-8.0p1-5.el8.x86_64

注意:使用sshd采用绝对路径进行启动

SSH服务配置文件说明

注意:在配置ssh的配置文件时,避免使用tab

ssh_config和sshd_config配置文件区别

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件(ssh_config),后者是针对服务端的配置文件(sshd_config)。两个配置文件都支通过设置不同的选项来改变客户端程序的运行方式。下面列出两个配置文件中比较重要的一些关键词,每一行为“关键词 & 值”的形式,其中“关键词”是忽略大小写的。

rhosts认证:是一种不安全的认证方式,它基于网络上的主机名和用户名,而不是基于密码或其它更安全的认证方式。如果启用了rhosts认证,侵犯者可以轻松的伪造主机名或用户名,从而获得对系统的访问权限,因此建议ssh禁用rhosts认证,从而提高ssh连接的安全性

客户端(ssh_config)

编辑/etc/ssh/ssh_config文件

# Site-wide defaults for various options

Host *

ForwardAgent no

ForwardX11 no

RhostsAuthentication no

RhostsRSAAuthentication no

RSAAuthentication yes

PasswordAuthentication yes

FallBackToRsh no

UseRsh no

BatchMode no

CheckHostIP yes

StrictHostKeyChecking no

IdentityFile ~/.ssh/identity

Port 22

Cipher blowfish

EscapeChar

下面对上述选项参数逐行进行解释:

# Site-wide defaults for various options

带“#”表示该句为注释,不起作用,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有“#”注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置

Host*

“Host”只对匹配后面字符串的计算机有效,“*”表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换 * 号使下面选项只对该计算机生效。

ForwardAgent no

"ForwardAgent"设置连接是否经过验证代理(如果存在)转发给远程计算机

ForwardX11 no

"ForwardX11"设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)

RhostsAuthentication no

"RhostsAuthentication"设置是否适用基于rhosts的安全验证

RhostsRSAAuthentication no

"RhostsRSAAuthentication no"设置是否适用RSA算法的基于rhosts的安全验证

RSAAuthentication yes

"RSAAuthentication"设置是否适用RSA算法进行安全验证

PasswordAuthentication yes

"PasswordAuthentication"设置是否适用口令验证

FallBackToRsh no

"FallBackToRsh"设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所有此选项应当设置为 "no"。

UseRsh no

"UseRsh"设置是否在这台计算机上使用“rlogin/rsh”,原因同上,设为“no”

BatchMode no

"BatchMode"批处理模式,一般设为“no”;如果设为“yes”,交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。

CheckHostIP yes

"CheckHostIP"设置ssh是否查看连接到服务器的主机ip地址以防止DNS欺骗。建议设置为“yes”

StrictHostKeyChecking no

"StrictHostKeyChecking"如果设为“yes”,ssh将不会自动把计算机的密钥加入“$HOME/.ssh/known_hosts”文件,且一旦计算机的密钥发生了变化,就拒绝连接

IdentityFile ~/.ssh/identity

"IdentityFile"设置了读取用户的RSA的安全验证标识

Port 22

"Port"设置连接到远程主机的端口,ssh默认端口为22

Cipher blowfish

“Cipher”设置加密用的密钥,blowfish可以自己随意设置

EscapeChar

"EscapeChar"设置escape字符。

服务端

编辑 /etc/ssh/sshd_config文件:

# This is ssh server systemwide configuration file.

Port 22

ListenAddress 192.168.1.1

HostKey /etc/ssh/ssh_host_key

ServerKeyBits 1024

LoginGraceTime 600

KeyRegenerationInterval 3600

PermitRootLogin no

IgnoreRhosts yes

IgnoreUserKnownHosts yes

StrictModes yes

X11Forwarding no

PrintMotd yes

SyslogFacility AUTH

LogLevel INFO

RhostsAuthentication no

RhostsRSAAuthentication no

RSAAuthentication yes

PasswordAuthentication yes

PermitEmptyPasswords no

AllowUsers admin

下面逐行说明上面的选项配置

Port 22

"Port"设置sshd监听的端口号,默认为22,可以使用多条指令监听多个端口

ListenAddress 192.168.1.1

"ListenAddress"设置sshd服务器绑定的ip的地址,可以指定在某个特定的接口上监听

HostKey /etc/ssh/ssh_host_key

"HostKey"设置包含计算机私人密钥的文件

ServerKeyBits 1024

"ServerKeyBits"定义服务器密钥的位数

LoginGraceTime 600

"LoginGraceTime"设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)

KeyRegenerationlnterval 3600

"KeyRegenerationlnterval"设置在多少秒之后自动重新生成服务器的密钥(如果使用密钥)。重新生成秘钥是为了防止用盗用的密钥解密被截获的信息

PermitRootLogin no

"PermitRootLogin"设置是否允许root通过ssh登录。这个选项从安全角度来将应设成为“no”

lgnoreRhosts yes

"lgnoreRhosts"设置验证的时候是否使用“rhosts”和“shosts”文件

lgnoreUserKnownHosts yes

"lgnoreUserKnowHosts"设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的"$HOME/.ssh/known_hosts"

StrictModes yes

"StrictModes"设置ssh在接受登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限

X11Forwarding no

"X11Forwarding"设置是否允许X11转发

SyslogFacility AUTH

"SyslogFacility"设置在记录来自sshd的消息的时候,是否给出“facility code”

Loglevel INFO

"Loglevel"设置记录sshd日志消息的层次。INFO是一个好的选择

RhostsAuthentication no

"RhostsAuthentication"设置是否启用rhosts认证,如果设置为no,代表ssh服务器将不允许使用rhosts认证

RhostsRSAAuthentication no

"RhostsRSAAuthentication"设置是否允许用rhosts认证加上RSA进行安全验证。

RSAAuthentication yes

"RSSAuthentication"设置是否允许只有RSA安全验证

PasswordAuthentication yes

"PasswordAuthentication"设置是否允许口令验证

PermitEmptyPasswords no

"PermitEmptyPassowrds"设置是否允许用口令为空的账号登录

AllowUsers admin #限定登录的用户名

“AllowUsers”的后面可以跟任意的数量和用户名的匹配串,这些字符串用空格隔开。主机名可以是域名或IP地址

服务端优化配置选项

通常情况下我们连接OpenSSH服务器的时候,假如UseDNS选项是打开的话,服务器会先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始IP地址一致,通过此种措施来防止客户端欺骗。平时我们都是动态IP不会有PTR记录,所以打开选项也没有太多作用。我们可以通过关闭此功能来提高连接OpenSSH服务器的速度

配置如下

编辑配置文件

vim /etc/ssh/sshd_config

找到 UseDNS 选项,如果没有注释,将其注释

#UseDNS yes

添加

找到 GSSAPIAuthentication选项,如果没有注释,将其注释

#GSSAPIAuthentication yes

添加

GSSAPIAuthentication no

保存配置文件

重启sshd服务

systemctl restart sshd

注意:一般远程修改ssh端口,建议22端口留着防止修改未成功。防火墙记得放行对应端口

ssh入侵案例说明

被入侵案例http://phenixikki.blog.51cto.com/7572938/1546669

IP如何防止SSH登录入侵小结:

  1. 用密钥登录,不用密码登录
  2. 解决SSH安全问题
  1. 防火墙封闭SSH,指定源IP限制(局域网、信任公网)
  2. 开启SSH只监听本地内网IP(ListenAddress 172.16.1.61)
  1. 尽量不给服务器外网ip
  2. 最小化安全(软件安全-授权)
  3. 给系统的重要文件或命令做一个指纹

修改服务器默认监听端口报错

为了安全或者其它原因,我们可能会需要改掉ssh服务器默认的22端口或者ssh服务同时监听多个端口。

在修改配置文件后,可能会遇到无法重启sshd服务

[root@localhost ssh]# cat sshd_config | grep Port

Port 2222

#GatewayPorts no

[root@localhost ssh]# systemctl restart sshd

Job for sshd.service failed because the control process exited with error code.

See "systemctl status sshd.service" and "journalctl -xe" for details.

报错信息如下:

[root@localhost ssh]# journalctl -xe | grep error

Oct 18 14:42:39 localhost.localdomain sshd[1215]: error: Bind to port 2222 on 0.0.0.0 failed: Permission denied.

Oct 18 14:42:39 localhost.localdomain sshd[1215]: error: Bind to port 2222 on :: failed: Permission denied.

可能导致的原因:

这个错误消息表示sshd服务无法绑定到端口2222,因为权限被拒绝。这可能是由以下原因导致的:

首先查看2222端口是否被占用

[root@localhost ssh]# ss -tunlp | grep 2222

[root@localhost ssh]#

发现端口未被占用

那么大概率是SELinux的原因,SELinux限制了ssh的端口

[root@localhost ssh]# semanage port -l

-bash: semanage: command not found

没有semanage命令 安装对应软件包

[root@localhost ssh]# yum -y install policycoreutils-python-utils

查看selinux放开的ssh端口仅有22

[root@localhost ssh]# semanage port -l | grep ssh

ssh_port_t tcp 22

添加2222端口到selinux

[root@localhost ssh]# semanage port -a -t ssh_port_t -p tcp 2222

[root@localhost ssh]# semanage port -l | grep ssh

ssh_port_t tcp 2222, 22

再次重启服务尝试

[root@localhost ssh]# vi /etc/ssh/sshd_config

[root@localhost ssh]# systemctl restart sshd

查看ssh现在的端口监听情况

[root@localhost ssh]# ss -tunlp | grep ssh

tcp LISTEN 0 128 192.168.224.137:2222 0.0.0.0:* users:(("sshd",pid=10001,fd=5))

防火墙放通2222端口

[root@localhost ssh]# firewall-cmd --add-port=2222/tcp --permanent

success

[root@localhost ssh]# firewall-cmd --reload

success

使用客户端登录这台机器

ssh -p 指定端口号

[root@master ssh]# ssh [email protected] -p 2222

[email protected]'s password:

Last login: Wed Oct 18 14:23:11 2023 from 192.168.224.1

[root@localhost ~]#

修改ssh默认监听端口总结:

  1. 配置文件修改不要用tab
  2. selinux放行对应端口
  3. firewalld放行对应端口
  4. iptables未做其它拒绝配置

ssh登录失败,报错:Pseudo-terminal will not be allocated because stdin

现象:

需要登录线上的一台目标机器A,但是不能直接登录(没有登录权限),需要先登录机器B,然后从B机器跳转到A机器

需要增加-t参数来强制伪终端分配,即使标准输入不是终端

ssh root@机器b

ssh -t -t root@机器a

ssh登录出现:permission denied(publickey.gssapi-with-mic)

解决方法:

修改/etc/sshd_config文件,将其中的:

PermitRootLogin no修改为Yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys前面加上#注释掉

PasswordAuthentication no修改为yes

最后重启sshd服务

ssh连接错误问题

1)在使用ssh或scp或rsync远程连接的时候,出现如下报错:

Address **** maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

解决方法:

修改本机ssh_config文件

[root@kvmserver ~]# vim /etc/ssh/ssh_config

GSSAPIAuthentication no

[root@kvmserver ~]#/etc/init.d/sshd restart

2)本机scp、rsync命令都已具备,但是在使用scp或rsync远程同步的时候报错:

bash: scp: command not found

bash: rsync: command not found

原因:是由于远程机器上没有安装scp或rsync造成的。安装即可

yum install openssh-clients

yum install rsync

3)远程ssh连接时错误“ The X11 forwarding request was rejected!”

解决方法:

将sshd_config中 设置 X11Forwarding yes

重启sshd服务。

ssh报错:Read from socket failed: Connection reset by peer.

尝试很多方案无效,卸载sshd,然后重新安装

# yum remove openssh*

# rm -rf /etc/ssh*

# yum install -y openssh*

# systemctl start sshd.service

ssh远程登录后的提示信息

我们在使用中控机ssh信任跳转到其它机器上的时候,登陆成功后,终端会显示一些提示信息;

这些提示信息,是为了方便我们在第一时间知道ssh跳转到了哪台目标机器上,也是为了避免频繁跳转后由于大意造成的误入机器操作的风险,我们通常会在ssh跳转到哪台目标机器后显示一些提示信,如下信息:

[root@bastion-IDC ~]# ssh -p22 192.168.1.15

Last login: Fri Jul 15 13:26:53 2016 from 124.65.197.154

===================================

|||||||||||||||||||||||||||||||||||

===================================

HOSTNAME: monit-server

IPADDRES: 192.168.1.15

===================================

IDC监控机

===================================

那么上面的提醒信息是在哪里设置呢?

做法一:

可以在目标机器的/etc/motd文件里自定义,当用户登录到系统时,登录过程会读取/etc/motd文件的内容,并显示在终端上,这样,用户在登录的时候就可以看到任何重要信息

[root@monit-server ~]# cat /etc/motd

===================================

|||||||||||||||||||||||||||||||||||

===================================

HOSTNAME: monit-server

IPADDRES: 192.168.1.15

===================================

IDC监控机

===================================

做法二

在目标机器的/etc/ssh/sshd_config文件里定义,然后重启sshd服务即可,这两种做法效果一致

vim /etc/ssh/sshd_config

Banner /etc/sshfile

[root@host ~]# cat /etc/sshfile

this is 192.168.1.117

远程登录:

[root@linux-node2 ~]# ssh 192.168.1.117

this is 192.168.1.117

[root@host ~]#

实现ssh无密码登录

使用ssh-keygen和ssh-copy-id

  1. ssh-keygen 产生公钥与私钥对
  2. ssh-copy-id 将本机的私钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有道远程机器的/home/username/.ssh和~/.ssh/authorized_keys的权利.方法如下:

第一步:

在本地机器上使用ssh-keygen生成公钥私钥对

ssh-keygen [-t rsa 可选,-t指定加密算法方式] [-f,选项指定保存密钥文件名和路径]

例如:ssh-keygen -t rsa -f ~/.ssh/id_rsa

这样就会在家目录下的.ssh目录里

如果编写脚本,想要实现无交互生成公钥私钥对,可以使用下面的命令:

ssh-keygen -t rsa -f ~/.ssh/id_rsa -b 1024 -P ""

  1. -t 指定加密算法
  2. -f 指定公钥私钥文件存放路径
  3. -b 指定了密钥长度
  4. -P 为新密钥设置的密码;-P "",表示不设置私钥的密码

第二步

在本机使用ssh-copy-id将公钥复制到远程机器中

[root@master ~]# ssh-copy-id [email protected] -p2222

-p选项指定连接的端口

这样,本机登录到远程机器就不需要输入密码了

ssh自定义安全设置

1)为了ssh登录的时候加一层保护,可以修改默认端口,修改ssh服务配置文件/etc/ssh/sshd_config

port 2222

保存退出后,添加selinux端口和防火墙放行规则

semanage port -a -t ssh_port_t -p tcp 2222

firewall-cmd --add-port=82/tcp --permanent

firewall-cmd --reload

最后重启sshd服务

systemctl restart sshd

远程连接的时候指定端口

ssh 192.168.100.10 -p 2222

2)限制ssh登录的来源ip,白名单设置

hosts.allow优先级最高

1.是通过iptables设置ssh端口的白名单,如下设置只允许192.168.1.0/24网段的客户机可以远程连接本机

说明:需要

iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 2222 -j ACCEPT

2.是通过/etc/hosts.allow里面进行限制(如下),/etc/hosts.deny文件不要任何内容编辑,保持默认!

vim /etc/hosts.allow

sshd:192.168.1.*,192.168.9.*,124.65.197.154,61.148.60.42,103.10.86.7:allow

sshd:all:deny

3)仅允许特定的用户通过SSH登陆

如不允许root用户登录;

只允许几个指定的用户登录(比如wangshibo、guohuihui、liuxing用户)

禁止某些指定的用户登录(比如zhangda,liqin用户)

但是要注意:设置的这几个用户必须同时存在于本机和对方机器上

修改ssh服务配置文件/etc/ssh/sshd_config

PermitRootLogin no //将yes修改为no

AllowUsers wangshibo guohuihui liuxing //这个参数AllowUsers如果不存在,需要手动创建,用户之间空格隔开

DenyUsers zhagnda liqin //这个参数DenyUsers如果不存在,需要手动创建,用户之间空格隔开

也可以设置仅允许某个组的成员通过ssh访问主机。

AllowGroups wheel ops

4)取消密码验证,只用密钥对验证

修改ssh服务配置文件/etc/ssh/sshd_config

PasswordAuthentication no

PubkeyAuthentication yes

5)只允许客户机通过指定的网络接口来访问ssh服务(如果本服务器有多个IP的时候)

修改/etc/ssh/sshd_config,如下:

ListenAddress 192.168.1.15 //默认监听的是0.0.0.0

这样,就只允许远程机器通过ssh连接本机的192.168.1.15内网ip来进行登陆了

6)禁止空密码登录

如果本机系统有些账号没有设置密码,而ssh配置文件里又没做限制,那么远程通过这个空密码账号就可以登陆了,这是及其不安全的!

所以一定要禁止空密码登陆。修改/etc/ssh/sshd_config,如下:

PermitEmptyPasswords no //这一项,默认就是禁用空密码登陆

Linux SecureCRT终端连接密钥交换失败错误

1.故障现象

服务器升级OpenSSH和OpenSSL后,SecureCRT无法ssh登录,报错如下:

SSH服务常见问题及报错汇总_问题汇总


SecureCRT 终端软件连接linux操作系统,出现如下错误:

  1. 英文描述:Key exchange failed. No compatible key exchange method. The server supports these methods: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256
  2. 中文描述:密钥交换失败。没有兼容的密钥交换方法。服务器支持以下方法:ecdh-sha2-nistp256、ecdh-sha2-nistp384、ecdh-sha2-nistp521、diffie-hellman-group-exchange-sha256

2.故障原因

SSH和SSL升级后,取消了原先一些不太安全的加密算法,Client不支持新的算法所有无法交换密钥;

3.故障处理(建议使用第一种)

1.要求客户升级SecureCRT版本至最新版本,或更换最新版的Xshell、Putty等工具

2.修改ssh配置,添加对原加密算法的支持

使用root用户,变更ssh客户端配置和服务端配置,将一下配置添加到/etc/ssh/sshd_config和/etc/ssh/ssh_config

Ciphers aes256-ctr,aes192-ctr,aes128-ctr

MACs hmac-sha1

KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,[email protected]


标签:sshd,常见问题,no,etc,报错,SSH,设置,root,ssh
From: https://blog.51cto.com/520cyy/7924737

相关文章

  • 案例4 配置SSH协议
    1.在华为设备上配置SSH协议1.1按图配置端口的ip地址,并做连通性测试[R1]interfaceg0/0/0[R1-GigabitEthernet0/0/0]ipaddress202.100.1.1255.255.255.252[R2]intg0/0/0[R2-GigabitEthernet0/0/0]ipaddress202.100.1.2255.255.255.252[R1-GigabitEthernet0/0/0]pi......
  • GraalVM进行spring boot的native编译报错 “returned non-zero result”解决方法
    使用GraalVM对springboot工程进行native编译:系统:CentosJDK:GraalVMJDK21报错:Ifyouareunabletoresolvethisproblem,pleasefileanissuewiththeerrorreportat:https://graalvm.org/support[INFO]---------------------------------------------------------......
  • Linux-ssh
    目录远程登录服务器配置远程服务器相关信息创建config文件配置config文件配置密钥登陆先创建密钥配置密钥文件执行命令scp传文件copy文件copy文件夹远程登录服务器sshuser@hostnameuser:用户名hostname:IP地址或域名第一次登陆会显示信息:Theauthenticityofhost'123.......
  • TS 踩坑笔记: 箭头函数添加泛型报错(Error: JSX element ‘T’ has no corresponding
    前言今天给大家分享一个在React项目中使用TypeScript遇到的错误项目背景React+TS的项目配置,项目中关于React组件的使用.tsx后缀,其他单纯的文件使用.ts后缀问题描述在React组件附近定义泛型的箭头函数时产生TS报错警告,原本以为是语法写错了但是实际上在.t......
  • Spring MVC,Mybatis常见问题
    如果您面试一个只做过SpringMVC+MyBatis项目的候选人,您可能会问一些问题来评估其在这两个技术上的了解和经验。以下是一些可能的问题及其答案:什么是SpringMVC和MyBatis?它们在项目中的作用是什么?答:SpringMVC是一个基于Spring框架的用于构建Web应用程序的模块,它使用MVC(Model-......
  • kubeadm init 报错ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables
    现象:[ERRORFileContent--proc-sys-net-bridge-bridge-nf-call-iptables]:/proc/sys/net/bridge/bridge-nf-call-iptablescontentsarenotsetto1原因:  /proc/sys/net/bridge/bridge-nf-call-iptables 文件的内容并没有设置为1解决方案echo"1">/proc/sys/net/br......
  • mysql 运行没错,在mybatis中报错 druid 报错 syntax error, expect RPAREN, actual
    您遇到的问题可能是由于Druid版本较旧导致的。在Druid 1.0.19中,对于某些语法结构的处理存在一些限制和问题。针对您的具体情况,可以尝试以下解决方案:1. 确保SQL语句的括号匹配正确。错误消息"expect RPAREN, actual IDENTIFIER DAY"表明Druid期望一个右括号(RPAREN),但实际上......
  • 运行shell脚本时报错"[[ : not found"解决方法
    实例if["$system"=="CentOS"];thenecho"yuminstallbc"elif["$system"=="Ubuntu"]||["$system"=="Debian"];thenecho"aptinstallbc"fi}运行至判断表达式时报错,sh命令无法识别&qu......
  • Redission并发锁报错:IllegalMonitorStateException: attempt to unlock lock, not loc
    生产上突然出现一条报错j.l.IllegalMonitorStateException:attempttounlocklock,notlockedbycurrentthreadbynodeid:1411e030-3c44-48d7-9eb6-6030022ce681thread-id:111ato.r.RedissonBaseLock.lambda$unlockAsync$2(RedissonBaseLock.java:323)......
  • 【工具】SSH端口转发管理器,专门管理SSH Port Forwarding
    开源代码看这里:http://xfxuezhang.cn/index.php/archives/1151/背景介绍        有时候需要用到ssh的端口转发功能。目前来说,要么是cmd里手敲指令,但每次敲也太麻烦了;或者打开termius、mobaxterm这种ssh软件,但对于只想使用端口转发的需求来说,打开这种软件也太臃肿了。因此开......