溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux SSH 連接不上的各種聯(lián)想

發(fā)布時間:2020-07-29 02:30:03 來源:網(wǎng)絡 閱讀:2058 作者:2012hjtwyf 欄目:建站服務器


一、CentOS之SSH的安裝與配置


SSH 為 Secure Shell 的縮寫,由 IETF 的網(wǎng)絡工作小組

(Network Working Group)所制定SSH 為建立在應用層和傳輸層基礎上的安全協(xié)議


傳統(tǒng)的網(wǎng)絡服務程序,如FTP、POP和Telnet其本質上都是不安全的

因為它們在網(wǎng)絡上用明文傳送數(shù)據(jù)、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)***方式的***

存在另一個人或者一臺機器冒充真正的服務器接收用戶傳給服務器的數(shù)據(jù),然后再冒充用戶把數(shù)據(jù)傳給真正的服務器


而 SSH 是目前較可靠,專為遠程登錄會話和其他網(wǎng)絡服務提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止

遠程管理過程中的信息泄露問題。透過 SSH 可以對所有傳輸?shù)臄?shù)據(jù)進行加密,也能夠防止 DNS 欺騙和 IP 欺騙


安裝SSH

[root@test1 ~]# yum install ssh

啟動SSH

[root@test1 ~]# service sshd start

設置開機運行

[root@test1 ~]# chkconfig sshd on


SSH相關配置文件的修改


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


[root@test1 ~]# vim /etc/ssh/sshd_config

#Protocol 2,1                              ← 找到此行將行頭“#”刪除,再將行末的“,1”刪除,只允許SSH2方式的連接
 ↓
Protocol 2                                  ← 修改后變?yōu)榇藸顟B(tài),僅使用SSH2

#ServerKeyBits 768                    ← 找到這一行,將行首的“#”去掉,并將768改為1024
 ↓
ServerKeyBits 1024                    ← 修改后變?yōu)榇藸顟B(tài),將ServerKey強度改為1024比特

#PermitRootLogin yes                 ← 找到這一行,將行首的“#”去掉,并將yes改為no
 ↓
PermitRootLogin no                   ← 修改后變?yōu)榇藸顟B(tài),不允許用root進行登錄

#PasswordAuthentication yes       ← 找到這一行,將yes改為no
 ↓
PasswordAuthentication no          ← 修改后變?yōu)榇藸顟B(tài),不允許密碼方式的登錄

#PermitEmptyPasswords no   ← 找到此行將行頭的“#”刪除,不允許空密碼登錄
 ↓
PermitEmptyPasswords no     ← 修改后變?yōu)榇藸顟B(tài),禁止空密碼進行登錄


然后保存并退出


因為我們只想讓SSH服務為管理系統(tǒng)提供方便,所以在不通過外網(wǎng)遠程管理系統(tǒng)的情況下

只允許內(nèi)網(wǎng)客戶端通過SSH登錄到服務器,以最大限度減少不安全因素


修改屏蔽規(guī)則,在文尾添加相應行,設置方法如下:


[root@test1 ~]# 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@test1 ~]# vim /etc/hosts.allow          ← 修改允許規(guī)則,在文尾添加相應行

#
# 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.                                       ← 添加這一行,只允許來自內(nèi)網(wǎng)的SSH連接請求


在修改完SSH的配置文件后,需要重新啟動SSH服務才能使新的設置生效

[root@test1 ~]# service sshd restart

Stopping sshd:                                            [  OK  ]

Starting sshd:                                              [  OK  ]


這時,在遠程終端(自用PC等)上,用SSH客戶端軟件以正常的密碼的方式是無法登錄服務器的

為了在客戶能夠登錄到服務器,我們接下來建立SSH用的公鑰與私鑰,以用于客戶端以“鑰匙”的方式登錄SSH服務器


SSH2的公鑰與私鑰的建立:


登錄為一個一般用戶,基于這個用戶建立公鑰與私鑰

[root@test1 ~]# su - test1

[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@test1 ~]$ cd ~/.ssh                                                           ← 進入用戶SSH配置文件的目錄

[root@test1 ~]$ 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@test1 .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  ← 公鑰內(nèi)容輸出到相應文件中

[root@test1 .ssh]$ rm -f ~/.ssh/id_rsa.pub                                    ← 刪除原來的公鑰文件

[root@test1 .ssh]$ chmod 400 ~/.ssh/authorized_keys                   ← 將新建立的公鑰文件屬性設置為400


