ssh和sshd服務(wù)端的介紹和使用方法-創(chuàng)新互聯(lián)

什么是ssh?

揚(yáng)州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

SSH是Secure Shel 的縮寫,由IETF的網(wǎng)絡(luò)小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。SSH是比較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。

Secure Shell,協(xié)議
作用:數(shù)據(jù)在網(wǎng)絡(luò)中可以加密傳輸
實(shí)現(xiàn):openssh
客戶端:openssh-client
服務(wù)器端:openssh
端口:22

實(shí)現(xiàn):dropbear

telnet 
明文
客戶端:telnet 
服務(wù)器端:telnet-server 
端口:23
默認(rèn)情況下,禁止用root使用telnet登錄系統(tǒng)
生產(chǎn)環(huán)境中使用telnet,測(cè)試和目標(biāo)主機(jī)的指定端口是否可以正常的通信,也就是測(cè)試目標(biāo)主機(jī)的指定端口是否開放(通過端口來(lái)判斷服務(wù)是否處于開啟狀態(tài))

進(jìn)程

守護(hù)進(jìn)程:一個(gè)服務(wù)維護(hù)一個(gè)進(jìn)程,讓進(jìn)程工作在后臺(tái),每個(gè)進(jìn)程都有自己的服務(wù),可用service服務(wù)名 start|stop...進(jìn)行管理
超級(jí)守護(hù)進(jìn)程:一個(gè)服務(wù)維護(hù)多個(gè)進(jìn)程
xinetd
瞬時(shí)守護(hù)進(jìn)程:由超級(jí)守護(hù)進(jìn)程負(fù)責(zé)管理的子進(jìn)程就是瞬時(shí)守護(hù)進(jìn)程
telnet
瞬時(shí)進(jìn)程沒有自己的服務(wù),他的啟動(dòng)和管理依賴xinetd

ssh

telnet 
scp 
總結(jié):ssh的功能
   1、遠(yuǎn)程登錄
   2、遠(yuǎn)程文件傳輸
   3、類似于ftp的文件傳輸功能,sftp

ssh的客戶端和服務(wù)器端
   ssh安全
   ssh v1 <<廢棄
     RSA
   ssh v2
     RSA DSA
   如何通過公鑰來(lái)判斷服務(wù)器是合法的?

ssh的配置文件

客戶端配置文件:/etc/ssh/ssh_config
服務(wù)器端配置文件 /etc/ssh/sshd_config  
linux ssh客戶端收到的公鑰文件的保存位置
~/.ssh/known_hosts 
ssh服務(wù)器端的ip 加密算法  秘鑰

客戶端工具1-SSH

客戶端使用ssh兩種使用方式
基于口令做登錄方式
基于秘鑰做登錄方式  
基于口令的認(rèn)證方式
格式
   ssh [options][user@]host [COMMAND]
   ssh [options][-l user] host [COMMAND]
說(shuō)明:
   user:指定以哪個(gè)用戶的身份登錄遠(yuǎn)程主機(jī),如果不指定user,
   則是以當(dāng)前系統(tǒng)的用戶來(lái)登錄遠(yuǎn)程主機(jī)
   command:直接在遠(yuǎn)程主機(jī)上執(zhí)行命令,執(zhí)行完畢后自動(dòng)退出
   選項(xiàng):
     -p port:指定遠(yuǎn)程主機(jī)的ssh所使用的端口,如果不指定此選項(xiàng),默認(rèn)連接22端口
     -t :遠(yuǎn)程執(zhí)行sudo命令

客戶端配置文件

/etc/ssh/ssh_config

基于秘鑰做登錄認(rèn)證(免密碼登錄)

原理:
客戶端 
   一對(duì)秘鑰
     將公鑰保存在服務(wù)器端的對(duì)應(yīng)賬戶的家目錄下的隱藏文件中(.ssh)
   登錄
     服務(wù)器端就會(huì)向客戶端發(fā)送質(zhì)詢
       服務(wù)器端會(huì)用預(yù)先保存的公鑰來(lái)加密一段數(shù)據(jù),然后將加密數(shù)據(jù)發(fā)送給客戶端,如果客戶端可以
       解密,則是合法用戶。

