远程登录 协议,23/tcp C/S S:telnet服务器 C:Telnet客户端 明文传送
Secure Shell,应用层协议 22/tcp 通信过程和认证过程都是加密的。主机认证 主机密钥 非对称加密 secrect key public key 第一次 ssh 传送公钥 yes/no 数据用对称加密 客户端建立连接后,生成对称密钥(服务器公钥加密后传送过去)--》传送给服务器。 后面用对称密钥加密,可以提高加解密的速度。 不允许root用户直接登录,一般是su在切换。 不定期更改密码。
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 src dest
-R
-a
源,目的都可以是远程主机
scp username@host:/path/to/somefile /path/to/local
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
嵌入式系统专用的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