然后,將私鑰通過安全的方式轉移到欲通過SSH連接到服務器的PC上。這里,以通過3.5寸磁盤為介質為例:

[root@test1 .ssh]$ exit                                                               ← 退出一般用戶的登錄(返回root的登錄)

[root@test1 ~]# mount /mnt/floppy/                                            ← 加載軟盤驅動器

[root@test1 ~]# mv /home/centospub/.ssh/id_rsa /mnt/floppy/        ← 將剛剛建立的私鑰移動到軟盤

[root@test1 ~]# umount /mnt/floppy/                                          ← 卸載軟盤驅動器


二、比較流行的幾款SSH客戶端工具


作為一個Windows操作系統(tǒng)用戶,如果想要連接Linux服務器來進行文件之間的傳送

那么需要一個Secure Shell軟件(簡稱SSH的)實際上,SSH是一個網(wǎng)絡協(xié)議,允許通過網(wǎng)絡連接到Linux

和Unix服務器;SSH使用公鑰加密來認證遠程的計算機。通常有多種途徑使用SSH,自動連接或是使用密碼認證登錄

Putty

Putty是最有名的SSH和telnet客戶端,由Simon Tatham為Windows平臺開發(fā)

Putty是一款開源軟件,提供可用的源代碼并有一批志愿者進行開發(fā)和支持

Linux SSH 連接不上的各種聯(lián)想

Putty易于安裝和使用,通常大部分的配置選項不需要修改

用戶只需要輸入少量基本的參數(shù),就可以開始很簡單地建立連接會話

SecureCRT

SecureCRT這款SSH客戶端軟件同時具備了終端仿真器和文件傳輸功能

Linux SSH 連接不上的各種聯(lián)想

FileZilla

FileZilla 是 Windows 上使用最多的免費 ftp 客戶端。它是一款遵循 GNU 公共許可證發(fā)布的開源軟件

FileZilla 客戶端支持多種平臺(Windows、Linux 及 Mac)作為 FTP Server,F(xiàn)ileZilla 只提供 Windows 版本

由于 Filezilla 是開源軟件,因此高級用戶可以根據(jù)自己的需要查看源碼并進行修改

對所有用戶,F(xiàn)ileZilla 讓免費、強大和易用的文件傳輸成為可能

喜歡圖形界面的用戶可以輕易地憑感覺就學會使用

FileZilla 不支持 CLI(命令行界面)

FileZilla 支持 FTP、SSL/TLS 加密的 FTP(FTPS)和 SSH FTP(SFTP)

用戶可以利用它們進行可靠的安全文件傳輸


FileZilla 有很多有意思的特性,包括支持文件續(xù)傳和大文件(>4G)傳輸

當然還有很多其它特性讓 FileZilla 成為用戶數(shù)最多的客戶端

比如:支持 ipv6、支持拖拽操作、支持 http、socks5和 ftp-proxy

支持遠程文件編輯以及很多其它很有意思的特性

FileZilla 操作非常靈活且易于使用,可以同時發(fā)送、接收多個文件

如今,這些特性已經(jīng)讓 FileZilla 被公認為是最強大的文件傳輸工具

WinSCP

WINSCP 是一款 Windows 平臺的免費開源 FTP 客戶端。WinSCP 不提供 ftp server 版本

支持的傳輸協(xié)議有 FTP、SFTP 和 SSH,同時也支持 SCP(安全拷貝協(xié)議)

WinSCP 的圖形化用戶界面為終端用戶提供了直覺化的界面,因而更易于使用

同時 WinSCP 也為習慣了終端操作的用戶提供了強大的命令行界面

WinSCP 的腳本和自動化特性使得任務自動化成為可能

同時也支持拖拽文件進行傳輸,還有其他的 Windows 集成特性

例如桌面、快捷啟動圖標,文件瀏覽器的“發(fā)送到”菜單等等

WinSCP 在其它操作系統(tǒng)上沒有提供類似的功能


XShell


首先解釋一下XShell這款工具,它可以用來遠程操控Linux系統(tǒng)

所以我們可以在Windows系統(tǒng)中,安裝這個軟件用來打開Linux終端


下面來介紹一下XShell的安裝和配置過程:


1.新建一個會話

Linux SSH 連接不上的各種聯(lián)想


2.在連接這里填上用戶名和主機,協(xié)議為SSH,其余默認


Linux SSH 連接不上的各種聯(lián)想


這里解釋一下主機IP,它是虛擬機中Linux的IP地址

