Oracle cloud vps实例配置访问
- 创建一个免费配置的实例,并配置访问
- 创建实例时,系统映像选择
- 创建实例时候的ssh密钥
- 配置子网,打开22端口
- 使用工具登录服务器
- 配置多个公钥,支持多个ssh私钥来登录
- 登录vps实例修改登录用户和身份验证方式(ubuntu)
- 配置子网
- 配置防火墙和路由表的端口策略
- iptables(ubuntu和oracle linux都有)
- firewall (oracle linux默认安装)
- ufw(ubuntu默认安装)
创建一个免费配置的实例,并配置访问
到处都有教程,傻瓜式操作,只详细说明需要注意的地方。
创建实例时,系统映像选择
建议选择ubuntu,后面可以设置密码访问,而且可以设置直接ssh登录root,脱离密钥文件和切换用户的束缚。
使用root用户和密码ssh连接服务器可能会有严重的安全问题,不建议配置这种登陆方案的服务器做重要业务。
oracle linux和oracle cloud相关的配套业务会更方便一些,默认配置优化比较好。初学者和oracle cloud绑定比较深的用户可以考虑用这个映像。
ubuntu默认登录用户是ubuntu(后期可以更换)
oracle linux 默认登录用户是opc(不允许修改)
创建实例时候的ssh密钥
创建实例时候就选择为我生成密钥对,其他方式对公钥的保存好像偶尔会有奇怪的问题。
下载的私钥需要保留,后期我们需要自己ssh连接oracle实例,然后操作自己的密钥或密码。
配置子网,打开22端口
在vps实例创建中可以先配置起来。
创建的linux服务器基本都是默认打开22端口和open ssh协议的,只需要配置网络子网,参考下面配置子网。
使用工具登录服务器
实例为xshell
配置多个公钥,支持多个ssh私钥来登录
使用工具生成ssh使用的RSA私钥和公钥。推荐使用xshell工具,winscp也行但是winscp在使用私钥文件登录linux时要求会自动编译一次私钥文件到.ppk格式,管理比较麻烦。
使用winscp或者xftp登录服务器,使用图形界面的文件管理也行。使用putty或者xshell的命令行工具也行。
实际就是在操作~/.ssh/authorized_keys文件
注意自己操作的是哪个用户,每个用户的钥匙串都是独立的,root用户在/root/.ssh/下,其他用户在/home/用户名/.ssh/下
准备好生成的公钥文件放到vps服务器上
cd ~/.ssh/
# 把公钥追加到服务器的钥匙串中
cat idrsa.pub >> authorized_keys
# 设置钥匙串权限,如果已经生成过默认的文件权限应该是对的,注意检查
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
# 重启ssh服务
service sshd restart
登录vps实例修改登录用户和身份验证方式(ubuntu)
这里只以ubuntu映像为例,oracle linux不能,其他映像本人还没有尝试。
使用ubuntu用户登录vps实例
#初始化root用户密码
sudo passwd root
#回车后会要求输入两遍新密码
#切换到root用户
su - root
#回车后输入刚才设置的密码
#编辑sshd_config中的如下两个值
vim /etc/ssh/sshd_config
# vim中i=编辑,:wq是保存并退出, :!q不保存强制退出
# 打开root用户的ssh登陆权限
PermitRootLogin yes
# 允许服务器使用密码登录ssh
PasswordAuthentication yes
#重启ssh服务,使刚才的配置生效
sudo service sshd restart
参考:这篇文章, 文章中有在初始化阶段就要求linux执行命令的,本人尝试了没用,可能哪里配置的不对
https://www.louishe.com/2021/12/11/doc-11386.html
配置子网
添加或者编辑已有规则
配置防火墙和路由表的端口策略
子网配置完成后,可能仍然无法访问服务器上的服务,服务器默认只打开了22端口,其他端口需要在防火墙中打开。
本文章提供关闭防火墙的方法,不限制vps上的端口限制。
iptables(ubuntu和oracle linux都有)
# 查看当前规则列表
iptables -L
# 保存规则到指定目录文件
iptables-save > ~/iptables-rules
# 设置所有流入放行
iptables -P INPUT ACCEPT
# 设置所有流出放行
iptables -P OUTPUT ACCEPT
# 设置重定向放行
iptables -P FORWARD ACCEPT
iptables -F
# 提交刷新修改的规则
iptables --flush
参考:https://blog.yucas.net/2022/01/06/opening-port-80-on-oracle-cloud-infrastructure-ubuntu-node/
firewall (oracle linux默认安装)
# 防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 禁用开机自动启动防火墙
systemctl disable firewalld
ufw(ubuntu默认安装)
# 防火墙状态
ufw status
# 关闭防火墙
ufw disable
参考: https://ejin66.github.io/2018/09/14/linux-firewall.html