Linux】 ssh链接不上Linux是什么情况,怎么处理

2021-03-04 18:18发布

3条回答
爱学习的小巴
1楼 · 2021-03-05 17:09.采纳回答

SSH连接不上Linux的解决方法:

连续弄了几次,今天早上终于把SSH连接虚拟机连接不通的问题解决了。

先简单说下概要:

主机装的是XP系统,虚拟机用的是red hat Linux。

我用的是nat连接方式是虚拟机内也能上网。

主机是用的校园内寝室共享上网。

我在主机上ping虚拟机的Linux可以ping通,但在虚拟机里却是ping不通。

不过这跟SSH连接没关系,嘿嘿^_^!

好了,不扯那么多了!

第一步,就是先把SSHD服务开启了。

    执行这个就行: /etc/init.d/sshd restart

  第二步,就是把Linux的防火墙关了。


kitidog2016
2楼 · 2021-03-05 10:14

一、CentOS之SSH的安装与配置

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定SSH 为建立在应用层和传输层基础上的安全协议。

传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的。
因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。
存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

而 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。透过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。

安装SSH
[root@linuxidc ~]# yum install ssh
启动SSH
[root@linuxidc ~]# service sshd start
设置开机运行
[root@linuxidc ~]# chkconfig sshd on

SSH相关配置文件的修改

首先修改SSH的配置文件,用vim打开SSH的配置文件,如下:

[root@linuxidc ~]# vim /etc/ssh/sshd_config
#Protocol 2,1                             ← 找到此行将行头“#”删除,再将行末的“,1”删除,只允许SSH2方式的连接
 ↓
Protocol 2                                 ← 修改后变为此状态,仅使用SSH2

#ServerKeyBits 768                   ← 找到这一行,将行首的“#”去掉,并将768改为1024
 ↓
ServerKeyBits 1024                   ← 修改后变为此状态,将ServerKey强度改为1024比特

#PermitRootLogin yes                ← 找到这一行,将行首的“#”去掉,并将yes改为no
 ↓
PermitRootLogin no                  ← 修改后变为此状态,不允许用root进行登录

#PasswordAuthentication yes       ← 找到这一行,将yes改为no
 ↓
PasswordAuthentication no         ← 修改后变为此状态,不允许密码方式的登录
#PermitEmptyPasswords no   ← 找到此行将行头的“#”删除,不允许空密码登录
 ↓
PermitEmptyPasswords no     ← 修改后变为此状态,禁止空密码进行登录

然后保存并退出

因为我们只想让SSH服务为管理系统提供方便,所以在不通过外网远程管理系统的情况下
只允许内网客户端通过SSH登录到服务器,以最大限度减少不安全因素

修改屏蔽规则,在文尾添加相应行,设置方法如下:

[root@linuxidc ~]# vim /etc/hosts.deny
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd: ALL                                               ← 添加这一行,屏蔽来自所有的SSH连接请求

[root@linuxidc ~]# vim /etc/hosts.allow         ← 修改允许规则,在文尾添加相应行
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
sshd: 192.168.0.                                       ← 添加这一行,只允许来自内网的SSH连接请求

在修改完SSH的配置文件后,需要重新启动SSH服务才能使新的设置生效
[root@linuxidc ~]# service sshd restart
Stopping sshd:                                            [  OK  ]
Starting sshd:                                              [  OK  ]

这时,在远程终端(自用PC等)上,用SSH客户端软件以正常的密码的方式是无法登录服务器的
为了在客户能够登录到服务器,我们接下来建立SSH用的公钥与私钥,以用于客户端以“钥匙”的方式登录SSH服务器

SSH2的公钥与私钥的建立:

登录为一个一般用户,基于这个用户建立公钥与私钥[root@linuxidc ~]# su - linuxidc
[root@test1 ~]$ ssh-keygen -t rsa                                      ← 建立公钥与私钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kaz/.ssh/id_rsa):  ← 钥匙的文件名,这里保持默认直接回车
Created directory ‘/home/kaz/.ssh’
Enter passphrase (empty for no passphrase):                      ← 输入口令
Enter same passphrase again:                                            ← 再次输入口令
Your identification has been saved in /home/kaz/.ssh/id_rsa.
Your public key has been saved in /home/kaz/.ssh/id_rsa.pub.
The key fingerprint is:
tf:rs:e3:7s:28:59:5s:93:fe:33:84:01:cj:65:3b:8e centospub@sample.centospub.com

然后确认一下公钥与密钥的建立,以及对应于客户端的一些处理

