Linux如何远程登录服务器?

要通过Linux系统登录服务器,最常用且安全的方式是使用SSH(Secure Shell)协议,它通过加密传输保障数据安全,支持密码和密钥两种认证方式,以下是详细操作步骤及相关配置,帮助新手快速掌握服务器登录方法。

如何用linux登服务器

登录前准备

在开始操作前,需确认以下信息已准备就绪:

  1. 服务器信息:服务器的公网IP地址(或域名)、SSH服务端口(默认为22,若修改过需确认新端口);
  2. 登录凭证:用户名(如root、普通用户如ubuntu)及对应密码,或SSH密钥对;
  3. 网络连通性:确保本地Linux设备能访问服务器网络(可通过ping IP测试,若无法ping通需检查本地防火墙或服务器安全组策略);
  4. SSH客户端工具:Linux系统默认已安装SSH客户端(通过ssh -V检查版本,通常无需额外安装)。

基础登录方式:密码认证

密码认证是最直接的登录方式,适合临时或一次性登录,但安全性低于密钥认证(易被暴力破解)。

操作步骤:

  1. 打开终端:在Linux系统中按下Ctrl+Alt+T(不同发行版快捷键可能略有差异,或通过应用程序菜单打开“终端”);
  2. 输入SSH命令:格式为ssh [用户名]@[服务器IP或域名],例如登录root用户(默认禁止直接root登录的服务器需改用普通用户,如ssh ubuntu@192.168.1.100);
  3. 确认主机密钥:首次登录时,终端会提示“Are you sure you want to continue connecting (yes/no)?”,输入yes并回车,此操作将服务器的主机密钥添加到本地~/.ssh/known_hosts文件中,用于后续连接时验证服务器身份(防止中间人攻击);
  4. 输入密码:根据提示输入服务器用户的密码,输入过程中终端不会显示字符(光标静止),输入完成后直接回车;
  5. 登录成功:密码正确后,终端会显示服务器欢迎信息(如Linux发行版版本、内核信息等),并进入命令行界面,此时可执行服务器命令。

示例命令:

ssh root@192.168.1.100

安全登录方式:SSH密钥认证

密钥认证通过“公钥+私钥”机制实现,私钥存储在本地,公钥上传至服务器,登录时无需输入密码,安全性更高(推荐长期使用场景)。

生成SSH密钥对

在本地Linux终端执行以下命令,生成RSA密钥对(默认位数为2048位,安全性足够,若需更高强度可指定-b 4096):

ssh-keygen -t rsa -b 2048 -C "your_email@example.com"

执行后按提示操作:

  • 指定密钥存储路径(直接回车使用默认路径~/.ssh/id_rsa);
  • 设置私钥密码(可选,建议设置,防止私钥泄露被他人盗用,若不设置则直接回车);
  • 确认密码(若上一步设置了密码)。

生成完成后,~/.ssh/目录下会新增两个文件:

  • id_rsa:私钥(绝不能泄露或上传到服务器);
  • id_rsa.pub:公钥(需上传到服务器)。

上传公钥到服务器

使用ssh-copy-id命令(推荐)
该命令会自动将公钥追加到服务器的~/.ssh/authorized_keys文件中,并设置正确权限:

如何用linux登服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub [用户名]@[服务器IP]
ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@192.168.1.100

执行后需输入服务器用户密码,验证成功后公钥即上传完成。

手动上传公钥
若服务器未启用ssh-copy-id(如 minimal 安装的系统),可手动操作:

  1. 在本地查看公钥内容:
    cat ~/.ssh/id_rsa.pub
  2. 复制输出的完整公钥(以ssh-rsa开头,以邮箱结尾);
  3. 登录服务器(使用密码认证),执行以下命令创建~/.ssh目录(若不存在)并设置权限:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  4. 追加到authorized_keys文件:
    echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys
  5. 设置authorized_keys文件权限(必须为600,否则SSH服务拒绝使用):
    chmod 600 ~/.ssh/authorized_keys

使用密钥登录

上传公钥后,再次执行SSH命令即可免密登录:

