天天看點

ssh遠端管理服務配置

##sshd遠端連接配接的優化

版主QQ:2559721591    資料網站:http://rshare.ys168.com

網絡環境:

ssh伺服器(虛拟機):192.168.10.25

ssh客戶機(實體機):192.168.10.1

ssh:是安全的外殼的縮寫(Secure Shell)。是專門為遠端登入會話和其他網絡服務提供安全性的協定。

linux的ssh遠端登入軟體:openssh,預設端口是22。

顯示遠端連接配接過程:ssh  -v  [email protected]

#軟體安裝

yum  install  -y  openssh-server  openssh-clients  openssh

說明:服務端:openssh-server

      用戶端:openssh-clients

      通用程式:openssh

      密鑰驗證:openssh-askpass

服務基本管理:

    重新開機服務:service  sshd  restart

    設為開機啟動:chkconfig   sshd  on

常用指令:ssh、scp、ssh-keygen、ssh-copy-id、sftp

ssh遠端登入:

文法:ssh   [選項]  使用者@遠端IP   [指令]

選項:-v  顯示過程

例:遠端執行指令:ssh  [email protected]   'ls /;ifconfig'

    遠端登入:ssh  [email protected] 

scp指令:

功能:采用ssh協定上傳、下載下傳檔案。

文法:scp  -rv   源檔案    目标檔案

選項:-r 遞歸複制目錄     -v 顯示過程    -P 指定端口  

執行個體:上傳本機/etc目錄到[email protected]:/tmp/目錄。

   scp  -rv  /etc   [email protected]:/tmp/       //上傳檔案

   ssh  [email protected]   ls  /tmp/et*         //驗證結果

執行個體:上傳[email protected]:/etc目錄到本機/opt目錄。

   scp  -rv  [email protected]:/etc   /opt/       //下載下傳檔案 

   ls   /opt/      //驗證結果

#問題:ssh服務連接配接慢的解決。

說明:sshd_config是伺服器配置,ssh_config是用戶端配置檔案。

首先:vi  /etc/ssh/sshd_config 修改如下内容:

UseDNS  no     //禁用DNS解析功能(122行)

GSSAPIAuthentication   no    //禁用GSSAPI授權功能(81行)

然後:vi  /etc/ssh/ssh_config    //用戶端配置檔案,修改如下内容:

最後:1、重新開機sshd服務:service  sshd  restart

      2、用客戶機遠端登入測試:ssh  [email protected]   ifconfig

##需求:實作ssh免密碼遠端登入。采用id_rsa私鑰、id_rsa.pub公鑰檔案自動驗證功能。

RSA簽名和驗簽過程:

1.簽名過程:

    client提取消息m的消息摘要h(m),并使用自己的私鑰對摘要h(m)進行加密,生成簽名s。

    client将簽名s和消息m一起,使用server發過來的公鑰進行加密,獲得密文c,發送給server。

2.驗簽過程:

    server接受到密文後,用自己的私鑰對其解密,獲得明文消息m和簽名s。

    server使用client的公鑰解密數字簽名s,獲得消息摘要h(m)。

    server使用相同的方法提取消息m的消息摘要h(m)與上一步解密得到的h(m)進行比較,如果相同則驗簽成功。

公鑰和私鑰須知:

  A、公鑰是給别人的:

      1、發送密文使用公鑰加密

      2、驗證簽名使用公鑰驗證

  B、私鑰是自己保留的

      1、接受密文使用私鑰解密

      2、發送簽名使用私鑰簽名

注意:上述過程逆轉是不行的,比如使用私鑰加密,使用公鑰解密是不行的。

實作思路:1、在客戶機用ssh-keygen生成id_rsa私鑰、id_rsa.pub公鑰檔案。

          2、将客戶機的id_rsa.pub公鑰檔案上傳給ssh伺服器指定的使用者家目錄。

          3、在客戶機遠端登入,測試是否免密碼登入。

注意:公鑰和私鑰驗證是識别身份是根據客戶機的主機名來确認。上傳客戶機的公鑰後,一定不要再修改客戶機的主機名,否則公鑰和私鑰無法認證。

實施步驟:

1、在客戶機生成公鑰和私鑰(互動式):ssh-keygen  -t  rsa