所以我們可以通過如下方法獲?。?/span>在CentOS的終端中輸入ifconfig命令,可以查出IP地址如下圖所示


Linux SSH 連接不上的各種聯(lián)想


3.在用戶身份認證這里輸入用戶名就行,其他默認


4.點擊確定按鈕之后,出現(xiàn)下圖的對話框,點擊連接


Linux SSH 連接不上的各種聯(lián)想


5.這里會彈出一個對話框,點擊接受并保存


Linux SSH 連接不上的各種聯(lián)想


那么這個會話就創(chuàng)建好了

我們可輸入命令df來查看Linux的分區(qū)狀態(tài)

確定一下我們連接的是不是我們期望的Linux系統(tǒng)


Linux SSH 連接不上的各種聯(lián)想


注意:如果創(chuàng)建出來的會話出現(xiàn)亂碼狀態(tài),那么打當前會話的屬性


Linux SSH 連接不上的各種聯(lián)想


看一下編碼方式是否為UTF-8


三、SSH連不上的各種聯(lián)想過程


之前在公司工作的時候,遇到這樣一種情況:

由于錯誤操作,之前的虛擬機以及其中的系統(tǒng)都一去不返了

后來重新安裝 ,進行ssh連接,發(fā)現(xiàn)遠程連接竟然無法連接,提示22端口連接失敗,但是可以ping通


解決這個問題花了我不少時間去查資料,網(wǎng)上寫的解決方法也是五花八門

經(jīng)過各種嘗試和聯(lián)想的過程,最終總算解決了,現(xiàn)在想分享出來和大家一起學習


猜測原因大概有以下幾種情況:

IP配置錯誤,或者配置完成沒有重啟網(wǎng)絡連接,但是既然可以ping通應該不是這個問題

但是為了保險起見,還是重啟了一下,不過重啟之后依舊不奏效


關閉防火墻和selinux


[root@test1 ~]# setenforce 0

[root@test1 ~]# service iptables stop      


通過命令查看redhat防火墻:

[root@test1 ~]# service  iptables status

iptables: Firewall is not running.


重啟SSH服務


以root用戶登錄Linux,打開終端,運行: 

[root@test1 ~]# service sshd start

[root@test1 ~]# service sshd restart

Stopping sshd:                                             [  OK  ]

Starting sshd:                                               [  OK  ]


檢查是否安裝了ssh-server服務


安裝的redhat最小化安裝字符界面, 默認是沒有安裝ssh-server服務的

[root@test1 ~]# yum  install openssh-server* -y                                        #進行安裝ssh-server 服務

[root@test1 ~]# netstat  -tclnp        | grep  sshd                                         #查看sshd端口是否處于監(jiān)聽狀態(tài)


發(fā)現(xiàn)sshd   22端口已是監(jiān)聽狀態(tài),再次使用xshell或者xftp連接發(fā)現(xiàn)成功連接


檢查SSH服務配置文件


補充一下,Linux的某些版本,是不允許root用戶遠程登陸的,需要修改設置

[root@test1 ~]# vim /etc/ssh/sshd_config 

PermitRootLogin no 


這就不允許root用戶遠程登錄,要修改成PermitRootLogin yes 并重啟sshd服務才行

[root@test1 ~]# vim /etc/ssh/sshd_config

PermitRootLogin yes

[root@test1 ~]# service sshd restart

  

設置網(wǎng)絡連接方式


如果還ping不同,需要在虛擬機設置中,將 NetworkAdapter設置成"Bridged"(橋接), 因為默認是“NAT”

Linux SSH 連接不上的各種聯(lián)想


查看虛擬網(wǎng)絡編輯器配置


Linux SSH 連接不上的各種聯(lián)想


在VMware虛擬機虛擬網(wǎng)絡編輯器設置好了網(wǎng)關、子網(wǎng)IP、DNS之后

正常情況下,打開VMnet8就可以看到IPv4地址和上面配置的子網(wǎng)IP相同

我這里發(fā)現(xiàn)VMnet8的IP已經(jīng)不見了,所以去虛擬機網(wǎng)絡編輯器重新設置就好了


Linux SSH 連接不上的各種聯(lián)想


總結:

發(fā)現(xiàn)問題后,正常思路應該先看根源,這次問題發(fā)現(xiàn)就有點走冤枉路了

首先不看是否已經(jīng)存在這個東西便去看是否正確設置,耽誤時間,希望大家以后都注意一下


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI