ssh 连接阿里云ESC

小白又来啦,之前倒腾了一番用,总算用ssh连接上阿里云的服务器了,但是用了一段时间,不知道怎么的又让我输入密码了,于是重新再来弄,却发现自己都忘记了,于是乎,这次一定要记录下来,方便自动。
之所以不记得,其实是因为当时弄的时候也是稀里糊涂的,现在要明明白白记一下。

总体步骤

ssh原理太详细的讲解就不多说了,可以自行搜索出来很多文章。总结一下就是:

  1. 先要有一套密钥(一个公钥一个私钥)
  2. 然后在服务器存放公钥,在客户端存放私钥
  3. 那么,在客户端就可以用 ssh 用户名@IP地址的命令登录服务器,不需要输入密码

具体操作:

1. 生成一套密钥(可以在服务器生成也可以在客户端生成)

  • 方法一:如果是linux系统:用ssh-keygen 命令生成一套密钥
    -t 用来指定密钥类型(dsa | ecdsa | ed25519 | rsa | rsa1)
    -p 指定passphrase,用来指定密码短语
    -C 用来添加注释
    举个例子:
ssh-keygen -t rsa -C "mykey"

执行命令后,会问你想要将生成的密钥对存放到哪里,如果什么都不输入直接回车,则默认保存在 ~/.ssh 目录下,会多了两个文件 id_rsa.pub 和 id_rsa, 其中带后缀.pub的是公钥,另一个是私钥

  • 方法二:在阿里云ESC实例自动创建
    这是我在连接阿里云的时候遇到的问题,所以这里还会介绍一下阿里云的操作
    在云服务器的控制台,左侧菜单里的 "网络与安全" -> "密钥对"


    image.png

    image.png

    点击确定后就会有弹框,下载好私钥。(那公钥在哪里呢?公钥在阿里那儿呢,好像我也找不到直接查看的方法,不过如果你本来就是想通过ssh连阿里云,那到这一步,暂时不用管公钥在哪儿啦)


    image.png

2. 在服务器存放公钥,在客户端存放私钥
公钥需要写入到服务器的 ~/.ssh/authorized_key文件中,私钥需要存放到客户端的 ~/.ssh 目录下

  • 方法一:在服务器端,把公钥写进~/.ssh/authorized_key文件中
//将文件写入authorized_keys中
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
  • 方法二:通过阿里云控制台放入实例


    image.png

    image.png

    这样子,就导入公钥了,如果上一步是用方法二的话,那么本身就已经存在了,就不需要通过上面这2张图了。
    但是!但是到这里还不够的,因为我们还没有绑定我们的ESC实例,所以,我们还需要这样:


    image.png

    确定之后,还有!记得,一定要重启实例,才会生效,重启完后,公钥就到了我们实例的~/.ssh/authorized_key文件中了

3. 现在可以用ssh去连接啦

PS:
如果还是不行的话,注意留一下实例的22端口是否放行了

你可能感兴趣的:(ssh 连接阿里云ESC)