ubuntu安装配置ssh-connect to host localhost port 22: Connection refused
在安装ssh,经常出现 ssh:
connect to host localhost port 22: Connection refused
从以下几点去检查:
1.是否安装ssh-server:
打开"终端窗口",输入"sudo
ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。若无sshd:
打开"终端窗口",输入"sudo
apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成。
2.命令行用户名输错:
ssh user@ip
,注意很多情况下user不对造成了这个问题,有时root并不能登录,需要当前用户名
passwd
root:修改root密码
3.关闭或修改防火墙配置:
参看IPTables基本命令
4.配置文件:
使用gedit修改配置文件"/etc/ssh/sshd_config"
打开"终端窗口",输入"sudo gedit /etc/ssh/sshd_config"-->回车-->把配置文件中的"PermitRootLogin without-password"加一个"#"号,把它注释掉-->再增加一句"PermitRootLogin yes"-->保存,修改成功。
或修改查看其它配置参数
IPTables基本命令
在向大家介绍复杂防火墙规则之前,还是先上一些简单的料,让大家对IPTables最为基本的命令有一些简单了解。
首先要说明的是IPTables命令必需以root权限运行,这意味着你需要使用root身份登录或者能够有权限使用su或sudo -i取得root Shell。下面的内容中我们都使用sudo,这也是Ubuntu系统上的首选方法。
最好的起点就是先通过“-L”参数来查看下当前系统的所有IPTables规则:
sudo iptables -L
我们可以看到Linux中都有的3个常用默认链(INPUT、OUTPUT和FORWARD),同时也可以看到每个链的缺省策略(每个链对默认策略都是接受),在此我们可以看到Ubuntu中并没有添加任何默认规则集。
如果你希望通过命令来查看每个链的默认规则,可以使用“-S”参数:
sudo iptables -S
如果你看到IPTables里面已经有规则了,并希望取消这些规则后重新更配置话,可以使用“-F”参数来清空已有的规则集:
sudo iptables -F
虽然“-F”参数可以清空并刷新链中所有的现有规则集,但并不会对链的默认策略进行更改。因此,如果你是在更改远程VPS防火墙策略的话需要在“-F”清空所有规则时先将INPUT和OUTPUT链的默认策略恢复到ACCEPT,以免规则清空后SSH连接被阻断。要做到这一点可执行如下命令:
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
在配置好允许SSH连接后(下面介绍),再将INPUT和OUTPUT链的默认规则更改为DROP即可。
创建自已的IPTables规则
现在就要开始为我们的VPS创建自定义的防火墙规则啦,正如上篇文章中所说,由于INPUT链会处理所有连接到服务器的入站数据包,因此我们的所有操作都与INPUT链有关。现在先来配置服务器允许SSH连接。
完整命令应该是这样的:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
大多朋友可能会觉得看起来怎么这么复杂,那我们来逐一分拆说明下。
- -A INPUT :表明我们要将此规则追加到某个链的最后,由于我们要操作INPUT链接,所以这么写。
- -m conntrack :iptables除了自己的核心功能外还只有一些实用的扩展和模块,这个参数表明添加conntrack模块提供的能力。(conntrack模块可以根据先前的连接来确定数据包之间的关系)
- –ctstate :该参数是conntrack模块提供的,它可以确定如何用现在的数据包去匹配先前获得的数据包。ESTABLISHED值将自动允许现有连接的数据包,RELATED值将允许已建立连接的相关数据包。(这样就与SSH会话特性相匹配上了)
- -j ACCEPT :这个参数用于指定匹配的数据包的目标。用在这里表示接受和允许符合上述标准的数据包通过。
配置好后我们来看一下:
sudo iptables -L
现在,你应该已经知道IPTables的基本语法了,下面我们继续添加规则打怪,以期尽快升级为高手。
接受其它必要连接
大家的VPS上一般SSH服务的22端口,Web服务器的80端口及Mysql的3306端口都是需要打开的,不然怎么对外提供服务呢。因此我们也需要通过如下命令在IPTables中打开这些端口:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
为了保证我们的VPS能够正常运行,还需要添加一条允许规则。通常,计算机上的服务都会发送网络数据包以保持彼此之间的通信。而这种通信会利用到一个名叫loopback的伪网卡将流量引导回自己。因此,我们还需要为loopback网卡添加一条允许规则。
sudo iptables -I INPUT 1 -i lo -j ACCEPT
- -I INPUT 1 :与“-A”不同,它可以指定要将规则添加到该链的位置。
实施Drop规则
前面讲的内容其实都是基于一个前提假设的,但事先我们需要先把防火墙的2种常用模式说明一下。一种是明确定义允许通过防火墙的规则,不匹配的都丢弃。另外一种是明确定义拒绝通过防火墙的规则,其余的都允许。我们的前提假设采用的就是第一种方式,这样配置起来相对简单,规则也较少,也更加安全。
前面我们已经为INPUT链接定义了一些允许规则,但默认INPUT链是允许所有包,所以我们现在需要将INPUT链的默认规则更改为“Drop”即丢弃。通过如下命令完成更改:
sudo iptables -P INPUT DROP
查看和保存配置
IPTables的配置是立即生效的,前面已经介绍过,在配置好之后我们可以直接用“-L”参数进行查看,这里再另外增加一个“–line-numbers”参数,它主要用于显示行数,对于规则较多时的查看非常方便。
sudo iptables -L --line-numbers
虽然IPTables的命令执行后会立即生效,但这个生效过程其实是临时的,系统在重启之后便会丢失。因此,我们还需要将这些配置添加到配置文件当中,以保证系统在下次重启后会自动载入我们的IPTables防火墙规则。
sudo apt-get update
sudo apt-get install iptables-persistent
该命令脚本下载执行后会询问我们是否对IPTables配置进行保存,如果确定的话选择“是”即可。保存后下次重启系统也不会造成配置丢失了。
ubuntu安装配置ssh-connect to host localhost port 22: Connection refused的更多相关文章
- ssh本机失败(ssh: connect to host localhost port 22: Connection refused)
ssh本机失败(ssh: connect to host localhost port 22: Connection refused) 一. 问题描述 之前一直在服务上使用宝塔面板, 今天突发奇想, ...
- 运行Hadoop start-all.sh遇到的错误ssh: connect to host localhost port 22: Connection refused
ssh: connect to host localhost port 22: Connection refused 我的情况是ssh server没装,查看方法: ps -e |grep ssh 1 ...
- ssh: connect to host localhost port 22: Connection refused
1.hadoop安装好之后,执行ssh localhost无法执行, 提示“ssh: connect to host localhost port 22: Connection refused”. 2 ...
- 新手git: ssh: connect to host localhost port 22: Connection refused
由于gitlab上要git pull或者git clone,可是每次都出现这个问题.之前偶尔出现这个问题.可是仅仅是偶尔.这是为什么呢?然后就開始搜索网上的解决方式了. 这个问题搜索网上非常多答案.可 ...
- Ubuntu下 ssh : connect to host localhost port 22:Connection refused
Ubuntu下测试ssh时使用ssh localhost 命令,出现错误提示connect to host localhost port 22:Connection refused 造成这个错误的原因 ...
- ssh: connect to host localhost port 22: Connection refused 问题
错误原因:1.sshd 未安装2.sshd 未启动 3.防火墙 4需重新启动ssh 服务 解决方法:1.确定安装sshd: $ sudo apt-get install openssh-server ...
- 使用ssh localhost命令,发生异常ssh: connect to host localhost port 22: Connection refused
使用"ssh localhost"命令,失败: 问题分析如下: 出现这个问题是因为Ubuntu默认没有安装openssh-server.检查是否安装了openssh-server, ...
- 解决osx下 ssh: connect to host localhost port 22: Connection refused
解决办法: 终端下执行:sudo systmesetup -setremotelogin on
- mac connect to host localhost port 22: Connection refused
在Mac OS X 10.10.5学习hadoop的过程中,输入命令ssh localhost得到 ssh: connect to host localhost port : Connection r ...
- ssh: connect to host master port 22: Connection refused
hadoop集群启动的时候namenode显示Connection refused 到windows下ping master 显示传输中过期 ip是静态的 ssh master 也是连接拒绝 重启s ...
随机推荐
- seata序列化日期类型出错
一.背景 最近在整合seata的过程中,发现如果业务表中存在 datetime 的数据类型,那么在分布式事务中,修改这个字段的值时,会出现如下错误.此处提供2种解决方案. com.fasterxml. ...
- Linux线程互斥学习笔记--详细分析
一.互斥锁 为啥要有互斥? 多个进程/线程执行的先后顺序不确定,何时切出CPU也不确定. 多个进程/线程访问变量的动作往往不是原子的. 1. 操作步骤 (1)创建锁 // 创建互斥锁mutex pth ...
- Celery Task(定时任务)及参数
celery beat 是一个调度器:它以常规的时间间隔开启任务,任务将会在集群中的可用节点上运行. 默认情况下,入口项是从 beat_schedule 设置中获取,但是自定义的存储也可以使用,例如在 ...
- dhcpd:bad subnet number/mask combination. subnet
今天在调试wifi热点启动hdcpd服务时出现报错"bad subnet number/mask combination. subnet 192.168.1.1", Interne ...
- .NET 开源工作流: Slickflow流程引擎高级开发(九) -- 条件事件模式解释及应用
前言:在流程流转过程中,有时候需要条件模式的支持,这样可以使得流程流转更加灵活多变.比如在业务变量满足一定的条件时,可以启动特定配置的流程(或者位于主流程内部的子流程).本文主要描述条件启动和条件中间 ...
- (2)Canal管理后台在linux环境上部署
1.背景 canal-admin设计为canal组件提供了配置管理.节点运维等功能的WebUI操作界面,方便用户快速操作. 2.前期准备 先到官网下载个canal.admin组件:也可以输入命令下载: ...
- Unity——技能系统(一)
技能系统(一) 一.Demo展示 二.功能介绍 集成了技能,冷却,buff,UI显示,倒计时,动画等: 技能类型:弹道技能,动画事件根据帧数采用延迟调用技能,自定义释放位置(偏移,发射点两种),buf ...
- 2021广东省强网杯WriteUp
个人赛 网络诈骗 参考 https://github.com/Heyxk/notes/issues/1 先把EnMicroMsg.db提出来 CompatibleInfo.cfg是0kb,用第一种方法 ...
- c++学习笔记7(面向对象的程序设计)
面向对象的程序=类+类+....+类 设计程序的过程,就是设计类的过程 实例 对象的内存分配 对象间的运算 使用类的成员变量和成员函数
- c++学习笔记1(引用)
引用 格式:类型名&引用名=某变量名: 概念 实例:编写交换整型变量的函数对比 不用引用 实机操作 使用引用 实机操作 实例2:用作函数的返回值 可对函数返回值赋值 常引用 使用格式,在引用前 ...