1. 程式人生 > >Linux遠端控制服務sshd和scp

Linux遠端控制服務sshd和scp

1 瞭解sshd服務

  SSH(Secure Shell)是一種能夠提供安全遠端登陸會話的協議,假如希望在遠端Linux系統中執行命令,就是通過這個協議啦!
為什麼要強調SSH協議是安全的呢?因為比如ftp、telnet等服務在網路上不會對口令或資料進行加密,那麼駭客們真的非常容易就可以截獲這些資訊(尤其是同區域網內的使用者),因此它們在本質是就是不安全的。
sshd服務提供兩種安全驗證的方法
1. 基於口令的安全驗證:經過驗證帳號與密碼即可登陸到遠端主機。
1. 基於金鑰的安全驗證:需要在本地生成”金鑰對“後將公鑰傳送至服務端,進行公共金鑰的比較。
sshd服務的配置檔案解析:
sshd服務的配置檔案解析:

[root@hd1 ~]# cat /etc/ssh/sshd_config
引數 作用
Port 22 預設的sshd服務埠。
ListenAddress 0.0.0.0 設定sshd服務端監聽的IP地址。
Protocol 2 SSH協議的版本號。
HostKey /etc/ssh/ssh_host_key SSH協議版本為1時,私鑰存放的位置。
HostKey /etc/ssh/ssh_host_rsa_key SSH協議版本為2時,RSA私鑰存放的位置。
HostKey /etc/ssh/ssh_host_dsa_key SSH協議版本為2時,DSA私鑰存放的位置。
PermitRootLogin yes 設定是否允許root使用者直接登入。
StrictModes yes 當遠端使用者私鑰改變時則直接拒絕連線。
MaxAuthTries 6 最大密碼嘗試次數
MaxSessions 10 最大終端數
PasswordAuthentication yes 是否允許密碼驗證
PermitEmptyPasswords no 是否允許空密碼登陸(很不安全)

若您想要修改服務的配置引數,請一定要記得刪除引數前面的註釋符”#“並重啟服務才生效的。

[[email protected]
ssh]
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]

在遠端主機上啟動sshd服務並加入到開機啟動項:
[[email protected] ~]# systemctl start sshd
[[email protected] ~]# systemctl enable sshd

2 使用ssh命令登入主機

ssh命令用於遠端管理Linux主機,格式為:“ssh [引數] 主機”。

引數 作用
-p 指定連線埠(預設為22)
-v 顯示連線過程的詳細資訊
[[email protected] ~]# ssh 192.168.10.20
The authenticity of host '192.168.10.20 (192.168.10.20)' can't be established.
ECDSA key fingerprint is 4f:a7:91:9e:8d:6f:b9:48:02:32:61:95:48:ed:1e:3f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.20' (ECDSA) to the list of known hosts.
[email protected]192.168.10.20's password:此處輸入遠端主機root使用者的密碼
Last login: Wed Apr 15 15:54:21 2015 from 192.168.10.10
[[email protected] ~]#

3 安全金鑰驗證

使用密碼驗證終歸會存在著被駭客暴力破解或嗅探監聽的危險,其實也可以讓ssh服務基於金鑰進行安全驗證(可無需密碼驗證)。

3.1 第一步:使用Xshell生成金鑰(在本地主機中生成“金鑰對”亦可)

  1. 我們開啟熟悉的XSHELL軟體,然後在工具-新建使用者金鑰生成嚮導
  2. 生成金鑰引數:確定公鑰的型別和長度;
    image
    我們這裡需要選擇RSA金鑰型別,以及金鑰長度可以選擇1024或者我這裡選擇2048.然後點選下一步按鈕。

  3. 生成公鑰對:生成公鑰和私鑰對
    image
    繼續下一步,我們需要給我們設定的私鑰加密。

  4. 私鑰加密:輸入密碼,只有該密碼才能得到私鑰(很重要)。
    image

  5. 公鑰格式:
    image
    公鑰格式選擇SSH2-OPENSSH,儲存公鑰為檔案後完成。

3.2 第二步:上傳公鑰至伺服器中

將我們生成的id_rsa_2048.pub公鑰檔案上傳到/root/.ssh資料夾下面(如果沒有我們需要建立),然後我們需要將id_rsa_2048.pub重新命名為authorized_keys 並且用chmod 600 authorized_keys設定許可權。

3.3 第三步 :修改sshd配置檔案

  1. 編輯ssh服務程式主配置檔案

    [root@hd1 ~]# vim /etc/ssh/sshd_config
  2. 將允許密碼驗證的引數設定為no
    image
  3. 將允許金鑰驗證的引數設定為yes
    image
  4. 儲存並退出配置檔案

  5. 重啟ssh服務

    Debian/Ubuntu執行:/etc/init.d/ssh restart
    CentOS執行:/etc/init.d/sshd restart或者service sshd restart

3.4 第四步 :配置Xshell使用金鑰登陸

  1. 在Xshell新建一個連結;
  2. 設定使用者身份為Public Key,選擇使用者金鑰;
  3. 輸入我們之前設定的金鑰密碼,這個時候我們其實就可以登陸。

