linux无法ssh连接linux无法ssh
linux下没有ssh服务怎么办?
linux下一般是有ssh服务的,如果没有可以使用yuminstallssh进行在线安装。
Linux服务器可以用SSH连接上,可是pingIP为什么不通?
Linux服务器可以SSH连接,但是ping不通是因为防火墙策略禁止了icmp包,可以通过以下方式解除禁ping即可。
1、查看iptables策略,使用-D删除相应的icmp报文策略。netipv4icmp_echo_ignore_all=0//改为0即为关闭禁ping,1为开启禁ping
SSH连接linux服务器反复提示输密码?
ssh不能登录linux需要检查客户端和服务器端:
客服端:
ssh连接方式为:ip+端口号(默认为22)
服务器端:
1、先把sshd服务开启;
/etc/initd/shhdrestrat2、把linux的防火墙关掉;
1)重启linux后生效:
chkconfigiptablesoff2)即时生效,重启后失效:
serviceiptablesstop3、客户端重新ssh登陆linux。
SSH服务器失败怎么办?
分享三个SSH服务器失败的修复办法:解决方法:
一、开启SSH以root用户登录Linux,打开终端,运行:/etc/initd/sshdrestrat二、关闭防火墙1、在终端运行setup2、选择firewall回车3、按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择4、按tab键切换到quit,按空格件选择然后用客户端ssh登录Linux,成功登录。
三、关闭防火墙的另一种方式补充一个,红旗linux的某些版本,不允许root用户远程登陆的,需要修改设置#vi/etc/ssh/sshd_config中PermitRootLoginno#这就不允许root用户远程登录,要修改成PermitRootLoginyes并重启sshd服务才行的。#servicesshdrestart重新登录OK。
在redhatlinux70中手动设置的ip为什么无法用ssh登录?
内网连接成功说明ssh服务没有问题,可能的问题是nat、路由或边界访问控制。请做如下测试:
1、在redhatlinux上开启tcpdump进行数据包抓取,具体如下:tcpdump-n"tcpport22";
2、在外网对redhatnat后的外网ip地址进行ssh连接尝试,此时如果在redhat的tcpdump下有数据包出现,则说明你的nat没有问题。请确认在redhat上是否有正确设置网关。
3、在外网对redhatnat后的外网ip地址进行ssh连接尝试,此时如果在redhat的tcpdump下没有数据包出现,则说明你的nat有问题,或者在路由器上是否存在访问控制策略,请检查。
实现此的技术原理:
在内网通过域名绑定服务器,外网SSH访问连接时,通过域名的访问,实现访问内网LINUX。
具体的实现过程如下:
明确LINUX服务器内网访问地址端口,确保LINUX服务器正常开启SSH服务,在内网SSH可以正常访问连接。如图所示:
被访问端的Linux主机上使用nat123动态域名解析Linux版本。
在被访问端的Linux服务器安装nat123客户端,并登录使用它。
登录网页,左侧用户中心,添加域名解析,选择动态域名解析并添加确认。
选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。如不理解负载均衡,不要勾选多点登录。
新添加动态解析后,等待几分钟生效。解析生效后,动态解析域名与本地公网IP是保持对应的。可以通过ping下域名核实,返回结果IP地址为本地公网IP地址时,表示动态解析生效正常。
路由器端口映射,路由映射SSH访问22端口。
因为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网LINUX服务器访问22端口打通。路由器端口映射位置:转发规则/虚拟服务器/添加允许外网访问端口和协议。我的LINUX服务器SSH服务端口是默认的22,我内网对应LINUX服务器主机的内网IP地址是192168129。
外网访问时,使用动态解析域名。
在外网使用SSH访问内网LINUX服务器时,使用动态解析域名进行连接访问。域名是不变的,可以上网即可访问,再也不担心动态公网IP变化的问题。
远程密令临时开启ssh端口
nux服务器,我们一般是通过ssh通道远程管理,这就需要我们开启ssh端口,如22。但开启端口有被暴力破解的风险,你会说可以设置复杂的密码或使用证书避免。就算破解不了密码,但openssh也可能会有漏洞,你会说可以更改ssh端口,但还是有可能被扫描出来。还有一种选择,我们可以只允许指定IP访问ssh,通过***登录管理服务器,但局限很明显,万一紧急情况***登录不上去了怎么办。下面给出一种个人觉得比较满意的解决方案,即使用iptables的recent模块,通过密令临时开启ssh端口。当然,密令需要保管好,防止外泄。
1、iptables规则设定
#指定78字节的icmp数据包(包含IP头部20字节,ICMP头部8字节)通过被加入sshopen列表。
代码如下:
iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --set --name sshopen --rsource -j ACCEPT
#检查sshopen列表是否存在你的来源IP,如果存在,即从第一次使用密令开始15秒钟内开启ssh端口22,超过15秒端口自动关闭,不再允许新连接,已连接的不会断开。
代码如下:
iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT
2、临时开启ssh端口密令
linux下:
代码如下:
ping -s 50 host
3、我目前使用的iptables规则
代码如下:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 123 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m length --length 50 -m recent --set --name sshopen --rsource -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
使用jailkit chroot更改ssh用户根目录
安装jailkit
代码如下:
cd /tmp
wget http://oliviersessinknl/jailkit/jailkit-216targz
tar xzf jailkit-216targz
cd jailkit-216
/configure
make
make install
cp extra/jailkit /etc/initd/jailkit
chmod u+x /etc/initd/jailkit
chkconfig jailkit on
初始化chroot环境
代码如下:
jk_init -v -j /home/chroot sftp scp jk_lsh netutils extendedshell
service jailkit start
代码如下:
useradd www -m
echo www:password | chpasswd
chroot用户
代码如下:
jk_jailuser -m -n -j /home/chroot --shell=/bin/bash www
secure shell protocol简称SSH,是由IETF网络工作小组(network working group) 制定,在进行数据传输之前, SSH先对联级数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递的数据安全
SSH是 专门为远程登录会话和其他网络服务(例如:rsync,ansible)提供的安全性协议 ,利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程连接服务器软件(例如:Telnet/23端口/非加密的)等
然后开始输入用户名
右击选中追踪流,在右侧再选中TCP流
即可显示数据包的全过程,圈中的部分是用户名,之所以每个单词重复出现,是因为数据有请求,有确认,所以会重复,去重以后就是用户名:shuai,密码:123456
在显示 yes/no 的时候,如果输入的 yes 就接收到了服务端发送过来的公钥信息,把这个信息放到了 /root/ssh/known_hosts文件 里
SSH服务由服务端软件 OpenSSH(Openssl) 和客户端 常见的有SSH(linux),secureCRT,putty,Xshell 组成SSH服务默认使用22端口提供服务, 他有两个不兼容的SSH协议版本,分别是1x和2x
如果在进行连接的时候出现以下情况,如何解决
基于口令的安全验证方式就是知道服务器的SSH连接账号和口令(也要知道对应服务器的IP地址及开放的SSH端口,默认为22端口)就可以通过SSH客户端登录到远程主机上面,此时联机过程中所有传输的数据都是加密的!
- 演示XSHELL及SSH客户端连接,口令验证测试
基于密钥的安全验证方式是指,需要依靠密钥,也就是必须事先建立一对密钥对,然后把 公用密钥(锁头:public key) 放在需要访问的目标服务器上,另外,还需要把 私有密钥(钥匙:private key) 放到SSH的客户端或对应的客户端服务器上
此时,如果想要连接到这个带有公用密钥的SSH服务器上,客户端SSH软件或者客户端服务器就会向SSH服务器发出请求,请用联机的用户密钥进行安全验证,SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下面寻找事先放上去的对应用户的公用密钥,然后把它和连接SSH客户端发送过来的公用密钥进行比较,如果两个密钥一直,SSH服务器就用公用密钥加密"质询(challenge)"并把它发送给SSH客户端!
SSH客户端收到"质询"之后就可以用自己的私钥解密,在把它发送给SSH服务器,使用这种方式,需要知道联机用户的密钥文件,与第一种基于口令验证的方式相比,第二种方式不需要在网络上传送口令密码,所以安全性更高了,这是我们也注意保护我们的密钥文件,特别是私钥文件,一旦被黑获取到,危险系数增大很多
修改SSH服务的运行参数,是通过修改配置文件 /etc/ssh/sshd_config 来实现的
一般来说SSH服务使用默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供SSH服务的情况,可以不需要修改任何参数配置
SSH服务监听参数说明
企业服务器被入侵案例
拉取:PULL
原因:
sftp服务没有启动,进程太多,linux系统资源分配如果超过承受范围,就会限制使用。
提示错误:
subsystem request failed on channel 0
Couldn't read packet: Connection reset by peer
解决办法:
/etc/ssh/sshd_config的文件中已经添加如下行:
Subsystem sftp /usr/lib/openssh/sftp-server
扩展资料:
sftp常用命令
1、登录
#密码登录sftp -P 22 zhangsan@1921680100#密钥登录sftp -P 22 -i ~/ssh/id_rsa zhangsan@1921680100
2、更改远程工作目录
cd /abc
3、更改和/或打印本地工作目录
lcd /abc
4、列出远程目录的内容
ls
0条评论