Linux中ssh介紹與ssh+key密鑰登錄部署

環境內核信息:
[root@zabbix-01 ~]# uname -a
Linux zabbix-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

ssh服務介紹

SSH是Secure Shell Protocol的簡寫算法

SSH先對聯機數據包經過加密技術進行加密處理,加密後在進行數據傳輸。確保了傳遞的數據安全shell

SSH服務主要提供兩個服務功能centos

 一是提供相似telnet遠程聯機服務器的服務,即SSH服務;安全

另外一個是相似FTP服務的sftp-server,藉助SSH協議來傳輸數據的,提供更安全的SFTP服務(vsftp,proftp)。服務器

ssh服務的所在軟件包:openssh-clients、openssh-server網絡

[root@nfs01 ~]# rpm -ql openssh-server
/etc/rc.d/init.d/sshd     #ssh服務啓動腳本文件
/etc/ssh/sshd_config      #ssh服務配置文件
/etc/sysconfig/sshd       #ssh服務建立密鑰有關
/usr/sbin/.sshd.hmac      #ssh服務加密算法有關文件
/usr/sbin/sshd            #ssh服務進程啓動命令
openssh-server包內容介紹
[root@nfs01 ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config      --- ssh服務客戶端配置文件
/usr/bin/.ssh.hmac             
/usr/bin/scp             --- ssh服務遠程傳輸複製命令scp
/usr/bin/sftp            --- ssh服務遠程傳輸文件服務
/usr/bin/slogin          --- ssh服務遠程登錄命令
/usr/bin/ssh             --- ssh服務遠程登錄命令
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id     --- ssh服務遠程分發公鑰命令
/usr/bin/ssh-keyscan
openssh-clients包內容介紹

ssh遠程登錄方式

[e:\~]$ ssh 10.0.0.31      #端口號不能改才能這樣

Connecting to 10.0.0.31:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Tue Oct 17 23:22:43 2017 from 10.0.0.253
[root@nfs01 ~]#
ssh鏈接方式

ssh服務認證過程與基於密鑰認證過程

 ssh服務認證鏈接過程

ssh服務基於密鑰認證過程dom

 

ssh服務優化

ssh配置文件默認登錄參數修改ssh

修改SSH服務的運行參數,是經過修改配置文件/etc/ssh/sshd_ config實現的。ide

通常來講SSH服務使用默認的配置已經可以很好的工做了,若是對安全要求不高,僅僅提供 SSH服務的狀況,能夠不須要修改任何配置。測試

SSH配置文件相關參數說明

 

命令參教

參數說明

Port

指定sshd進程監聽的端口號,默認爲22。可使用多條指令監聽多個端口。默認將在本機的全部網絡接口上監聽,可是能夠經過 ListenAddress指定只在某個特定的接口上監聽。

PermitEmptyPasswords

是否容許密碼爲空的用戶遠程登陸。默認爲"no"。

PermitRootLogin

是否容許root登陸。可用值以下:" yes"(默認)表示容許。"no」表示禁止。

"without-password"表示禁止使用密碼認證登陸。" forced- commands-only"表示只有在指定了command選項的狀況下才容許使用公鑰認證登陸。同時其它認證方法所有被禁止。這個值經常使用於作遠程備份之類的事情。

1. 多開一個窗口

2. 臨時多部署一條鏈接方式

3. 給普通用戶 sudo權限

UseDNS

指定sshd是否應該對遠程主機名進行反向解析,以檢查此主機名是否與其IP地址真實對應。默認值爲" yes"。

ListenAddress

指定監聽並提供服務相應的網卡地址信息

 
 更改ssh默認登錄配置執行方法爲:
[root@centos ~]#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori 
##—>更改配置前進行備份,是系統管理員的一個良好的習慣。 
[root@centos ~]#vi /etc/ssh/sshd_config     #—>編輯 sshd_config 
Port 4188                #—>ssh鏈接默認端口爲22,這淮都知道。所以,爲提升安全級別,建議改掉它。 
PermitRootLogin no       #—>root超級用戶黑客都知道,建議禁止它遠程登錄能力。 
PermitEmptyPasswords no  #—>禁止空密碼登錄 
UseDNS no                #—>不使用DNS      
GSSA PI Authentication no  #->認證的 
 重點配置參數說明
#Port 22                  --- 表示修改ssh服務默認端口號
#AddressFamily any        --- 指定監聽ipv4地址,或是ipv6地址,或者全部都監聽
#ListenAddress 0.0.0.0    --- 監聽地址只能監聽本地網卡上配置的地址,監聽的網卡能夠對請求作出相應

ssh服務祕鑰登陸配置

基於口令認證方式

[root@nfs01 ~]# ssh -p4188 10.0.0.41
root@10.0.0.41's password: 
Last login: Wed Oct 18 12:07:34 2017 from 10.0.0.31
[root@backup ~]#

基於密鑰認證方式

第一步、建立密鑰對

[root@backup ~]# ssh-keygen -t rsa    ### -t 指定以什麼加密方式這裏使用的rsa方式
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:
8b:bd:a3:10:5d:88:e4:ea:0f:3a:d1:13:7a:31:f1:45 root@backup
The key's randomart image is:
+--[ RSA 2048]----+
|    ..E          |
|  .o ...         |
|   oo.. .        |
|  +... .         |
| o.+. . S        |
|o.+  . o .       |
| oo.. . o        |
|.. o .  ..       |
|..  . ....       |
+-----------------+
[root@backup ~]# ll ~/.ssh/
total 12
-rw------- 1 root root 1671 Oct 18 11:06 id_rsa
-rw-r--r-- 1 root root  393 Oct 18 11:06 id_rsa.pub
-rw-r--r-- 1 root root 1178 Oct 11 15:50 known_hosts
建立密鑰對

第二步、將公鑰分發給存儲服務器

[root@backup ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.31   ##-i指定公鑰路徑
root@10.0.0.31's password: 
Now try logging into the machine, with "ssh '10.0.0.31'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

第三步、登錄測試

[root@backup ssh]# ssh 10.0.0.31
Last login: Wed Oct 18 00:58:52 2017 from 172.16.1.41
[root@nfs01 ~]#
相關文章
相關標籤/搜索