ssh:secure shell,應用層協議,tcp,22端口
通信過程及認證過程是加密的,還能實現主機認證
主機密鑰:
非對稱加密:
secret key
public key
密鑰交換
使用對稱密鑰傳輸數據
認證過程:
基於口令認證
基於密鑰認證
linux:openSSH
C/Sl架構
服務商:sshd,配置文件/etc/sshd_config
客戶端:ssh,配置文件/etc/ssh_config
ssh-keygen:密鑰生成器
ssh-copy-id:將公鑰傳輸至遠程服務器
scp:跨主機安全複製工具
主機認證的密鑰存放位置(客戶端):
用戶家目錄下.ssh/known_hosts文件中
[root@localhost .ssh]# cat known_hosts 10.189.9.202 ssh-rsa AAAABdd3NzaC1yc2EAAAABIwAAAQEAzGfM987ahPYjdvNsTJv46JFOUohANP7u+G/2Rm1QezQUDkyPrG5itgV+11Bafe7wg8VazKBC0kAy4jUt5Y+fEqCj+gL6gmMqag67TZsz9tT/z5sG/bVBCsUBCYee+wMhh8xRUgooLwYn+86brddzz01J+lsS8sux+P6iqCAurUgEEXY1Yv5HlnBAG8XQFyW7Wddc9NoJSmwmfdtoIPNSWQV91Ec0yZVBKLfvvbY58CjvidbsHHNwwLFIVw/wHcP7K1P/VapOR+ajTxZezR69KJtACfh8R3Yb3OklZ1E4hhBA0XMbcLPpNOuLBKwd8zfJbTX5vPZTodZSCkvpXJB/HTJb0pVtxjNw== [root@localhost .ssh]# pwd /root/.ssh
ssh [email protected] 'ls ~ ':不會登陸主機,直接遠程執行一個命令並回顯到本地
scp 命令:
-r
-a
scp USERNAME@HOST:/PATH/TO/somefile /path/to/local
scp /path/to/local USERNAME@HOST:/PATH/TO/somefile
ssh-keygen命令(用於在客戶端生成一對密鑰,實現密鑰認證)
-t rsa (指定加密類型)
[root@localhost ~]# ssh-keygen -t rsa -f .ssh/id_rsa -P '' -f指定文件路徑,-P指定密碼爲空 Generating public/private rsa key pair. Your identification has been saved in .ssh/id_rsa. Your public key has been saved in .ssh/id_rsa.pub. The key fingerprint is: 76:ef:7d:c2:c5:42:86:57:94:22:80:1b:63:d0:50:a7 [email protected]
~/.ssh/id_rsa
~/.ssh/id_rsa.pub (生成公鑰和私鑰的存放的路徑)
公鑰保存到遠程主機某用戶的家目錄下的.ssh/authorized_keys文件或.ssh/authorized_key2文件中,如果遠程服務中沒有.ssh目錄,可以手動生成,但文件夾權限一定要是700
ssh-copy-id命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
嵌入式系統專用的ssh服務端和客戶端工具:dropbear
服務器端:dropbear
dropbearkey,服務器端生成密鑰工具
客戶端:dbclient