SSH的使用和概要

SSH服務(TCP端口號22):安全的命令解釋器
爲客 戶機提供安全的Shell 環境,用於遠程管理
SSH基於公鑰加密(非對稱加密)技術: 數據加密傳輸; 客戶端和服務器的身份驗證;
公鑰 和 私鑰   是成對生成的,這兩個密鑰互不相同,兩個密鑰可以互相加密和解密;
                   不能根據一個密鑰而推算出另外一個密鑰;
                   公鑰對外公開,私鑰只有私鑰的持有人才知道;

數據加密  和  數字簽名  (根據功能不同分的)

發送方使用接受方的公鑰加密數據;
接受方使用自己的私鑰解密數據;
數據加密保證了所發送數據的機密性;

數字簽名:(數字簽名保證數據完整性、身份驗證和不可否認)
發送方:對原始數據執行HASH算法得到摘要值;發送方用自己的私鑰加密摘要值;
           將加密的摘要值與原始數據發送給接受方;
接受方:用發送方公鑰解密摘要值,同時對收到的原始數據同樣執行HASH產生另一種摘要值;
           將解密的摘要值與產生的摘要值對比;

OpenSSH:
服務端主程序:/usr/sbin/sshd
客戶端主程序:/usr/bin/ssh
服務端配置文件:/etc/ssh/sshd_config (重啓shhd服務生效)

客戶端配置文件:/etc/ssh/ssh_config
SSH登錄使用的用戶名:服務器中的本地系統用戶的帳號名;
SSH登錄的用戶驗證方式
密碼驗證:使用服務器中系統帳號對應的密碼;(PasswordAuthentcation  yes)
密鑰對驗證:使用客戶端中生成的公鑰、私鑰;(PubkeyAuthentication yes  AuthorizedKeyFile  .ssh/authorized_keys)

使用ssh命令遠程登錄方法:
1.ssh 用戶名@服務器地址
2.ssh -l 用戶名  服務器地址  (較少用)
3.ssh 服務器地址(服務器正在使用哪個用戶就以哪個用戶登錄)


另外一些常用SSH相關的命令:

1
2
3
4
5
6
7
8
passwd #修改當前用戶密碼
groupadd SSH #添加組
useradd -g SSH -s /bin/'bash' -d /home/user1 user1 #添加用戶
passwd user1 #爲用戶user1創建密碼
userdel user1 #刪除用戶user1
groupdel SSH #刪除組SSH
停用帳號,VIM編輯密碼文件,在用戶名後添加 ":*" 。
 vim /etc/shadow
1
2
service sshd restart # 重啓sshd
ps -aux | grep sshd #查看是否運行成功


客戶端密鑰存放位置
~.ssh目錄下
服務器端的密鑰存放位置
/etc/ssh/ssh_host_*

known_hosts  存放訪問過的服務器的公鑰
authorized_keys 存放需要驗證的客戶機的公鑰
.ssh文件夾和下面的文件權限的組和其它人不能有w權限
            
ssh訪問很慢的原因和解決辦法
原因:訪問服務器的時候會把服務器的ip地址反向解析爲域名,如果無法解析就會導致登陸時很慢
下面三種方法都可以解決這個問題
1、清空/etc/resolv.conf文件中nameserver記錄
2、在客戶機的/etc/hosts文件中添加服務器域名的解析記錄
3、修改客戶機的/etc/ssh/ssh_config文件中:GSSAPIAuthentication no
        
問題二:若是公鑰文件出了問題,會導致無法認證,解決方法,就是把文件刪除
        rm -rf  /root/.ssh/know_hosts
        service sshd restart
                
配置案例:


        密碼方式:  
                     service sshd restart     重啓服務
            netstat -anpt  |  grep  sshd   查看端口
            登錄主機:ssh [email protected]
            ssh直接在遠程主機上新建用戶: ssh [email protected] adduser txy
        在密碼認證的時候要看:服務器端中的 /etc/ssh/sshd_config 中PasswordAuthentcation  yes,,才能用密碼認證
        
    第一次訪問服務器時不用輸入yes
                ssh -o StrictHostKeyChecking=no [email protected]


                /etc/ssh/ssh_config客戶端文件
                StrictHostKeyChecking no  第一次訪問服務器時不用輸入yes
                
        
    祕鑰方式
    
        這裏的例子是一個普通用戶登錄到服務器中的普通用戶,root用戶登錄就更加簡單,不用創建文件,不用修改權限,生成祕鑰的地方的root下
                    複製scp的地方也在root下:
        服務器端
        
            查看文件:修改    /etc/ssh/sshd_config中   PubkeyAuthentication yes
            創建文件:    mkdir /home/xiaohua/.ssh
            修改文件權限:    chomd -R 600 /home/xiaohu/.ssh 在這個文件中別的用戶不能有w權限
        
        客戶端:
            useradd xiaolue
            su - xiaolue  
            ssh-keygen
            scp /home/xiaolue/.ssh/id_rsa.pub [email protected]:/home/xiaohua/.ssh/authorized_keys




訪問控制:
        /etc/hosts.allow 優先於下面的
        /etc/hosts.deny
        首先檢查hosts.allow文件,若找到相匹配的策略,則允許訪問;否則繼續檢查hosts.deny文件,若找到了
        相匹配的策略,則拒絕訪問;如果兩個文件中都沒有相匹配的策略,則允許訪問;


        vim /etc/hosts.allow
            sshd:210.13.218.*:allow  允許登錄的ip ,allow可以省略
            
        它能控制服務的範圍:1,受super daemon (xinetd) 服務管理
                        2,受支持libwrap.so模塊的服務
        查看具體服務是否控制:ldd /usr/sbin/sshd  |  grep wrap
                           idd $(which 服務)   |  grep wrap
                        
        修改後要重啓服務:service xined restart

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