当前位置:首页 > Linux > 正文

linux服务器如何远程访问

访问Linux服务器可通过SSH命令(如 ssh root@)、PuTTY等工具,或云服务提供的Web控制台(如阿里云Workbench)实现,需确保服务器已安装SSH服务、配置防火墙允许端口22,并设置正确的用户权限与认证方式

当今数字化时代,远程访问Linux服务器是一项至关重要的技能,无论是对于系统管理员、开发人员还是普通用户,都为其提供了极大的便利和灵活性,以下将详细介绍如何实现Linux服务器的远程访问:

前期准备

  1. 确认服务器网络配置

    • 公网IP或内网IP:确保服务器有可访问的IP地址,若服务器在局域网内,需获取其内网IP;若在云端,一般会有公网IP。
    • 检查网络连通性:在本地计算机上,通过ping命令测试与服务器的网络连接是否正常,如ping 服务器IP地址
  2. 安装SSH服务:大多数Linux发行版默认安装了OpenSSH服务器,若未安装,可根据系统版本使用相应命令安装,例如在Ubuntu上,使用sudo apt-get install openssh-server;在CentOS上,使用sudo yum install openssh-server

配置服务器防火墙

  1. UFW防火墙:如果服务器使用UFW防火墙,可使用sudo ufw allow sshsudo ufw allow 22/tcp命令允许SSH连接,若要允许特定IP范围访问,如允许192.168.1.0/24网段访问,可使用sudo ufw allow from 192.168.1.0/24 to any port 22

    linux服务器如何远程访问  第1张

  2. Iptables防火墙:对于使用iptables的服务器,可使用sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT命令添加规则允许SSH连接。

远程连接方式

  1. 使用SSH命令行工具(适用于Linux和Mac OS)

    • 基本连接命令:在终端中输入ssh username@server_ip_address,其中username为服务器登录用户名,server_ip_address为服务器IP地址,例如ssh root@192.168.1.100
    • 首次连接确认:首次连接时,系统会提示确认服务器的真实性,显示类似“The authenticity of host ‘[服务器IP地址] ([服务器IP地址])’ can’t be established. ECDSA key fingerprint is [指纹信息]. Are you sure you want to continue connecting (yes/no)?”的信息,输入yes后按回车键继续。
    • 输入密码:接着会提示输入密码,输入服务器上对应用户的密码,即可登录到服务器的命令行界面。
  2. 使用PuTTY(适用于Windows)

    • 下载安装:从PuTTY官方网站下载并安装PuTTY工具。
    • 配置连接参数:打开PuTTY后,在“Host Name(or IP address)”栏输入服务器IP地址,如168.1.100;“Port”栏保持默认的22(若服务器SSH端口已修改,则输入修改后的端口号);“Connection type”选中“SSH”。
    • 保存会话:在“Saved Sessions”栏输入一个便于识别的名称,如“my_linux_server”,然后单击“Save”保存会话,下次登录时可直接双击该会话名称快速连接。
    • 连接登录:单击“Open”按钮,在弹出的命令行窗口中输入服务器的登录用户名和密码,即可登录。

安全增强措施

  1. 修改SSH默认端口:编辑SSH配置文件/etc/ssh/sshd_config,找到Port选项,将其值修改为其他未被占用的端口号,如Port 2222,修改后,需重启SSH服务使配置生效,同时要在防火墙中允许新端口的SSH连接。

  2. 禁用密码登录:在/etc/ssh/sshd_config文件中,将PasswordAuthentication选项设置为no,然后重启SSH服务,仅允许使用SSH密钥进行身份验证,大大提高了安全性。

  3. 设置SSH密钥登录

    • 生成密钥对:在本地计算机上打开终端(Linux和Mac OS)或命令提示符(Windows),使用ssh-keygen命令生成SSH密钥对,按照提示操作,可将私钥保存在~/.ssh/id_rsa,公钥保存在~/.ssh/id_rsa.pub
    • 复制公钥到服务器:使用ssh-copy-id username@server_ip_address命令将公钥复制到服务器上的~/.ssh/authorized_keys文件中,之后,在连接服务器时,若使用对应的私钥,即可免密码登录。

以下是关于Linux服务器远程访问的两个常见问题及解答:

FAQs

  1. 问题:远程连接Linux服务器时,提示“Connection refused”,是什么原因?

    • 解答:可能的原因有以下几种,一是服务器端的SSH服务未启动,可使用sudo systemctl start sshd命令启动;二是防火墙未允许SSH连接,需检查防火墙规则并添加允许规则;三是服务器的SSH端口号被修改,而连接时使用的仍是默认端口22,需使用正确的端口号进行连接。
  2. 问题:使用SSH密钥登录时,出现“Permission denied (publickey)”错误,该怎么办?

    • 解答:首先检查私钥和公钥是否正确匹配,以及私钥的权限是否正确,私钥的权限应设置为仅当前用户可读写,可使用chmod 600 ~/.ssh/id_rsa命令设置,确认公钥已正确复制到服务器的~/.ssh/authorized_keys文件中,且该文件的权限和所有权正确,检查SSH配置文件中是否启用了公钥认证,即PubkeyAuthentication选项是否设置为`yes
0