[root@linuxidc ~]$ cd ~/.ssh                                                           ← 进入用户SSH配置文件的目录[root@linuxidc ~]$ ls -l                                                                 ← 列出文件
-rw——- 1 centospub centospub 951 Sep 4 19:22 id_rsa               ← 确认私钥已被建立
-rw-r–r– 1 centospub centospub 241 Sep 4 19:22 id_rsa.pub           ← 确认公钥已被建立
[root@linuxidc .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  ← 公钥内容输出到相应文件中
[root@linuxidc .ssh]$ rm -f ~/.ssh/id_rsa.pub                                   ← 删除原来的公钥文件
[root@linuxidc .ssh]$ chmod 400 ~/.ssh/authorized_keys                   ← 将新建立的公钥文件属性设置为400


然后,将私钥通过安全的方式转移到欲通过SSH连接到服务器的PC上。这里,以通过3.5寸磁盘为介质为例:
[root@linuxidc .ssh]$ exit                                                              ← 退出一般用户的登录(返回root的登录)[root@linuxidc ~]# mount /mnt/floppy/                                           ← 加载软盘驱动器
[root@linuxidc ~]# mv /home/centospub/.ssh/id_rsa /mnt/floppy/        ← 将刚刚建立的私钥移动到软盘
[root@linuxidc ~]# umount /mnt/floppy/                                          ← 卸载软盘驱动器

二、比较流行的几款SSH客户端工具

作为一个Windows操作系统用户,如果想要连接Linux服务器来进行文件之间的传送,那么需要一个Secure Shell软件(简称SSH的)实际上,SSH是一个网络协议,允许通过网络连接到Linux和Unix服务器;SSH使用公钥加密来认证远程的计算机。通常有多种途径使用SSH,自动连接或是使用密码认证登录。

Putty
Putty是最有名的SSH和telnet客户端,由Simon Tatham为Windows平台开发。
Putty是一款开源软件,提供可用的源代码并有一批志愿者进行开发和支持连接Linux服务器:Win免费SSH客户端工具。
Putty易于安装和使用,通常大部分的配置选项不需要修改,用户只需要输入少量基本的参数,就可以开始很简单地建立连接会话。

SecureCRT
SecureCRT这款SSH客户端软件同时具备了终端仿真器和文件传输功能

FileZilla
FileZilla 是 Windows 上使用最多的免费 ftp 客户端。它是一款遵循 GNU 公共许可证发布的开源软件。
FileZilla 客户端支持多种平台(Windows、Linux 及 Mac)作为 FTP Server,FileZilla 只提供 Windows 版本。
由于 Filezilla 是开源软件,因此高级用户可以根据自己的需要查看源码并进行修改,对所有用户,FileZilla 让免费、强大和易用的文件传输成为可能。喜欢图形界面的用户可以轻易地凭感觉就学会使用,
FileZilla 不支持 CLI(命令行界面),
FileZilla 支持 FTP、SSL/TLS 加密的 FTP(FTPS)和 SSH FTP(SFTP),
用户可以利用它们进行可靠的安全文件传输。
FileZilla 有很多有意思的特性,包括支持文件续传和大文件(>4G)传输
当然还有很多其它特性让 FileZilla 成为用户数最多的客户端
比如:支持 ipv6、支持拖拽操作、支持 http、socks5和 ftp-proxy
支持远程文件编辑以及很多其它很有意思的特性
FileZilla 操作非常灵活且易于使用,可以同时发送、接收多个文件
如今,这些特性已经让 FileZilla 被公认为是最强大的文件传输工具

Ubuntu 12.10下安装FileZilla 3.5.3 见 http://www.linuxidc.com/Linux/2012-11/73951.htm

FileZilla通过root账户远程连接管理Ubuntu Server服务器文件 http://www.linuxidc.com/Linux/2016-12/138760.htm

FileZilla Server 0.9.45架设FTP服务器图文教程 http://www.linuxidc.com/Linux/2014-06/102840.htm

FileZilla Client 的详细介绍:请点这里
FileZilla Client 的下载地址:请点这里

WinSCP
WINSCP 是一款 Windows 平台的免费开源 FTP 客户端。WinSCP 不提供 ftp server 版本
支持的传输协议有 FTP、SFTP 和 SSH,同时也支持 SCP(安全拷贝协议)
WinSCP 的图形化用户界面为终端用户提供了直觉化的界面,因而更易于使用
同时 WinSCP 也为习惯了终端操作的用户提供了强大的命令行界面
WinSCP 的脚本和自动化特性使得任务自动化成为可能
同时也支持拖拽文件进行传输,还有其他的 Windows 集成特性
例如桌面、快捷启动图标,文件浏览器的“发送到”菜单等等
WinSCP 在其它操作系统上没有提供类似的功能


服务器正常,PING也能PING通。但是就是SSH连不上啊,出现这种问题,最大的可能就是防火墙没有关闭。

解决方法:

一、开启SSH

以root用户登录Linux,打开终端,运行: /etc/init.d/sshd restrat

二、关闭防火墙

1、在终端运行 setup

2、选择 firewall 回车

3、按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择

4、按tab键切换到quit,按空格件选择

然后用客户端ssh登录Linux,成功登录,呵呵 ^_^

三、关闭防火墙的另一种方式

/etc/init.d/iptables stop

补充一个,红旗linux的某些版本,不允许root用户远程登陆的,需要修改设置#vi /etc/ssh/sshd_config 中

PermitRootLogin no

#这就不允许root用户远程登录,要修改成PermitRootLogin yes 并重启sshd服务才行的。

#service sshd restart

四、对第一个问题的详细例子

刚刚在虚拟上装了一个redhat AS5,从本地的FC9中ssh登录,发现连结失败。

1
2
ssh: connect to host 192.168.206.11 port 22: Connection refused
lost connection

以为是虚拟机上的防火墙和selinux的问题,将这两个都关闭后,登录还是有问题,后来想想看看有没有sshd进程在运行,果然不出所料。

1
2
3
#ps -ef|grep ssh
root  2774 2613 0 Dec09 ?    00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "gnome-session"
root 15899 11276 0 11:47 pts/1  00:00:00 grep ssh

发现只有ssh agent进程在运行,ssh server进程sshd根本就没有运行,晕倒,怎么刚装的系统,怎么会就禁用了sshd服务了.呵呵,具体问题还得再研究。

启动sshd进程

1
2
#services sshd start
Starting sshd:                       [ OK ]

重新登录OK。


相关问题推荐

  • 回答 7

    使用命令:chmod 744 myflile就可以实现以上的操作。

  • 回答 4

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间分析解决这类问题,关...

  • 回答 6
    已采纳

    chmod 命令:chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。1. 文字设定法:chmod [who] [+ | - | =] ...

  • 回答 3
    已采纳

    Linux chattr 命令一般,chattr命令用于更改Linux文件上属性。以下是它的语法:chattr [ -RVf ] [ -v version ] [ mode ] files...下面是man手册对它的描述:chattr 改变一个Linux文件系统上的文件属性。一个通用格式是:+-=[aAcCdDeijsStTu]‘+’选项,将给...

  • 回答 8
    已采纳

    命令格式cat [选项] [文件]...命令功能cat主要有三大功能:一次显示整个文件:cat filename从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.将几个文件合并为一个文件:cat file1 file2 > file命令参数-n 或 --number 对输出的所有行编号,...

  • 回答 3

    shell的执行过程: 首先,脚本是从上至下从左至右执行每一行的语句的。 其次,当执行脚本时会进入一个新的shell,也成为nologin shell,在该shell下执行完成后,再返回执行前的shell。更加详细的讲解请楼主参考鸟哥linux网站中的bash shell章节有图能让您更...

  • 回答 3

    学习linux为什么要学习Shell: 1、首先我们了解一下shell编程是什么,其实shell编程就是一坨linux命令的集合再加上一些控制语句而已 2、为什么要学习linux下的shell编程,我们平时在做运维工作时总会遇到一些重复的工作,如果我们会shell编程的话就可以将这些...

  • 回答 6

    1.服务器一般情况下只有在进行项目部署或者是出现问题的时候才需要进行远程连接操作,在进行连接的时候我们一般都是使用的外部连接软件2.启动软件,点击快速连接,我们要选择连接的协议3.协议选择要然后填写服务器的IP地址和用户名,然后点击连接4.在通过验证...

  • 回答 4

    看看系统内存是否足够多,然后分区的时候是否正常运行

  • 回答 5

    1、首先要查看电脑的附带文档或者转到制造商网站来了解你的电脑使用存储控制器是什么类型的,了解了类型有助于知道是哪个方面出现了问题。2、然后在另一台电脑上同样是转到制造商的网站,将最新的驱动程序下载下来,并且保存在usb闪存驱动器或者是别的可以移...

  • 回答 7

    1、切换到root用户后。2、键入vim /etc/inittab, 就可以查看并修改该配置文件。3、在输入上面的命令后,我们可以看到该配置文件里面的信息如下:4、注意最后的那几行,就是Linux系统默认启动有七种。0:关机(不要设置这个!)1:单用户(类似于windows操作系统...

  • 回答 5
    已采纳

    很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可。步骤如下:重启linux系统重启系统后出现GRUB界面在引导装载程序菜单上,按 E出现内核选择 ,选择第二行 ...

  • 回答 6

    1.正确的关机流程为:sysnc ? shutdown ? reboot ? halt;2.sync 将数据由内存同步到硬盘中。3.shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:4.shutdown –h 10 ‘This server will shutdown after 10 mins’ ...

  • 回答 2

    1、LPIC,全称Linux专业委员会认证2、Oracle联合认证(OCA)3、Oracle专业认证(OCP)4、RHCE,也叫做红帽认证工程师5、RHCA即红帽认证架构师6、SUSE认证Linux管理员(SUSE CLA)7、SUSE认证Linux专业人员(CLP)8、SUSE认证Linux工程师(CLE)...

  • 回答 15
    已采纳

    1、cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:cd /root/Docements # 切换到目录/root/Docementscd ./path          # 切换到当前目录下的path...

  • 回答 7
    已采纳

    目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /usr用于存放系统应用程序,比较重要的目录/u...

没有解决我的问题,去提问