Telnet,tcp/23 远程登录
认证明文
数据传输明文
ss -tnlp | grep '23'
禁止管理员直接登录
使用普通用户登录,而后su至root用户

ssh(secure shell):tcp/22
c/s
ssh --》ssh
openssh(开源)
ssh v1,v2
由于sshv1是基于CRC-32做MAC,因此,不安全,建议勿用
sshv2基于双方主机协商选择最安全的MAC实现机制
加密机制及MAC机制是双方协商选定
基于DH实现密钥交换,基于RSA或DSA实现身份认证
客户通过检查服务端的主机密钥来判定是否与其进一步通信

grep ssh /etc/services

客户端软件:
Linux:ssh
windows:putty,securecrt(),sshsecureshellclient,xmanager

服务器端:
sshd

openssh(ssh,sshd)

ssh--》Telnet

sshd:主机秘钥

基于口令
基于密匙

netstat -t
-n
-r
-u
ssh(ssh_config)
sshd(sshd_config)

ssh:
ssh -l username remote_host ['command']
ssh username@remote_host ['command']
-p PORT:指定要连入端口

打开图形界面的选项:
-X
-Y

基于密钥的认证:
一台主机位客户端(基于某个用户实现)
1、生成一对密钥
ssh-keygen
-t (rsa|dsa)
-f /path/to/keyfile
-N ‘password’
2.将公钥传到服务器端某用户的家目录下的.ssh/authorized_keys文件中
使用文件传输工具(ssh-copy-id,scp)
3.测试登陆

总结:
1、密码应该经常换;
2、使用非默认端口;
3、限制登陆客户地址;
4、禁止管理直接登陆;
5、仅允许有限制用户登陆;
6、使用基于密钥的认证
7、禁止使用ssh v1版本

scp:基于ssh的远程复制命令,可以实现在主机之间传输数据
scp [options] src dest
-r:源文件为目录时使用,以实现递归复制
-p:保留源文件的复制及修改时间戳,以及权限
-q:静默模式
-P PORT:指定服务端端口

remote_machine:
username@hostname:/path/to/somefile

sftp:是基于ssh的ftp协议
只要openssh的服务器端配置文件启用了如下项:
Subsystem sftp /usr/libexec/openssh/sftp-server

各配置参数:man sshd_config
ListenAddress: IP:PORT
Protocol
PermitRootLogin
AllowUsers user1 user2 ...:用户白名单
AllowGroups
DenyUsers:用户黑名单

用户登录信息获取:
/var/log/wtmp:用户成功登录的日志信息
/var/log/btmp:用户登录尝试失败的日志信息
lastlog:每个用户最近一次登录的信息

lastlog -u root
lastb
last

bash编程的信号捕获
kill -l
KILL无法捕捉:

trap ‘COMMAND’SIGNAL
trap 'echo "no exit"' INT

vim test4.sh
#!/bin/bash
touch /tmp/abc.txt
trap 'rm -rf /tmp/abc.txt' INT
read -p "enter a username: " username
echo $username >> /tmp/abc.txt
cat /tmp/abc.txt
rm -rf /tmp/abc.txt

信号捕捉用于: