目前常用的远程连接协议有两种:telnet协议、ssh协议。一般远程登录取消telnet而采用ssh方式 。
一、两种协议比较如下
telnet协议:
- 数据明文传输
- 只验证用户名和密码
- 端口23,常用于局域网
ssh协议:
- 数据加密压缩传输
- 端口22,常用于公共网络
二、ssh远程登录方式
- 密码登录
- 非对称秘钥登录:双方各执公钥,客户端值私钥
三、非对称秘钥对介绍
- 这对秘钥由客户端采用RSA加密生成非对称秘钥:公钥、私钥
- 然后将公钥上传多台服务器(用户家目录)
- 之后私钥用户就可以使用秘钥登陆了
注:
- 钥匙永不过期,删除用户家目录中的公钥才可以限制登录
- 数据加密说明:数据通过公钥加密,传给对方(传输过程是乱码),对方通过私钥解密就可以看完整数据。(以前是通过可逆函数进行加密,即同一个函数正向加密反向解密,但加密方式被破解就完了;非对称密钥对解决了这一问题,公钥和私钥成对出现且不同,公钥加密后只有私钥才能解密信息。)
四、非对称秘钥对生成和使用(工具、云两种方法)
SecureCRT为例
工具--创建公钥--加密类型(RSA)--私钥同行短语(密码)--秘钥位长度(1024)--秘钥存储路径(C盘外、ssh秘钥格式)
将公钥上传服务器:
<code>cd ~ 进入相应用户的家目录
cd .ssh (没有则手动创建)
vi authorized_keys (将生成的公钥复制进来,保存并退出)
cat authorized_keys 查看文件内容
ll authorized_keys 查看文件权限
chmod 600 ./authorized_keys 修改公钥文件权限(644也可以)/<code>
加入工具缓存(选项-全局选项-SSH2-路径)
鉴权-公钥-输入私钥同行短码
验证完成即可关闭密码登录
阿里云/腾讯云为例
SSH秘钥:创建秘钥--下载私钥--实例关机--秘钥绑定实例--开机(云上有秘钥会默认关闭密码登录)
注:会覆盖以前此实例上的公钥,即只能使用新私钥登录
五、配置服务端的sshd服务
查看sshd服务的状态:
<code>service sshd status/<code>
![服务器安全之一访问安全](http://p2.ttnews.xyz/loading.gif)
active运行中,dead关闭中
sshd对应的主配置文件是:
<code>vim /etc/ssh/sshd_config/<code>
Port 61222,设置sshd监听的端口,建议选5位以上的陌生数(注意:1防火墙添加端口),不删除旧端口,直接加新端口,则两端口均可使用,测试完毕再关闭22端口。
Protocol 2,设置ssh协议的版本,ssh1版本有漏洞,建议选2
PermitRootLogin no,是否允许root用ssh登录,建议设置为no(注意:建新用户)
PubkeyAuthentication yes,是否开启公钥验证(设为no会清空各家目录中的公钥)
PasswordAuthentication no,是否允许密码登录(仅对非root用户起作用)(有密码就会有暴力破解的可能性,关闭密码登录前,一定等用私钥正常登录,否则只能去机房改,没数据也可重装系统)
PermitEmptyPasswords no,是否允许密码为空的账号登录
AllowUsers 用户名,允许远程访问的用户,多用户以空格分隔(建议设置)
更改配置文件需要重启服务:
<code>service sshd restart/<code>
閱讀更多 直面挑戰 的文章