ssh: secure shell, protocol, 22/tcp, 安全的遠程登錄
OpenSSH: ssh協議的開源實現;
dropbear:另一個開源實現;
SSH協議版本
v1: 基于CRC-32做MAC,不安全;man-in-middle
v2:雙方主機協議選擇安全的MAC方式
基于DH算法做密鑰交換,基于RSA或DSA算法實現身份認證;
兩種方式的用戶登錄認證:
基于password
基于key
OpenSSH:
C/S
C: ssh, scp, sftp
Windows客戶端:
xshell, putty, securecrt, sshsecureshellclient
S: sshd
客戶端組件:
ssh, 配置文件:/etc/ssh/ssh_config
格式:ssh [user@]host [COMMAND]
ssh [-l user] host [COMMAND]
-p port:遠程服務器監聽的端口;
-X: 支持x11轉發;
-Y:支持信任的x11轉發;
Host PATTERN
PARAMETER VALUE
基于密鑰的認證:
(1) 在客戶端生成密鑰對兒
ssh -t rsa [-P ”] [-f “~/.ssh/id_rsa”]
例一:生成密鑰對
[root@localhost ~]# ssh-keygen
(2) 把公鑰傳輸至遠程服務器對應用戶的家目錄
ssh-copy-id [-i [identity_file]] [user@]machine
例一:傳輸公鑰
[root@localhost ~]# ssh-copy-id root@192.168.21.137
(3) 測試
[root@localhost ~]# ssh root@192.168.21.137 Last login: Thu Jun 15 11:05:33 2017 from 192.168.21.137
scp命令:
scp [options] SRC… DEST/
存在兩種情形:
PULL:scp [options] [user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE
PUSH: scp [options] /PATH/FROM/SOMEFILE [user@]host:/PATH/TO/SOMEWHERE
例一:把etc/fstab文件復制到另外一臺主機上
[root@localhost ~]# scp /etc/fstab root@192.168.21.137:/tmp/
常用選項:
-r: 遞歸復制;
-p: 保持原文件的屬性信息;
-q: 靜默模式
-P PORT: 指明remote host的監聽的端口;
sftp命令:
sftp [user@]host
sftp> help
例一:以指定用戶的生份運行
[root@localhost ~]# sftp root@192.168.21.141 Connected to 192.168.21.141. sftp>
服務器端:
sshd, 配置文件: /etc/ssh/sshd_config
常用參數:
Port 22022
ListenAddress ip
PermitRootLogin yes
限制可登錄用戶的辦法:
AllowUsers user1 user2 user3
AllowGroups
ssh服務的最佳實踐:
1、不要使用默認端口;
2、禁止使用protocol version 1;
3、限制可登錄用戶;
4、設定空閑會話超時時長;
5、利用防火墻設置ssh訪問策略;
6、僅監聽特定的IP地址;
7、基于口令認證時,使用強密碼策略;
# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs
8、使用基于密鑰的認證;
9、禁止使用空密碼;
10、禁止root用戶直接登錄;
11、限制ssh的訪問頻度和并發在線數;
12、做好日志,經常分析;
ssh協議的另一個實現:dropbear
(1) dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
dropbear -p [ip:]port -F -E
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/78334