远程管理Linux服务器,配置SSH密码和密钥登陆
当我们使用Linux服务器之前,我们需要用到一个工具连接管理服务器,SSH或VNC,通常云服务商会给我们一个SSH端口(默认22也可能是其他端口)和root密码这篇文章主要介绍SSH使用方法。
SSH原理
ssh是一种远程登录会话的安全性协议,SSH的客户端适用于多种平台,你可以在Windows上通过SSH工具登陆管理Linux的云服务器。它之所以安全是采用了非对称加密技术(RSA)加密了所有传输的数据。
目前有SSH提供两种级别的安全验证:
口令验证

登陆的原理是:SSH客户端发起连接请求,服务端响应向客户端发送公钥,客户端接收公钥并将口令使用公钥加密后传输,服务端使用私钥解密通过验证后建立连接。这就是为什么我们在使用Xshell等工具首次连接服务器时会提示接收公钥的原因。
SSH密钥验证

使用密钥验证需要一对密钥(公钥和私钥),可以由Linux系统或者本地工具生成,公钥放置在服务器上,私钥放在本地。
原理:客户端请求建立连接,服务端会使用公钥加密一段字符传送客户端,客户端用私钥解密后返回服务端,验证字符是否匹配,通过后建立连接。
修改SSH端口及密码
SSH的默认端口是22,如果不修改的话非常可能被端口扫描到暴力破解密码,修改端口创建一个复杂的密码会更加安全。
下面是我的服务器默认端口下过了几天登陆的数据,可以看到1万多次的失败登陆,已遭受暴力破解,必须修改端口了。

修改SSH端口
vi /etc/ssh/sshd_config
找到 #Port 22 把前面的#删掉,在下面再添加一行新的端口 Port 12345
重启服务ssh服务
systemctl restart sshd
系统开启防火墙的,需要添加放行端口到防火墙
命令:firewall-cmd --permanent --add-port=12345/tcp
重载防火墙
命令:firewall-cmd --reload
测试新端口是否可以连接,可以的话把 /etc/ssh/sshd_config 的 Port 22 删除,这样就只能以新端口登陆了。
修改root密码
方法一:一般服务器的后台面板可以修改root密码,重置即可。
方法二:
root账号登陆服务器,执行
passwd root
按照提示输入新的密码两次。如果用xshell连接的情况下,需要重新验证新的密码。
配置SSH密钥登陆
启用密钥后,可以选择关闭密码访问,是一种更安全的登陆方式。
服务器生成
使用ssh-keygen生成认证所需的公钥和私钥文件。
运行命令
ssh-keygen
系统会询问你文件名和秘钥密码,可以直接跳过,私钥密码在使用私钥时输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。完成后会生成两个文件:
id_rsa 私钥
id_rsa.pub 公钥
执行命令,在服务器上安装公钥:
cat id_rsa.pub >> ~/.ssh/authorized_keys
设置文件权限
chmod 600 authorized_keys
chmod 700 ~/.ssh
修改SSH配置文件,位置:/etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
是否设定root用户能否通过SSH登陆
PermitRootLogin yes
重启 SSH 服务:
service sshd restart
确认密钥正常登录后,可以选择关闭密码登陆
PasswordAuthentication no
本地登陆时,下载服务器生成的私钥文件,使用Xshell等客户端登陆时用户身份验证选择Public Key,导入私钥,先前设置过私钥密码时需要输入密码,然后登陆即可。
使用Xshell生成
工具→新建用户密钥生成向导→下一步→下一步→输入密钥名称和密码(可为空)下一步→保存公钥文件完成。

以root账户登陆服务器,在root目录下创建 .ssh目录,上传公钥文件到 .ssh目录下,修改名字为authorized_keys,接着按上面步骤修改文件权限和SSH配置文件即可。
发表评论
要发表评论,您必须先登录。