ssh: secure shell安全的shell,一種協議,監聽tcp的22端口,安全的遠程登錄 (telnet 23端口,tcp)
Openssh:ssh協議的開源實現
服務器 主機
《-----------------
主機請求服務
------------------》
服務器使用自己的私鑰加密一段數據
主機使用服務器的公鑰解密
安裝telnet 命令: ~]# yum install telnet-server 查看安裝的包 ~]# yum list all telnet* 發現安裝了兩個包,telnet.x86_64,telnet-server.x86_64 ~]# chkconfig telnet on ~]# service xinetd restart ~]# ss -tnl 發現23號端口,已經起來了。
SSH協議版本:
v1 :基於CRC-32做MAC,不安全,易受中間人***
v2:雙方主機協議選擇安全的MAC方式,基於DH算法做祕鑰交換,基於RSA或DSA算法實現身份認證。
兩種方式的用戶登錄認證:v1 基於password v2 基於 key
OpenSSH
客戶端組件:
ssh,配置文件:/etc/ssh/ssh_config 格式: ssh [user@]host [command] ssh [-l user host [command] -p prot :設置遠程服務器監聽的端口,儘量不要使用22號端口 -X :支持X11轉發 -Y:支持信任的X11轉發 Host PATTERN 基於祕鑰的認證: 1.在客戶端生成祕鑰對 ssh -t rsa [-P ''] [-f "~/.ssh/id_rsa"] 註釋: -p 後面加上密碼,-f指定祕鑰保存目錄 2.把公鑰傳輸到遠程服務器對應用戶的家目錄 ssh-copy-id [-i [identity_file]] [user@]machine 3.測試 自加:以基於祕鑰的認證,將centos6(MaGeCentos),192.168.1.103登陸到centos7,192.168.1.104 1.在.103主機的/root/.ssh目錄下生產一對祕鑰 ~]# ssh-keygen -t rsa Enter file in which to save the key (/root/.ssh/id_rsa): 默認把祕鑰保存在/root/.ssh/id_rsa中,我直接選擇默認,按下回車鍵 Enter passphrase (empty for no passphrase): 是否加密,我直接按下回車鍵,選擇不加密 此時,~]# ls .ssh/ 會顯示多出了兩個文件,id_rsa id_rsa.pub 2.把公鑰傳輸到遠程服務器對應用戶的家目錄 ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected] 3.測試 ssh [email protected] 以後就不用輸入密碼了 問題: Address 192.168.1.104 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! Now try logging into the machine, with "ssh '[email protected]'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. 哈哈,以經找到解決方法,vim /etc/ssh/ssh_config 將GSSAPIAuthentication 值設爲 no,即可解決此問題。 scp命令(跨主機的文件複製命令): scp [option] SRC... DEST/ 兩種情況: PULL:scp [option] [user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEFILE PUSH: scp [option] /PATH/FROM/SOMEFILE [user@]host:/PATH/TO/SOMEFILE 選項:-r 遞歸複製(用於複製目錄) -p 保持原文件的屬性信息 -q 靜默模式 -P PORT :指明remote host監聽的端口 自加: PULL 機制演示: ~]# scp [email protected]:/etc/fstab /tmp/fstab.txt 把192.168.1.104下的/etc/fstab複製到192.168.1.103的/tmp/fstab.txt文件中 fstab 100% 501 0.5KB/s 00:00 PUSH機制演示: ~]# scp /etc/fstab [email protected]:/tmp/ 把192.168.1.103的/etc/fstab複製到192.168.1.104下的/tmp目錄下 sftp : sftp [user@]host sftp> help 自加: ~]# sftp [email protected]
服務器端組件:
ssh 配置文件:/etc/ssh/sshd_config 常用參數: Port 22022 ListenAddress PermitRootLogin 後面建議改爲NO UseDNS 改爲no 限制可登陸用戶的辦法: 白名單 AllowUsers user1 user2 AllowGroups 自加:當修改配置文件後,例如修改監聽端口爲22022後,要重啓服務,systemctl restart sshd.service (centos7上) 在Centos7上SElinux可能開啓,使用~]# getenforce 查看是否開啓,如果爲Enforcing則表示開啓;使用~]# setenforce 0 將其關閉。 在/etc/ssh/sshd_config 中 UseDNS yes這一項是是否進行DNS反解要改爲no