二、连接实例
1、使用xshell连接主机,新建会话-主机处填写亚马逊云ip地址,端口默认。

2、点击,用户身份验证-方法-选public key。用户名默认:ec2-user(如果是centos系统,用户名centos)。用户密钥,点击浏览,选择导入刚刚在安装实例时,保存的后缀为pem的文件,选择连接。

3、使用ROOT用户登录
因为ssh是通过public key连接的,只能使用指定用户名登录,如果要使用root登录,则需要做些修改。
(1)切换到Root角色
sudo -i

(2)修改SSH配置文件/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
修改PermitRootLogin和PasswordAuthentication为yes
# Authentication: PermitRootLogin yes //默认为no,需要开启root用户访问改为yes
# Change to no to disable tunnelled clear text passwords PasswordAuthentication yes //默认为no,改为yes开启密码登陆
修改,按 i 保存,输入:wq(记得要输入:)
(3)给root用户设置密码,输入你自设的密码
passwd root
(4)重启SSH服务使修改生效
service sshd restart

4、修改默认的SSH端口
SSH端口,默认为22端口,改为其他不用没被监听的端口(操作为centos系统,linux略有不同)
- a.修改 vim /etc/ssh/sshd_config 文件,去掉 port 22 前面的注释符号 # ,修改为你的目标端口,这个端口不能被其它程序占用,80,21 端口这些不要使用。预防修改失败,建议把 22 这个端口保留,然后新添加一个端口,假如改为6666,运行 netstat -ntulp命令查看端口使用情况,确认 6666端口没有被监听,只有 22 端口被监听。
- b.运行service sshd restart,重启sshd服务,发现报错信息。网上查询需要关闭SElinux(新版linux的SElinux在内核中实现强制访问控制(MAC)的安全机制,它给每一个程序制定访问端口的权限)。运行 semanage port -l | grep ssh,看到只对SSH只开放了22端口,所以绑定6666端口的时候就只有失败了。
- c. 直接关闭SELinux,运行命令vi /etc/selinux/config ,将SELINUX=enforcing改为SELINUX=disabled。(linux系统在此就可以用6666端口连接ssh)
- d.重启ssh,centos系统还是不能连接,出现错误。把6666端口添加进SELinux的规则中,增加一个6666端口,运行命令: semanage port -a -t ssh_port_t -p tcp 6666 ,现在就可以正常连接ssh。