linux免密碼登錄實(shí)現(xiàn)過程
   準(zhǔn)備linux虛擬機(jī)
     172.20.225.70 clinet
     172.20.225.71 server

第一步:在客戶端生成一對(duì)秘鑰
     #ssh-keygen -t rsa
     默認(rèn)秘鑰對(duì)的位置 /root/.ssh/id_rsa
       id_rsa     <<<秘鑰文件
       id_rsa.pub   <<<公鑰文件
     ls ~/.ssh/
     id_rsa  id_rsa.pub  

第二步:將公鑰文件傳到服務(wù)器端
   root登錄172.20.225.70,因此,這個(gè)公鑰文件需要放在172.20.225.70的root用戶的家目錄下
   ssh-copy-id [-i identifile] [user@]host
   說(shuō)明:-i 指定公鑰文件的
      user@host:指定傳遞到那個(gè)主機(jī)的那個(gè)用戶的家目錄下
   工作原理:
     1、將公鑰文件傳遞到服務(wù)器端
     2、將傳遞的文件改名為authorized_keys
     3、修改文件的權(quán)限為600

實(shí)現(xiàn)命令
   ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.20.225.71
   服務(wù)器收到客戶端的公鑰文件后,會(huì)自動(dòng)改名為:authorized_keys

openssh客戶端
   windows客戶端
     xshell
     putty
     secureCRT
     ……
   linux客戶端
     ssh、sftp、scp

客戶端工具2-scp

作用:在兩個(gè)主機(jī)上互相的傳遞文件
格式:
   pull(拉取):scp [options] [user@]host:/pat/to/file /path/to/save
   push(推送):scp [options] /path/to/push [user@]host:/path/to/save

   選項(xiàng):
     -r:遞歸
     -t:保留文件的屬性不變(權(quán)限、時(shí)間戳)
     -q:靜默模式
     -P port:指定使用的端口(默認(rèn)使用22端口)

     推送例子:將本地文件/root/new1.txt推送到172.20.225.71的tmp目錄下
       #scp /root/new1.txt root@172.20.225.71:/tmp/

     拉取例子:將172.20.225.71下/root/11.sh 拉取到本機(jī)/home/下
       #scp root@172.20.225.71:/root/11.sh /home

客戶端工具3-sftp

格式:sftp IP 

ssh的服務(wù)器端的配置文件
/etc/ssh/sshd_config

#Port 22            <<<< ssh服務(wù)所監(jiān)聽的端口
#ListenAddress 0.0.0.0     <<<< ssh服務(wù)所監(jiān)聽的地址
#PermitRootLogin yes      <<<< 是否允許root遠(yuǎn)程登錄
#MaxAuthTries 6         <<<< 指定大嘗試次數(shù)
#MaxSessions 10         <<<< 大并行連接會(huì)話數(shù)量(同時(shí)多少個(gè)用戶嘗試連接服務(wù)器)
AuthorizedKeysFile  .ssh/authorized_keys  <<<<指定秘鑰認(rèn)證文件名稱和路徑
#PubkeyAuthentication yes    <<<< 是否支持秘鑰認(rèn)證
PasswordAuthentication yes   <<<< 是否支持口令認(rèn)證
#UseDNS no           <<<<  禁止做DNS反向解析
#ClientAliveInterval 0     <<<< 設(shè)置ssh登錄的空閑超時(shí)時(shí)間,單位是秒
   變量:TMOUT=xx 

#AllowUsers= user1 user2 ……   <<<< 設(shè)置白名單
#AllowGroups=gp1 gp2      <<<< 設(shè)置白名單
#DenyUsers= user1 user2     <<<< 設(shè)置黑名單
#DenyGroups=gp1 gp2       <<<< 設(shè)置黑名單
#PermitEmptyPasswords no    <<<< 設(shè)置是否允許空密碼

