阿里云服务器使用ssh密钥登陆

ssh密钥登陆相较于传统的用户名和密码认证方式,SSH 密钥对有以下特点:

  1. 仅适用于 Linux 实例。
  2. SSH 密钥对登录认证更为安全可靠。
  3. 便于远程登录大量 Linux 实例,方便管理。

什么是 SSH 密钥对

SSH 密钥对是通过一种加密算法生成的一对密钥:一个对外界公开,称为“公钥”;另一个您自己保留,称为“私钥”。

如果您已经将公钥配置在 Linux 实例中,那么,在本地或者另外一个实例中,您可以使用私钥通过 SSH 命令或相关工具登录实例,而不需要输入密码。

优势

使用 SSH 密钥对有以下优势:

  • 安全性高:
    • 密钥对安全强度远高于常规用户口令,可以杜绝暴力破解威胁。
    • 不可能通过公钥推导出私钥。
    • 易用快捷:只需在控制台和本地客户端做简单配置即可远程登录实例,再次登录时无需再输入密码。如果您需要批量维护多个 ECS 实例,推荐使用这种方式登录。

阿里云生成密钥

按以下步骤创建密钥对。

  1. 登录 阿里云 ECS 控制台。

  2. 在导航窗格中,单击 密钥对管理。

  3. 在 密钥对管理 页面上,选择所需地域后,单击 创建密钥对。

  4. 在弹出窗口,设置密钥对名称,并选择 自动新建密钥对。指定的密钥对名称不应该与已有的密钥对名称重复,也不应该与删除前仍绑定实例的密钥对名称重复。否则,控制台会报错“密钥对已存在”。

  5. 单击 确定,开始创建密钥对。

  6. 下载私钥。页面上会弹出类似于下方截图的下载提示窗口,请按窗口提示下载私钥。
    注意:您必须立即下载私钥。当该密钥对绑定某个 ECS 实例时,如果没有私钥,您将再也不能登录该 ECS 实例。

  7. 密钥对创建成功后,您可以在密钥对列表里看到新创建的密钥对信息,包括 密钥对名称、密钥对指纹 等。

mac使用ssh密钥登陆

命令登陆:ssh -i <私钥名称> root@<服务器>

可能会出现登陆报错:

1
2
3
4
5
6
7
8
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'sshkey_rblcmall.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "sshkey_rblcmall.pem": bad permissions
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
  • 原因:权限过大。
  • 解决方案,降低权限,命令: chmod 0600 <私钥名称>

因为服务器FTP之前是使用root账号登陆的。所以导致无法登陆

  • 安装vsftpd ftp服务器。
  • yum install vsftpd
  • 新增FTP用户
  • user add ftp
  • 更改FTP用户密码。passwd ftp

    编辑配置文件vsftpd.conf
    [root@localhost mnt]# cd /etc/vsftpd/
    [root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak
    [root@localhost vsftpd]# vim vsftpd.conf
    做如下配置:
    “#anonymous_enable=YES” 改成 “anonymous_enable=NO”

  • 给FTP用户赋目录权限
    mkdir /home/ftp/upload
    chown ftp:root /home/ftp/upload
  • mac 连接vsftpd提示:服务器发回了不可路由的地址。使用服务器地址代替。
    换回默认的21端口,问题解决。

通过私钥获取对应的公钥

本地为Windows操作系统

启动PuTTYgen。
单击Load。
选择.ppk或.pem文件。
PuTTYgen会显示公钥信息。

本地为Linux或Mac系统

运行ssh-keygen命令,并指定.pem文件的路径。

-y -flink
1
2

返回公钥信息,类似如下所示:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdlrdZwV3+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIP6t0Mk5aPkK/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcV14uAy0yV6/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjGACGcXclex+lHtTGiAIRG1riyNRVC47ZEVCxxxxxx

1
2
3
4
5
> 说明 如果该命令失败,请运行chmod 400 my-key-pair.pem命令更改权限,确保只有您才能查看该文件。

## ECS无法端口无法访问
> + telnet验证端口
>

telnet xxx.xxx.xxx.xx 端口号

1
2
3
4
5
6

+ 首先查看ECS安全组规则是否允许端口
+ 查看系统防火墙配置。
```html
servcie iptables stop --临时关闭防火墙
chkconfig iptables off --永久关闭防火墙
  • CentOS 7.2关闭防火墙
    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤。