SSH:Secure Shell
SSH服务端是一个守护进程:sshd进程(/etc/ssh/sshd_config)
SSH客户端是ssh工具及其他一些命令,如:scp、slogin、sftp等
安全验证:1,密码;2,密钥
密码验证:
1)服务端收到客户端请求,把公钥发给客户端
2)客户端使用公钥加密密码发给服务端
3)服务端使用私钥解密验证
密钥验证方式:
私钥在客户端,公钥在服务端
验证:1)客户端发起请求(ssh -i 私钥文件,默认找~/.ssh/id_xxx)
2)服务端发送使用公钥加密过的“质询”给客户端
3)客户端收到“质询”后使用私钥进行解密,把解密之后的“质询”发送给服务端
4)服务端收到解密“质询”之后验证是否是之前发送给客户端的“质询”信息
ps:
1,第一次登陆会出现警告,警告确认公钥是否为正确,之后会把公钥存在known_host中,下次登陆跳过警告
SSH密钥生成方式:
1,生成命令:ssh-keygen -t rsa -f 文件名(默认id_rsa)
.ssh/id_rsa.pub:公钥
.ssh/id_rsa:私钥
.ssh/known_host:每次连接服务端时,服务端发送过来的host_key,验证对方给的host_key是否和已记录的一致
2,cat ./id_rsa.pub >> ./.ssh/authorized_keys (文件名在/etc/ssh/sshd_config配置)
参考:
http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html