4 禁用root登入

為了防止root使用者被掃描,被暴力破解,可以禁止root使用者登入,指定特定使用者可以通過su - 的方式切換root身份。

4.1 禁用root登入

  1. 修改配置檔案

    vi /etc/ssh/sshd_config

    修改PermitRootLogin為no

    PermitRootLogin no
  2. 重啟sshd服務

    service sshd restart

4.2 限制使用者切換root身份

我們指定某個使用者可以切換root身份,其他使用者不可以
1. 修改/etc/pam.d/su配置

[email protected] ~]# vi /etc/pam.d/su

找到下面這行,去掉行首的“#”

#auth required pam_wheel.so use_uid

1. 將指定使用者新增到wheel使用者組

```
usermod -G wheel 某使用者名稱
```

1. 修改登入檔案

```
[[email protected] ~]# vi /etc/login.defs
```
在末尾新增:

```
SU_WHEEL_ONLY yes
```

5 遠端傳輸命令

  要想將一些檔案通過網路傳送給其他主機,又恰好兩臺主機都是Linux系統,我們便可以直接用scp命令傳輸檔案到另外一臺主機。scp命令用於在網路中安全的傳輸檔案。

5.1 傳送檔案

格式為:“==scp [引數] 本地檔案 遠端帳戶@遠端IP地址:遠端目錄==”。

引數 作用
-v 顯示詳細的連線進度
-P 指定遠端主機的sshd埠號
-r 傳送資料夾時請加此引數
-6 使用ipv6協議

例如:將本地檔案/root/out.txt傳送到遠端主機的/home目錄:

[root@linuxprobe ~]# scp /root/out.txt 192.168.10.20:/home
root@192.168.10.20's password:此處輸入遠端主機中root使用者的密碼
out.txt 100% 0 0.0KB/s 00:00
傳送資料夾並指定遠端使用者:
[root@linuxprobe ~]# scp -r results/ [email protected]:/home
linuxprobe@192.168.10.20's password:此處輸入遠端主機中linuxprobe使用者的密碼

5.2 下載檔案

強大的scp命令還可以將遠端主機的檔案下載到本地。
格式為:“==scp [引數] 遠端使用者@遠端IP地址:遠端檔案 本地目錄==”。
例如:將遠端主機的/etc/issue.net檔案下載到本地的/root目錄:

[root@linuxprobe ~]# scp [email protected]:/etc/issue.net /root
linuxprobe@192.168.10.20's password:
issue.net 100% 22 0.0KB/s 00:00

例如:將遠端主機的/root/test資料夾下載到本地的/root目錄:

[root@njupt ~]# scp -r root@192.168.10.20:/root/test /root
Password: 
1.txt                                                                                                             100%    0     0.0KB/s   00:00    
2.txt                                                                                                             100%    0     0.0KB/s   00:00    
1.txt                                                                                                             100%    0     0.0KB/s   00:00  

相關推薦

Linux遠端控制服務sshdscp

1 瞭解sshd服務   SSH(Secure Shell)是一種能夠提供安全遠端登陸會話的協議,假如希望在遠端Linux系統中執行命令,就是通過這個協議啦! 為什麼要強調SSH協議是安全的呢?因為比如ftp、telnet等服務在網路上不會對口令或

Linux下RocketMQ服務客服端安裝

Linux下RocketMQ服務端和客服端安裝 安裝條件 jdk 1.8+ Maven 3.0.5 .64位Linux系統 下載和安裝   使用xshell將下載的安裝包上傳到linux系統      

