telnet
远程登录 协议,23/tcp
C/S
S:telnet服务器
C:Telnet客户端
明文传送
ssh
Secure Shell,应用层协议 22/tcp
通信过程和认证过程都是加密的。主机认证
主机密钥
非对称加密
secrect key public key
第一次 ssh 传送公钥 yes/no
数据用对称加密
客户端建立连接后,生成对称密钥(服务器公钥加密后传送过去)--》传送给服务器。
后面用对称密钥加密,可以提高加解密的速度。
不允许root用户直接登录,一般是su在切换。
不定期更改密码。
- 通信过程及认证过程是加密的,主机认证
- 用户认证过程加密
- 数据传输过程加密
ssh V1 V2
V1 :man-in-middle中间人攻击
sshv2
认证过程:
用户认证过程加密(用户与主机的密钥)
客户端:生成密钥s/p ----> p(放在用户的家目录) 数据--s--P -->s--p--->服务器 (对称加密)
1.基于口令认证
2.基于密钥的认证
协议:规范
实现:服务器端,客户端
linux:openSSH
C/S
服务器:sshd,配置文件/etc/ssh/sshd_config
客户端:ssh,配置文件/etc/ssh/ssh_config
ssh-keygen:密钥生成器
ssh-keygen - authentication key generation, management and conversion
ssh-copy-id:将公钥传输至远程服务器。
ssh-copy-id - install your public key in a remote machine’s authorized_keys
ssh-copy-id [-i [identity_file]] [user@]machine
scp:跨主机安全复制工具。
客户端:
ssh ip(和当前主机一样的用户)
ssh -l useranme host
yes (主机认证)
password:主机密码
ssh hadoop@ip(远程主机用户)
.ssh/known_host
ssh username@host 'command'
ssh youdi@172.16.0.30 'ls -a'
要输入密码:
scp:
scp src dest
-R
-a
源,目的都可以是远程主机
scp username@host:/path/to/somefile /path/to/local
ssh-keygen:
ssh-kengen -t rsa
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
公钥复制(追加到)到远程主机某用户家目录下的:.ssh/authorized_keys文件或.ssh/authorized_keys2文件中
.ssh 目录权限必须是700
ssh-copy-id
ssh-copy-id [-i [identity_file]] [user@]machine
ssh-copy-id -i id_rsa.pub root@172.16.20.6
单项信任关系
ssh-keygen -t rsa
ssh-copy-id -i filename username@host
scp authorized_keys
ssh-kengen -t rsa -f .ssh/id_rsa -P ''
-f /path/to/key_file
-P 指定加密私钥的密码
netstat
dropbear
嵌入式系统专用的ssh服务器端和客户端工具。
服务器:dropbear
dropbearkey
客户端:dbclient
dropbear默认使用nsswitch实现名称解析:
/etc/nsswitch
/lib/libnss_files*
/usr/lib/libnss3.so
/usr/lib/libnss_files*
dropbear会在用户登录检查其默认的shell是否为当前系统的安全shell
/etc/shells
tty
tty - print the file name of the terminal connected to standard input