日志設(shè)施
   記錄日志的方式
   SyslogFacility AUTHPRIV
     AUTHPRIV意味著日志信息會(huì)記錄到/var/log/secure

   ssh服務(wù)器端日志
     /var/log/secure
       這個(gè)日志需要經(jīng)???       普通用戶沒有權(quán)限查看和修改

配置ssh實(shí)戰(zhàn)
   1、配置監(jiān)聽的端口
   2、配置監(jiān)聽的地址
   3、禁止使用ssh v1
   4、設(shè)置用戶白名單
   5、設(shè)置空閑超時(shí)時(shí)間
   6、結(jié)合防火墻設(shè)置ssd規(guī)則
   7、禁止使用弱密碼(數(shù)字 字母 特殊符號(hào) 長(zhǎng)度位8字符以上)
   8、盡量使用秘鑰認(rèn)證
   9、禁止使用空密碼登錄
   10、禁止root遠(yuǎn)程ssh
   11、限制嘗試次數(shù)與并行連接數(shù)量
   12、將日志文件做異地備份
   13、經(jīng)常分析查看日志文件

   centos6和centos7的區(qū)別
   service sshd status
   systemctl status sshd.service

用三個(gè)虛擬機(jī)實(shí)現(xiàn)如下效果

1、從A主機(jī)可以直接登錄B C 兩個(gè)主機(jī)
2、從A主機(jī)可以直接以遠(yuǎn)程的方式在B C 兩個(gè)主機(jī)上執(zhí)行命令
3:從A主機(jī)可以直接向B C 兩個(gè)主機(jī)發(fā)送文件
案例:讓baskup主機(jī)可以使用秘鑰的方式登錄web1 web2……且以普通用戶身份

執(zhí)行秘鑰分發(fā)和文件傳輸?shù)炔僮?
1、創(chuàng)建普通用戶(三個(gè)主機(jī)都創(chuàng)建)
[root@localhost ~]# useradd tuser
[root@localhost ~]# echo "123456" | passwd --stdin tuser

2、生成秘鑰對(duì)
[root@localhost ~]# su - tuser
[tuser@localhost ~]$ ssh-keygen -t rsa

3、傳遞秘鑰
[tuser@localhost ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub tuser@172.20.225.70
[tuser@localhost ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub tuser@172.20.225.71

4、登錄
[tuser@localhost ~]$ ssh root@172.20.225.70
root@172.20.225.70's password: 
免密登錄 
[tuser@localhost ~]$ ssh tuser@172.20.225.70
[tuser@client ~]$ 

總結(jié):在進(jìn)行登錄的時(shí)候,必須保證當(dāng)前用戶的家目錄下有.ssh/id_rsa
在對(duì)方主機(jī)的指定用戶的家目錄下,必須要有公鑰文件.ssh/authorized_keys

[tuser@localhost root]$ ssh tuser@172.20.225.70 '/sbin/ip add'
[tuser@localhost root]$ ssh tuser@172.20.225.71 '/sbin/ip add'

批量獲取主機(jī)的信息
userName="tuser"
for i in 67 68 69 70 71
do
     ip="172.20.225.$i"
     if ! ping -c1 -W1 $ip &>/dev/null;then
         echo "The host $ip is not exist."
     else
         res=`ssh ${userName}@${ip} '/bin/df -h | grep sda1'`
         echo "==========================ip:$ip====================="
         echo "The disk use infomation:$res"
     fi
done

批量向主機(jī)傳遞文件
   讓用戶輸入一個(gè)文件,則將文件傳遞到所有的主機(jī)
   如果傳輸成功,提示綠色成功,如果傳輸失敗,提示紅色失敗,如果文件不存在,則提示無(wú)此文件。
#!/bin/bash
#author:lichao
#date:20190809
#function: use ssh to send file
#mail:chao.il@qq.com

userName="tuser"
funFile=/etc/init.d/functions
if [ ! -e $funFile ];then
   echo "Error. the funcation file not exist."
   exit 19
else
   . $funFile
fi

read -p "Please enter a file: " fileName
if [ ! -e $fileName ];then
   echo "no such file."
   echo "bye."
   exit 12
fi 

for i in 70 71
do
   ip="172.20.225.$!"
   if ping -c1 -W1 $ip &>/dev/null;then
     if scp -rq $fileName $userName@$ip:~/;then
       action "send file to $ip" /bin/true
     else
       aciton "send file to $ip" /bin/false
     fi
   else
     action "send file to $ip" /bin/false
   fi 
done

案例:將文件傳遞到目標(biāo)主機(jī)的非家目錄下
[tuser@localhost root]$ echo "test page".test.page
test page.test.page
[tuser@localhost ~]$ scp test.page tuser@172.20.225.70:/etc/
scp: /etc//test.page: Permission denied
[tuser@localhost ~]$ scp test.page tuser@172.20.225.70:~/
test.page

沒有權(quán)限

分兩步:
   1、將文件傳遞到目標(biāo)主機(jī)的家目錄下
   2、遠(yuǎn)程執(zhí)行移動(dòng)命令,將家目錄下的文件移動(dòng)到目標(biāo)位置

   [tuser@localhost ~]$ scp test.page2 tuser@172.20.225.70:~/
   test.page2              100%  10   10.8KB/s  00:00

   bash-4.2# ls /home/tuser/
   .bash_history  .bash_logout  .bash_profile  .bashrc     .ssh/      test.page    test.page2 
   bash-4.2# visudo
   tuser  ALL=(ALL)    NOPASSWD: /bin/mv

   [tuser@localhost ~]$ ssh -t tuser@172.20.225.70 'sudo mv ~/test.page2 /etc/'
   Connection to 172.20.225.70 closed.

   bash-4.2# ls /etc/te
   terminfo/  test.page1  test.page2  

配置sshd服務(wù)

   端口
   0-65535
   小于1024的端口:是由系統(tǒng)保留使用的
   自定義端口通常用1024以上的端口

   端口的作用:在系統(tǒng)當(dāng)中唯一的標(biāo)識(shí)一個(gè)進(jìn)程
   這樣就可以現(xiàn)實(shí)將發(fā)送給指定端口的數(shù)據(jù)轉(zhuǎn)發(fā)到指定的進(jìn)程中
   系統(tǒng)中每個(gè)進(jìn)程在啟動(dòng)的時(shí)候,會(huì)自動(dòng)個(gè)向注冊(cè)使用一個(gè)端口,當(dāng)有發(fā)送到這個(gè)端口的數(shù)據(jù)的時(shí)候,
   內(nèi)核會(huì)根據(jù)端口的記錄轉(zhuǎn)發(fā)給指定的進(jìn)程。
   一個(gè)主機(jī)向另一個(gè)主機(jī)發(fā)送數(shù)據(jù)包的時(shí)候,在數(shù)據(jù)包中已經(jīng)指定了這個(gè)數(shù)據(jù)包是給多少號(hào)端口的
   作用:用來(lái)實(shí)現(xiàn)讓客戶端使用22端口來(lái)遠(yuǎn)程登錄
   配置文件:
   /etc/ssh/sshd_config    <<<<<這是服務(wù)端的配置文件
   /etc/ssh/ssh_config     <<<<<這是客戶端的配置文件

   安全操作
   1、修改sshd的服務(wù)端口
   # vi /etc/ssh/sshd_config
    Port ***
   # service sshd restart

   2、解決xshell登錄緩慢的問題
     將UseDNS yes 改為 UseDNS no
     將GSSAPIAuthentication 改為  GSSAPIAuthentication no
   3、允許root用戶登錄
   PermitRootLogin yes 改為no 后root用戶登錄不了系統(tǒng)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

名稱欄目:ssh和sshd服務(wù)端的介紹和使用方法-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article12/ddosgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站網(wǎng)站營(yíng)銷、靜態(tài)網(wǎng)站標(biāo)簽優(yōu)化、云服務(wù)器服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)