SSH協議
爲客戶機提供安全的Shell環境,用於遠程管理
默認端口:TCP 22
OpenSSH
服務名稱:sshd
服務端主程序:/usr/sbin/sshd
客戶端主程序:/usr/bin/ssh
服務端配置文件:/etc/ssh/sshd_config
客戶端配置文件:/etc/ssh/ssh_config
[root@steven ~]# vi /etc/ssh/sshd_config …… Port 22 #端口號 Protocol 2 #協議版本 ListenAddress 192.168.1.254 #監聽IP地址 UseDNS no #禁用反向解析 PermitRootLogin no #禁止ROOT用戶登錄 PermitEmptyPasswords no #禁止空密碼用戶登錄 LoginGraceTime 2m #登錄時間 MaxAuthTries 6 #連接次數 PasswordAuthentication yes #啓用密碼驗證 PubkeyAuthentication yes #啓用密鑰對驗證 AuthorizedKeysFile .ssh/authorized_keys #指定公鑰庫位置
ssh命令 —— 遠程安全登錄
格式:ssh user@host
scp命令 —— 遠程安全複製
格式1:scp user@host:file1 file2
格式2:scp file1 user@host:file2
sftp命令 —— 安全FTP上下載
格式:sftp user@host
構建密鑰對驗證的SSH體系
實驗案例:構建安全的SSH服務體系
需求描述
允許用戶wzadm從任意地址登陸,採用密鑰對驗證
允許用戶jacky從主機192.168.3.110登陸
禁止其他所有用戶遠程登錄
實現思路
同時啓用密碼驗證、密鑰對驗證
鎖定wzadm用戶,改以密鑰對方式進行驗證
使用AllowUser配置,僅允許wzadm、jacky用戶登錄
這裏我用GNS3搭建了路由器充當網關服務器.兩臺PC分配橋到了VMnet1(192.168.3.0)和VMnet8(218.29.30.0)
正確配置了各主機的網絡參數,添加了測試用戶jacky,wzadm. redhat 5爲internet測試用機.redhat 6爲網站服務器
修改sshd_config配置文件中的內容
監聽22端口
監聽地址
使用SSH V2協議
禁用DNS反向解析
禁止空密碼用戶登錄
驗證時間2分鐘,禁止root用戶登錄
最大重試6次
啓用密碼驗證
啓用密鑰驗證,指定公鑰庫數據文件
只允許wzadm和jacky用戶登錄,且jacky用戶只能從IP地址192.168.3.110的主機遠程登錄
構建密鑰對驗證的SSH體系
1. 在客戶機中創建密鑰對
ssh-keygen命令
可用的加密算法:RSA或DSA
2. 將公鑰文件上傳至服務器
任何方式均可(共享、FTP、Email、SCP、……)
3. 在服務器中導入公鑰文本
將公鑰文本添加至目標用戶的公鑰庫
默認公鑰庫位置:~/.ssh/authorized_keys
把wzadm用戶鎖定.這樣wzadm用戶就只能使用密鑰驗證了
jacky用戶能從192.168.1.110遠程登錄網站服務器
但jacky用戶不能在218.29.30.218的主機上遠程登錄網站服務器
其它用戶不能遠程登錄網站服務器
wzadm用戶遠程登錄的時候,直接要求使用密鑰密碼來登錄了
其它用戶還是無法遠程登錄