linux複製檔案(cpscp

Linux為我們提供了兩個用於檔案copy的命令,一個是cp,一個是scp,但是他們略有不同。 cp 主要是用於在同一臺電腦上,在不同的目錄之間來回copy檔案 scp 主要是在不同的Linux系

(四)Windows Server 2008 R2遠端桌面服務配置授權啟用

日常工作中,經常需要遠端連線到伺服器上,然而伺服器系統預設允許同時連線的最大連線數只有2個。這樣一來,問題就來了,常常遇到“終端伺服器超出最大連線數”,導致無法正常登陸伺服器。那麼如何才能解決這一問題呢?這就要依靠遠端桌面服務了。 一、 遠端桌面服務安裝和配置 伺

Linux程序控制--程序退出等待

Linux程序退出 1. 程序退出的場景 程式碼執行完畢正常退出,結果正確 程式碼執行完畢正常退出,結果不正確 異常退出 2 .程序常見退出方式 正常退出 從main() 函式中返回return退出 呼叫exit()函式退出 呼叫_exit()函式退出 異

Windows Server 2016遠端桌面服務配置授權啟用

Server 2016預設遠端桌面連線數是2個使用者,如果多餘兩個使用者進行遠端桌面連線時,系統就會提示超過連線數,可以通過新增遠端桌面授權解決: 1、新增遠端桌面授權服務 第一步:伺服器管理 - 新增角色和功能開啟新增角色和功能嚮導視窗,選擇基於角色或給予功能安裝: 第二步:

redHat 下配置 vnc 遠端控制服務

目錄 1 環境要求 2 設定本機網路 用VMware啟動完redHat之後,進行本機網路設定。 開啟網路設定,更改介面卡,選擇VMware Network Adapter VMnet1 右鍵點選屬性,設定IPv4,手動分配一個ip(可

Windows Server 2008 R2遠端桌面服務配置授權啟用

 日常工作中,經常需要遠端連線到伺服器上,然而伺服器系統預設允許同時連線的最大連線數只有2個。這樣一來,問題就來了,常常遇到“終端伺服器超出最大連線數”,導致無法正常登陸伺服器。那麼如何才能解決這一問題呢?這就要依靠遠端桌面服務了。 一、 遠端桌面服務安裝和配置

linux查詢tftp服務目錄nfs服務目錄命令

/*********************************************************************  * Author  : Samson  * Date    : 01/18/2014  * Test platform:  *  

Linux控制服務

一、什麼是服務? 系統中執行的對於系統本身沒有意義,但是對客戶主機有重大意義的程式叫做服務型軟體,簡稱服務。 cs模型 c表示client s表示server 二、用什麼控制服務? 系統中的初始化程序可以對服務進行相應的控制。 三、系統的初始化程序是什麼 systemd

Windows Server 2008 R2 多使用者實現遠端連線登入 遠端桌面服務配置授權啟用

日常工作中,經常需要遠端連線到伺服器上,然而預設的伺服器系統同時連線的最大連線數只有2個。若第三個使用者登入,就會出現以下問題: 那麼該如何解決呢? 一、遠端桌面服務安裝和配置 伺服器管理器------角色-----新增角色:選擇“遠端桌面服務”,下一步 選擇角色服務:

遠端呼叫服務(RPC)訊息佇列(Message Queue)對比及其適用/不適用場合分析

最近考慮把公司系統重構升級,將原有的垂直MVC架構遷移為分散式系統,因此著重瞭解了下遠端呼叫服務(RPC)和訊息佇列(MQ)。RPC和MQ都是用於分散式系統的兩個關鍵技術,並且裡面都有服務提供者和消費者的概念,可在一定程度上對系統進行解耦。但對於彼此應用場景的區分還不是特別

深度學習實踐操作—從小白到大白(三):Linux遠端控制

深度學習實踐操作—從小白到大白 目錄 三. Linux遠端控制 在具體使用時,特別是實驗室或者工作時多人使用同一臺伺服器,一般通過本機遠端控制。 本機是Linux系統,使用ssl指令即可:ssh –l 使用者名稱 IP地址 ssh

Linux 124課程 8、管理本地的Linux用戶組、控制服務守護進程

isa 單元 關系 tex text socket ted roc rest 1、系統啟動和服務器進程的管理器RH5 6 首先啟動Init 進程 system v RH7 使用 systemd 是系統啟動和服務器進程的管理器  特點:  並行化功能; 十個進程並行

Linux常用服務器搭建sshscp

ssh scp 1.ssh 1.1ssh介紹 SSH(Secure Shell),由IETF的網絡工作小組Network Working Group制定,ssh是建立在應用層和傳輸層基礎上的安全協議。 SSH是專為遠程登錄會話和其他網絡服務提供安全性的協議,常用於遠程登錄以及用戶之間的資料拷貝。 SS

Linux(RadHat)基礎學習—系統服務控制sshd服務

遠程 51cto 確認密碼 指定 認證 當前 開始 oot conn 1.系統服務 1.什麽是服務 系統服務(system services)是指執行指定系統功能的程序、例程或進程,以便支持其他程序,尤其是底層(接近硬件)程序。通過網絡提供服務時,服務可以在Active D

linux --- 控制服務以及遠端連線

控制服務 1.用什麼控制服務 系統初始化程序可以對服務進行相應的控制 2.當前系統初始化程序是什麼 systemd ---> 系統初始化程序 pstree ---> 顯示系統中的程序樹 3.程序控制命令 ssh --------> sshd

Linux下使用SSHVNC實現圖形化遠端控制(Ubuntu 9.04環境)

1、配置網絡卡     在Ubuntu中配置網絡卡很簡單,只需要開啟/etc/network/interfaces檔案,將你想設定靜態IP的那個網絡卡的IP配置資訊儲存起來就可以了,動態獲取的不需要配置。 auto eth1   iface eth1 inet stat

Linux遠端下載檔案的兩種方法之 ftp命令scp命令

ftp命令:  伺服器有安裝ftp Server,另外一臺Linux可以使用ftp的client程式來進行檔案的拷貝讀取和下載。  1. 連線ftp伺服器    格式:ftp [hostname| ip-address]   a)在linux命令列下輸入:ftp 192.1

[Linux] scp本地服務遠程服務器拷貝文件

分享 下載文件 bsp bubuko 上傳 下載 info 服務 ima 上傳本地文件到服務器scp 本地路徑 用戶名@遠程服務器ip:遠程路徑 下載文件 scp 用戶名@遠程服務器ip:遠程路徑 本地路徑-r 是上傳下載本地目錄到遠程 遠程文件 [Lin