ssh ubuntu@192.168.1.100

若设置了私钥密码,首次使用时会提示输入私钥密码(后续可通过ssh-agent管理密钥,避免重复输入)。

进阶配置:优化SSH登录体验

配置SSH别名(简化命令)

若服务器IP较长或登录频繁,可在本地~/.ssh/config文件中配置别名(若无该文件需手动创建):

Host myserver
    HostName 192.168.1.100
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_rsa
    Compression yes

配置后,直接执行ssh myserver即可登录,无需每次输入完整IP和用户名。

修改默认端口(提升安全性)

默认SSH端口为22,易被扫描攻击,可修改为其他端口(如2222):

如何用linux登服务器

  • 服务器端操作:编辑SSH配置文件/etc/ssh/sshd_config,找到#Port 22,取消注释并修改为Port 2222,保存后重启SSH服务:
    sudo systemctl restart sshd
  • 本地客户端操作:若通过别名配置,需在Host段添加Port 2222;若直接使用命令,需加-p参数:ssh -p 2222 ubuntu@192.168.1.100

禁用密码登录(强制密钥认证,提升安全性)

为防止暴力破解,可在服务器端禁用密码登录,仅允许密钥认证:
编辑/etc/ssh/sshd_config,确保以下配置生效:

PubkeyAuthentication yes  # 启用密钥认证
PasswordAuthentication no  # 禁用密码认证

保存后重启SSH服务:sudo systemctl restart sshd注意:操作前确保密钥登录已正常配置,否则可能无法登录服务器

常见问题排查

问题现象 可能原因 解决方案
Permission denied (publickey,password) 公钥未正确上传;
authorized_keys权限错误;
私钥路径错误。
重新上传公钥(检查~/.ssh/authorized_keys是否包含公钥内容);
执行chmod 600 ~/.ssh/authorized_keys
确认SSH命令中IdentityFile指向正确的私钥路径(默认~/.ssh/id_rsa)。
Connection timed out 服务器未开启SSH服务;
服务器防火墙拦截22端口;
安全组策略未放行SSH端口。
执行sudo systemctl status sshd检查服务状态,未启动则执行sudo systemctl start sshd
服务器端开放SSH端口(如Ubuntu:sudo ufw allow 22;CentOS:sudo firewall-cmd --permanent --add-port=22/tcp并重启防火墙);
检查云服务器安全组(如阿里云、腾讯云)是否添加入方向规则,端口与服务器SSH端口一致。
Warning: Permanently added 'hostname' to the list of known hosts 本地known_hosts文件中记录的服务器主机密钥与当前不一致(如服务器重装系统后密钥变更)。 执行ssh-keygen -R [服务器IP]删除旧记录,再次登录时会重新确认主机密钥。

相关问答FAQs

Q1:忘记服务器密码怎么办?
A:若登录的是普通用户,可通过root用户重置密码:

  1. 使用密码登录root账户(若未开启root密码登录,需通过VNC或控制台登录);
  2. 执行passwd [普通用户名],按提示输入新密码两次;
  3. 若无法登录root,且服务器支持救援模式(如阿里云、腾讯云云服务器),可通过控制台进入救援模式重置密码。

Q2:如何限制登录用户的访问权限?
A:可通过SSH配置文件限制特定用户登录:

  1. 编辑服务器/etc/ssh/sshd_config,添加以下配置(仅允许user1user2登录):
    AllowUsers user1 user2

    或拒绝特定用户登录(拒绝user3):

    DenyUsers user3
  2. 保存后重启SSH服务:sudo systemctl restart sshd
  3. 若需限制用户仅能执行特定命令(如仅允许backup用户执行rsync命令),可在authorized_keys文件中通过command选项限制,
    command="/usr/bin/rsync --server",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2E... backup@server

通过以上步骤,即可安全、高效地使用Linux系统登录服务器,日常使用中,建议优先采用密钥认证并定期更新密钥,同时修改默认端口、禁用密码登录,以提升服务器安全性。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22308.html

(0)
酷番叔酷番叔
上一篇 6小时前
下一篇 6小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信