Linux環境下實現SSH遠程管理

what 什麼是SSH?

SSH(Secure Shell)是一種安全通信協議,主要用來實現字符界面的遠程登錄、遠程複製等功能。OpenSSH是實現SSH協議的開源項目


why 爲什麼要學習SSH,它與其他遠程協議的區別在哪裏?

SSH協議對通信雙方的數據傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令。與早期的TELNET、RSH、PCR遠程應用相比,SSH協議提供了更好的安全性。


where SSH適合應用在哪裏?

基於C/S架構,適合以部署OpenSSH服務器和客戶端,實現遠程連接、控制、複製等功能。


how? 如何部署並實現其功能?

一、配置OpenSSH服務端

    在RHEL6系統中,OpenSSH服務器由openssh、openssh-server等軟件包提供(默認已經安裝好),並已將sshd添加爲標準的系統服務。

    sshd服務的配置文件是/etc/ssh/sshd_config,正確的調整相關配置,可以提高sshd遠程登錄的安全性。

    rpm -q openssh openssh-server        //查看這兩個軟件包是否安裝

    service sshd status        //sshd是openssh的默認系統服務查看是否運行


    1,服務監聽選項

    sshd服務的默認端口號是22,建議更改此端口號並制定監聽服務的具體IP地址,以提高安全性。

    vim  /etc/ssh/sshd_config        //默認的配置文件

    <文件中的內容>

    port    22        //監聽的端口

    ListenAddress 192.168.100.2        //監聽的地址爲192.168.100.2

    Protocol 2        //使用SSH V2版本,更加安全

    ..........        //省略部分內容

    UseDNS no        //禁用dns反向解析,提高處理速度

    ..........        //省略部分內容

    </文件中的內容>

    service sshd reload        //重新加載服務


    2,用戶登錄控制

    sshd服務默認允許root用戶登錄,不安全。建議先以普通用戶遠程登錄,再以su命令切換root用戶。

    vim  /etc/ssh/sshd_config        //默認的配置文件

    <文件中的內容>

    LoginGraceTime  2m        //登錄驗證時間爲2分鐘

    PermitRootLogin  no        //禁止root用戶登錄

    MaxAuthTries  6        //最大嘗試次數爲6

    PermitEmptyPasswords no        //禁止空密碼登錄

    AllowUsers  zhangsan  [email protected]        //允許哪些用戶登錄,多個用戶使用空格隔開

    DenyUsers  wangwu  [email protected]        //拒絕哪些用戶不能登錄,多個用戶使用空格隔開

    ......        //省略部分內容  

    </文件中的內容>

    service sshd reload        //重新加載服務

   !! 注意允許和拒絕不能同時使用!!

    上述是指允許zhangsan從任何地點登錄,admin只能從192.168.100.2進行登錄

    上述是指拒絕wangwu從任何地方進行登錄,lisi僅拒絕從192.168.100.125登錄其他地方可以登錄


    3,登錄驗證方法

    sshd服務支持兩種驗證方法——密碼驗證,密鑰對驗證。當密碼、密鑰對同時啓用時,優先使用密鑰對驗證。

    vim /etc/ssh/sshd_config

    <文件中的內容>

    PasswordAuthentication  yes        //啓用密碼驗證

    PubkeyAuthentication    yes        //啓用祕鑰對驗證

    AuthorizedKeysFile  .ssh/authorized_keys        //指定公鑰庫數據文件位置以及默認的名字

    ......        //省略部分內容

    </文件中的內容>

    service sshd reload        //重新加載服務

    其中,公鑰文件用來保存個客戶機上傳的公鑰文本,以便與客戶機本地的私鑰文件進行匹配驗證。之後我們再來講解如何創建公鑰私鑰


二,使用SSH客服端程序

    在rhel6系統中(centos6)openssh客戶端有openssh-client軟件包提供(默認已經安裝),其中包括ssh遠程登錄命令,以及scp、sftp遠程複製文件和傳輸的命令。實際上任何支持SSH協議的客戶端都可以與openssh服務進行通信,如windows 平臺的xsheel secureCRT等圖形工具。

    

    1,命令程序 ssh、scp、sftp

    (1.1)ssh遠程登錄

    命令格式 :    ssh  登錄用戶@目標主機地址

    通過ssh命令可以遠程登錄sshd服務,爲用戶提供一個安全的shell環境,以便對服務器進行管理和維護,使用時應指定登錄用戶,目標主機地址作爲參數地址。我們來通過linux客戶端以admin用戶進行登錄到192.168.100.2這臺web服務器上進行操作。

使用命令:ssh [email protected]

wKiom1bf3brzt8-bAACMz7ByxEs353.jpg


    第一次登錄的時候會提示是否接受祕鑰輸入yes,之後在輸入登錄用戶的密碼,接收的祕鑰信息將保存到~/.ssh/known_hosts文件中(客戶端本地)

    之後使用whoami 查看一下當前的登錄用戶是不是遠程服務器的系統用戶。

wKiom1bf3v2BYnhKAAAlahGbYl0917.jpg


    如果監聽的端口不是默認的22號端口(如2345)則登錄的時候需要指定端口號

使用命令:ssh -p2345 [email protected]

wKioL1bf4TqAhYAfAABHfBA-7Go750.jpg


    (1.2)scp遠程複製

    命令格式:

    scp 用戶名@目標ip:文件位置  本地文件位置     //將遠程主機的文件複製到本地

    scp 本地文件 用戶名@目標ip:文件位置        //將本地文件複製到遠程主機

使用命令:scp -p2345 [email protected]:/etc/passwd  /root

    //通過2345端口,將遠程主機的/etc/passwd文件複製到本地

wKiom1bf5DvwkFz9AAAxnDEg11s263.jpg

使用命令:scp -P2345 -r /boot/grub/grub.conf [email protected]:/opt

    //通過2345端口,將本地/boot/grub/grub.conf複製到遠程主機

wKioL1bf5c3BCKtIAAA8eY5ywCY123.jpg


    2,圖形工具Xshell

    xsheel是一款強大的終端模擬軟件支持telnet、ssh、sftp等協議,可方便的管理遠程主機。

    在www.xsheel.com可以進行下載,下載安裝完成之後可以進行管理任務。

    下圖就是xshell的管理界面,支持部分中文。

wKioL1bf6iDSqDKjAADegBFqS7c365.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章