如何为系统添加ssh服务?

telnet:远程登录,23/tcp应用层协议
C/S
S:telnet服务器
C:telnet客户端

ssh:Secure SHell 也是远程登录协议,也是应用层协议:22/tcp
ssh整个通讯过程和认证过程都是加密的,还能实现主机认证
用户认证过程加密
数据传输过程加密

另外一种不用传递密码的验证方式,只需要通过用户名+随机数就可以登录认证:
客户端和服务器端都维护一个对称秘钥,客户端生成一对公钥和私钥,然后把公钥先给服务器,以后客户端要登录的时候,直接生成一个随机数据+用户名,用对称秘钥加密,然后用私钥再加密,发送给服务器,服务器用对称秘钥揭秘,再用公钥解密,如果能得到数据,就说明客户端是合法的客户端。

主机认证过程:
基于口令认证(用户名和密码)
基于秘钥认证(即上面说的那种:用户名+随机数)

协议:规范
实现:服务器端,客户端

Linux:openSSH
C/S架构
服务器端:sshd,配置文件在/ect/ssh/sshd_config
客户端:ssh,配置文件在/ect/ssh/ssh_config
ssh-keygen:秘钥生成器(为某个用户生成一对秘钥)
ssh-copy-id:将公钥传输至远程服务器
scp:跨主机安全复制工具

ssh:指定那一个主机用户来登录
ssh username@HOST
ssh -l username HOST
ssh username 'command' 以某个用户在远程服务器上执行某任务

scp:
scp SRC DEST (源可以本地也可以是服务器)
-r
-a
scp username@HOST:/path/to/somefile /path/to/local 远程到本地
scp /path/to/local username@HOST:/path/to/somefile 本地到远程

ssh-keygen: 帮我们在客户端生成一对秘钥
-t rss
~/.ssh/id_rsa
~/.ssh/id_rsa.pub

公钥追加保存到远程主机某用户的家目录下的.ssh/authorized_keys文件或.ssh/authorized_keys2文件当中

ssh v1(无法避免中间人攻击),v2

主机秘钥
非对称加密
Secret key--服务器
Public key--客户端
客户端我们去哪里拿到他的公钥?如果本地没有,通讯时接收对方公钥
客户端拿到公钥之后,生成对称密码,把这个密码发送给服务器(秘钥交换)
接下来数据用对称密码加密(因为对称加密比非对称加密快:十的三次方数量级)

为了安全性:
1.用普通用户登录,之后再切换root用户
2.定期更新密码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容