ssh服務

友弟發表於2018-06-28

telnet

遠端登入 協議,23/tcp
C/S
S:telnet伺服器
C:Telnet客戶端
明文傳送

ssh

Secure Shell,應用層協議 22/tcp
通訊過程和認證過程都是加密的。主機認證
主機金鑰
非對稱加密
secrect key public key
第一次 ssh 傳送公鑰 yes/no
資料用對稱加密
客戶端建立連線後,生成對稱金鑰(伺服器公鑰加密後傳送過去)–》傳送給伺服器。
後面用對稱金鑰加密,可以提高加解密的速度。
不允許root使用者直接登入,一般是su在切換。
不定期更改密碼。

  1. 通訊過程及認證過程是加密的,主機認證
  2. 使用者認證過程加密
  3. 資料傳輸過程加密

ssh V1 V2

V1 :man-in-middle中間人攻擊
sshv2

認證過程:

使用者認證過程加密(使用者與主機的金鑰)
客戶端:生成金鑰s/p —-> p(放在使用者的家目錄) 資料–s–P –>s–p—>伺服器 (對稱加密)
1.基於口令認證
2.基於金鑰的認證

協議:規範
實現:伺服器端,客戶端

linux:openSSH
  C/S 
    伺服器:sshd,配置檔案/etc/ssh/sshd_config
    客戶端:ssh,配置檔案/etc/ssh/ssh_config
    ssh-keygen:金鑰生成器
     ssh-keygen - authentication key generation, management and conversion
    ssh-copy-id:將公鑰傳輸至遠端伺服器。
           ssh-copy-id - install your public key in a remote machine’s authorized_keys
           ssh-copy-id [-i [identity_file]] [user@]machine
scp:跨主機安全複製工具。

客戶端:

       ssh  ip(和當前主機一樣的使用者)
       ssh -l useranme host
       yes  (主機認證)
       password:主機密碼
   ssh hadoop@ip(遠端主機使用者)
   .ssh/known_host
   
ssh username@host `command`
ssh youdi@172.16.0.30  `ls -a`
要輸入密碼:

scp:

   scp src dest 
    -R
     -a
   源,目的都可以是遠端主機
scp username@host:/path/to/somefile /path/to/local

ssh-keygen:

  ssh-kengen -t rsa 
       ~/.ssh/id_rsa
       ~/.ssh/id_rsa.pub
公鑰複製(追加到)到遠端主機某使用者家目錄下的:.ssh/authorized_keys檔案或.ssh/authorized_keys2檔案中
.ssh 目錄許可權必須是700
ssh-copy-id
 ssh-copy-id [-i [identity_file]] [user@]machine
ssh-copy-id -i id_rsa.pub root@172.16.20.6
單項信任關係
ssh-keygen -t rsa
ssh-copy-id  -i filename username@host
scp  authorized_keys
ssh-kengen -t rsa -f .ssh/id_rsa -P ``
-f /path/to/key_file 
-P  指定加密私鑰的密碼


netstat 

dropbear

嵌入式系統專用的ssh伺服器端和客戶端工具。
伺服器:dropbear
dropbearkey
客戶端:dbclient

dropbear預設使用nsswitch實現名稱解析:

/etc/nsswitch
/lib/libnss_files*
/usr/lib/libnss3.so
/usr/lib/libnss_files*


dropbear會在使用者登入檢查其預設的shell是否為當前系統的安全shell
  /etc/shells
tty
  tty - print the file name of the terminal connected to standard input


相關文章