SSH

1 SSH  Secure Shell Protocol。 遠程登錄,sftp服務。


2 ssh linux下的客戶端就是ssh,可以實現遠程拷貝 scp。


3 linux下的ssh 服務  /etc/init.d/sshd start

   ps -ef | grep sshd     netstat -lntup | grep sshd

  

4 檢測是否可連上某個服務器的服務

   a: 檢測物理網絡是否通   ping ip

   b: telnet 端口 ,看看服務是不是開了


5 ssh 兩個版本,2穩定,1有漏洞。


6 linux ssh客戶端功能包括ssh遠程連接和scp遠程拷貝; ssh服務端包括遠程登錄服務和sftp服務。


7 rpm -qa openssh openssl

   遠程連接是 openssh  ,遠程加密是openssl


8 ssh 版本不同是連接不上的 ,ssh 是daemon進程


9 ssh 配置文件

   /etc/ssh/ssh_config  客戶端

   /etc/ssh/sshd_config  服務端

  

10 ssh 2版本支持兩種祕鑰 RSA 和 DSA , ssh1 只支持 RSA


11 ssh 認證類型

    a:基於口令的驗證, 賬號密碼形式

    b:基於祕鑰的驗證,服務端產生祕鑰對,公鑰放到服務端,私鑰放到客戶端。


12  ssh 企業級安裝設置

     a: 修改端口,限制某一個ip登錄,只允許內網IP登錄,不允許root登錄


13  sshd_conf 編輯(ssh 服務端優化)

      Port 端口修改

      ListenAddress  接聽地址修改  IP:Port

      GSSAPIAuthentication no  將yes註釋掉,連接慢就是這個影響的

      UseDNS no  將use dns改成no,連接慢也是這個影響的

      PermitRootLogin no禁止root用戶登錄

      PermitEmptyPasswords no  禁止空密碼登錄

      /etc/init.d/sshd reload 平滑重啓


14  遠程連接 ssh -p{Port}  {username}@IP


15  visudo   給用戶提權

       添加    username   All=(All)  NOPASSWORD:All



16 如何防止ssh登錄***

     用祕鑰登錄,上面sshd_conf 配置(牤牛陣法),防火牆關閉ssh,制定源IP限制(局域網,信任公網),開啓ssh只監聽本地內網IP,儘量不給服務器外網IP

     

17 ssh 命令

   連接 :  ssh -p{端口號}  {用戶名}@ip  {command}

   ~/.ssh/know_hosts 客戶端存放服務端公鑰的文件

   

   scp 遠程拷貝

   

    scp  -P{端口號}  -r(目錄拷貝) -p(保持屬性) /etc/hosts   {username}@ip:/tmp


     例子: 推數據 :  scp -P5213 -rp /etc  sshuser@ip:/tmp

                拉數據:   scp -P5213  -rp   sshuser@ip:/tmp  /etc


       -l  屬性 限速,防止在拷貝的時候佔滿帶寬。

       -t  屬性 打開終端。


    sftp 上傳


    sftp -oPort={端口號}   {遠程用戶名}@ip

   

    上傳:

    連上後, put {文件}   將本地文件上傳到服務端

    例子 :  put   /etc/hosts   上傳到家目錄


                put  /etc/hosts   /tmp  上傳到/tmp 目錄下


    下載:

          get  /etc/hosts /home



    sftp 不支持目錄,需要打包。(限定sftp登錄後只限定指定目錄下,不允許切換到其他目錄)


   18  ssh 批量管理

         a:創建用戶及密碼(在所有機器上創建用戶)

            useradd test

            echo 123456 | passwd --stdin test

        b: 生成祕鑰

           su - test

           ssh-keygen -t rsa

           非交互式創建祕鑰

           ssh-keygen -t rsa -P ''  -f  ~/.ssh/id_rsa > /dev/null 2>&1

       c: 將公鑰發到管理機上

           ssh-copy-id  -i  ~/.ssh/id_rsa.pub "-p {port} test@ip"

           (最終的在管理機上的名字  .ssh/authorized_keys,文件名是在 /etc/ssh/sshd_conf 中配置的)

   

     19: sudo 實現沒有權限用戶拷貝

           suid  實現沒有權限用戶拷貝(工作中不要用)

           sudo 提權方法


           visudo


          底下添加

           test         ALL=(ALL)          NOPASSWORD: /usr/bin/rsync

           用戶名         所有角色,可以 ALL=  就是root     不需要password可以執行的命令


          echo "test  ALL=(ALL)  NOPASSWORD: /usr/bin/rsync" >>/etc/sudoers

         visudo -c 檢查語法

         使用遠程sudo,需要加參數 -t     /etc/sudoers 裏查-t


20 非交互式  expect (sshpass,pssh)

     rpm -qa expect

     非交互式生成密鑰並批量管理

     !#/usr/bin/expcet

     spawn ssh-copy-id  -i  ~/.ssh/id_rsa.pub "-p {port} test@ip"

     expect {

               "yes/no"  {send "yes\r" :exp_continue}

               "password {send "$password\r"}

       }




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