服务器部署-SSH
本文最后更新于:2021年3月15日 晚上
环境
- Centos7.2 腾讯云服务器
信息
SSH
全称是Secure Shell
,SSH
协议是基于应用层的协议,为远程登录会话和其他网络服务提供安全性的协议。
SSH
使用最多的是远程登录和传输文件,实现此功能的传统协议都不安全(ftp
,telnet
等),因为它们使用明文传输数据。而SSH在传输过程中的数据是加密的,安全性更高。
工作原理
SSH协议传输是基于(非对称加密方法的)[https://zh.wikipedia.org/zh-cn/%E5%85%AC%E5%BC%80%E5%AF%86%E9%92%A5%E5%8A%A0%E5%AF%86]
文件路径
服务端
若远程服务器是新系统,会在/etc/ssh
目录下生成一个名为ssh_host_ecdsa_key.pub
的公钥,同时生成一个名为ssh_host_ecdsa_key
的私钥,这一对就是远程服务器的公钥与私钥
之后每次启动sshd服务的时候,系统会自动在此路径下查找公钥客户端
客户端将服务器传来的公钥记录在~/.ssh/known_hosts
中,若是已经记录有该服务器公钥,则比对是否一致,一致后就计算客户端自己的公私钥。发送自己的公钥给服务器
更多
实际上这个过程比上面描述的要复杂很多
比如说DH秘钥交换的密钥交换算法
就是一种多种加密算法混合的算法
认证方式
密码
- 连接服务器的各类型密码不应低于8位(建议20位)
- 密码字符涵盖类型越多越好。数字、英文大写、小写、特殊字符
如果没有什么特殊需求,建议使用密钥
密钥
作为密码的更好的替代品存在的东西存在
载体是一个文件,认证以后就不用频繁的输入密码了
操作
SSH配置文件修改
由于很多操作其实都是编辑SSH
的配置文件,这里先给出打开方式
1 |
|
在进行完修改以后,重新启动SSH服务以应用设置
1 |
|
SSH禁止使用root用户直接登录
想要获取root权限?先用普通用户登录再切换用户
注意,要是没有其它用户又禁用了root用户就会很麻烦
打开SSH配置文件
找到对应项并设置为no
1
PermitRootLogin no
修改SSH端口
如果
SSH端口
不是22,那就不能直接暴力破解了,需要扫描很多的端口才能发现真的SSH端口
,浪费黑客的时间注意防火墙的问题,连不上就麻烦了
打开SSH配置文件
找到 #Port 22
这东西本身就被注释了,找到这个东西只是为了将一类设置写一起1
2# Port 22
Port 51369 # 设置自定义的端口51369创建SSH密钥来登录
虽然理论中说了要双方公钥交换,但实际上只要有一对连接上了,另一个会被自动创建
因此有两种方式来创建密钥
- 客户端创建密钥,将公钥给服务器
- 服务器创建密钥,将私钥给客户端,自己将公钥注册下来
以下方式为第二种
- SSH设置允许密钥登录
- 打开SSH配置文件
- 编辑配置
1
2RSAAuthentication yes
PubkeyAuthentication yes
- 切换到希望创建密钥的用户,创建密钥对 过程中会需要你输入一些东西,要是不知道是什么,可以直接回车不管
1
ssh-keygen
最后会有一些提示1
2
3Enter file in which to save the key (/home/用户名/.ssh/id_rsa): # 设置密钥文件保存路径
Enter passphrase (empty for no passphrase): # 设置密钥锁码
Enter same passphrase again: # 密钥锁码确认1
2
3
4# 你的私钥保存在这里
Your identification has been saved in /home/manager/.ssh/id_rsa.
# 你的公钥保存在这里
Your public key has been saved in /home/manager/.ssh/id_rsa.pub. - 服务器公钥注册
- 来到.ssh目录
1
cd ~/.ssh
- 注册公钥
1
cat id_rsa.pub >> authorized_keys
有些时候会遇到权限的问题,把权限设置得高一些就可以解决
1
chmod 600 authorized_keys
- 来到.ssh目录
- 重启SSH以应用设置
1
service sshd restart
- 客户端获取密钥私钥文件
使用scp命令即可,这里是从服务器把私钥下载下来,放到E盘1
scp root@192.168.1.2:/home/manager/.ssh/id_rsa E:/
- 客户端使用私钥
这里以putty
为例- 将密钥转为
putty
能使用的类型的密钥文件
- 在登录时应用密钥
- 将密钥转为
禁用密码登录
- 打开SSH配置文件
- 修改配置
1
PasswordAuthentication no
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!