配置ssh登录云服务器

任务

出于对计算机了解的匮乏,一直通过阿里云提供的登录服务,相当于二次传输。这次对ssh暴力破解进行学习了解有意外收获,可以直接在本地的git上通过添加ssh公钥登录云服务器ECS,并采取安全措施。

上传公钥

1. 生成ssh-key

这篇文章SSH-keygen用法详细讲解了生成密钥的参数,下面的这个语句生成密钥类型为rsa、文件名称为test、注释为“test key”的密钥。而一般情况下,省略-f test会生成默认的密钥文件名称id_rsa,由于我之前已经生成过,便不再重复。

ssh-keygen -t rsa -f test -C "test key" //-f 文件名 -C 备注  -t 类型

在当前目录生成了test私钥及test.pub公钥

在这里插入图片描述

2.上传至服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22(服务器ssh开放端口,默认为22) root@60.xxx.xxx.xxx(服务器的IP地址)

服务器肯定不能随意接收上传的文件,需要经过身份验证。这里是通过root登录,需要在客户端git窗口按照提示输入之前设置的密码。云服务器是开通root权限登录的,但是不安全,之后会进行修复,此外还可以修改默认端口22为其他端口。

按照提示输入:


ssh -p '22' 'root@60.xxx.xxx.xxx(服务器的IP地址)

可以直接在本地通过ssh访问服务器资源啦!

配置文件

教程中还提到通过写config文件可以方便通过命令访问服务器。

在客户端~/.ssh目录下新建名为config文件并添加以下代码

Host ali
  HostName 60.xxx.xxx.xxx
  Port 22
  User root
  IdentityFile ~/.ssh/id_rsa

如此一来,直接通过命令即可方便连接服务器。

ssh ali

在这里插入图片描述

ssh: Could not resolve hostname

最初新建了config文件但无法通过命令登录,报错如题,通过在git的目录下ls发现根本没有config这一文件,就在git命令框里新建config再复制上面的代码,即可成功。

cd ~/.ssh
touch config
vim config

增强安全

切换用户

已知通过root登录不安全,在服务器上创建新的用户,并在客户端上按照上面的步骤生成密钥文件、上传至服务器,最后将服务器上的配置文件/etc/ssh/sshd_config通过root登录权限修改为no。

在这里插入图片描述

这时不可以再通过root账户再登录

在这里插入图片描述

取消密码登录

只能通过证书登录,那么被爆破的可能性会降低,安全级别将大大提升。

在这里插入图片描述

把允许密码登录取消,设为no

在这里插入图片描述

更改端口

依然修改sshd_config文件,将注释的#Port=22改为自定义的端口号,并在阿里云的安全组新增规则,放行对应端口号。

在这里插入图片描述

此时再访问之前的端口已经被拒绝连接,但访问设置的新端口便可以成功

在这里插入图片描述

参考文章

【转】服务器添加新用户用ssh-key 登录,并禁用root用户 密码登录

阿里云ECS,配置ssh远程登录

ssh配置config快速登录服务器

问题记录

ssh_exchange_identification: read: Connection reset by peer

自己的ip地址被加入到hosts.deny的文件中了

1 comment

Leave a comment

Your email address will not be published. Required fields are marked *