(非互動):ssh-keygen  -t  rsa  -f  ~/.ssh/id_rsa  -N  ''

選項說明:-t指定加密算法    -f指定密鑰檔案   -N指定加密密碼

#生成成對的公鑰和私鑰密鑰。

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):回車

#這裡需要輸入兩次密鑰驗證密碼 這裡我們不在設定

Enter passphrase (empty for no passphrase):回車(空密碼)

Enter same passphrase again:回車(空密碼)

+

#私鑰儲存路徑及檔案名

Your identification has been saved in /root/.ssh/id_rsa. 回車

#公鑰儲存路徑進檔案名

Your public key has been saved in /root/.ssh/id_rsa.pub. 回車

The key fingerprint is:以下為密鑰指紋辨別符

aa:0e:89:eb:83:55:44:d1:a1:ed:2d:81:aa:4e:47:29 [email protected]

2、在客戶機上傳公鑰給伺服器:

   方法一:ssh-copy-id   [email protected]

   方法二:ssh-copy-id   -i  ~/.ssh/id_rsa.pub   [email protected]

3、在客戶機測試遠端控制:ssh   [email protected]   ifconfig

附加任務:掃描192.168.10.25主機上的key檔案内容。

   ssh-keyscan  192.168.10.25

#ssh服務端配置檔案安全加強。

#修改伺服器主配置檔案:vi  /etc/ssh/sshd_config

Port 22

ListenAddress 0.0.0.0

Protocol 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

#LoginGraceTime  2m     //登入寬限期為2分鐘

#PermitRootLogin yes    //允許root登入

#StrictModes yes  //yes必需保證存放公鑰的目錄的屬主與登陸使用者名是相同的

#MaxAuthTries 6    //密碼錯誤重試6次

#MaxSessions 10    //最大10個會話

#RSAAuthentication yes        //啟用RSA驗證

#PubkeyAuthentication yes     //啟用公鑰驗證

#AuthorizedKeysFile     .ssh/authorized_keys    //公鑰儲存的檔案

#PermitEmptyPasswords no      //禁止空密碼登入

PasswordAuthentication yes     //啟用密碼驗證

Subsystem       sftp    /usr/libexec/openssh/sftp-server     //啟用子系統sftp共享服務

#sftp用戶端

功能:采用sftp協定登入到ssh伺服器,通路伺服器上的檔案,在伺服器和客戶機之間傳輸檔案(上傳、下載下傳)。

文法:sftp   使用者名@遠端IP

執行個體:sftp   [email protected]

常用指令:

說明:sftp登入成功後,可以執行大多數檔案管理的shell指令。

help或?      //顯示指令幫助

pwd      //顯示伺服器工作路徑

!pwd     //顯示本地工作路徑

ls       //顯示伺服器目前目錄的檔案清單

cd   /tmp     //切換伺服器路徑到/tmp目錄

!ls           //檢視本地檔案清單

lcd  /etc     //切換本地路徑到/etc

get  源   目标     //下載下傳檔案

put  源   目标     //上傳檔案

bye     //登出

伺服器端配置檔案小結:

[root@localhost ~]# vim /etc/ssh/sshd_config 配置檔案中主要的三部分内容如下

1、常見SSH伺服器監聽的選項如下:

Port 22                    //監聽的端口為22

Protocol 2                //使用SSH V2協定

ListenAdderss 0.0.0.0    //監聽的位址為所有位址

UseDNS no                //禁止DNS反向解析

必做:找到UseDNS選項,預設為yes,會影響連接配接速度,将yes改為no。

2、常見使用者登入控制選項如下:

PermitRootLogin no            //禁止root使用者登入

PermitEmptyPasswords no        //禁止空密碼使用者登入

LoginGraceTime 2m            //登入驗證時間為2分鐘

MaxAuthTries 6                //最大重試次數為6

AllowUsers user            //隻允許user使用者登入,與DenyUsers選項相反

3、常見登入驗證方式如下:

PasswordAuthentication yes                //啟用密碼驗證

PubkeyAuthentication yes                    //啟用秘鑰驗證

AuthorsizedKeysFile .ssh/authorized_keys    //指定公鑰資料庫檔案

       本文轉自rshare 51CTO部落格,原文連結:http://blog.51cto.com/1364952/1952311,如需轉載請自行聯系原作者

繼續閱讀