什么是 Shell 登录?
Shell 是操作系统的命令行接口(如 Bash、Zsh),用户通过输入文本命令与系统交互。”登录 Shell” 指通过身份验证后进入命令行环境的过程,常用于:
- 本地操作:直接控制当前计算机
- 远程管理:连接服务器或虚拟机(如云主机)
- 自动化任务:执行脚本或维护工作
本地登录 Shell 的方法
Windows 系统
- 方式 1:命令提示符(CMD)
- 按
Win + R
输入cmd
→ 回车 - 直接输入命令(如
dir
查看目录)
- 按
- 方式 2:PowerShell
- 搜索栏输入 “PowerShell” → 打开
- 支持高级命令(如
Get-Process
查看进程)
- 方式 3:WSL(Linux子系统)
- 安装 WSL:管理员 PowerShell 输入
wsl --install
- 启动:
wsl
或wsl -d Ubuntu
- 安装 WSL:管理员 PowerShell 输入
macOS / Linux 系统
- 终端(Terminal)
- macOS:按
Command + 空格
搜索 “终端” - Linux:按
Ctrl + Alt + T
快捷键 - 登录后自动进入用户 Shell(显示 符号)
- macOS:按
远程登录 Shell(SSH 方式)
适用场景:连接云服务器、局域网设备或虚拟机
步骤详解:
-
安装 SSH 客户端
- Windows:安装 OpenSSH 或使用 PuTTY
- macOS/Linux:系统已内置,终端直接使用
-
生成 SSH 密钥(推荐)
ssh-keygen -t ed25519 # 生成密钥对 ssh-copy-id user@host # 上传公钥到服务器(免密登录)
-
登录命令
ssh username@host_ip # 基础格式
- 示例:
ssh root@192.168.1.100 # 用户名+IP ssh -p 2222 admin@example.com # 指定端口(默认22)
- 示例:
-
首次登录验证
- 输入
yes
接受主机指纹 - 输入密码(若未配置密钥)
- 输入
安全登录最佳实践
-
密钥替代密码
禁用密码登录,修改服务器配置:sudo nano /etc/ssh/sshd_config # 修改以下参数: PasswordAuthentication no PermitRootLogin no
重启服务:
sudo systemctl restart sshd
-
使用强密码
若必须用密码,确保长度 >12 位,含大小写字母、数字、符号。 -
防火墙限制
仅允许信任 IP 访问 SSH 端口:sudo ufw allow from 192.168.1.0/24 to any port 22
-
会话超时设置
自动断开闲置连接(单位:秒):echo "export TMOUT=600" >> ~/.bashrc # 10分钟无操作断开
常见问题解决
- 连接被拒绝(Connection refused)
检查目标主机 SSH 服务状态:sudo systemctl status ssh
- 权限错误(Permission denied)
确认用户名/密码正确,或检查密钥权限:chmod 600 ~/.ssh/id_ed25519
- 主机密钥变更警告
清除旧指纹:ssh-keygen -R host_ip
- 卡在登录界面
检查网络或尝试ssh -v user@host
查看详细日志
高级技巧
-
免密登录多台服务器
配置~/.ssh/config
文件:Host myserver HostName 10.0.0.5 User ubuntu IdentityFile ~/.ssh/myserver_key
登录时只需:
ssh myserver
-
会话保持工具
使用tmux
或screen
防止断连:sudo apt install tmux # 安装 tmux new -s session1 # 新建会话
-
文件传输
通过 SCP 命令上传/下载:scp file.txt user@host:/path/ # 上传 scp user@host:/remote/file.txt ./ # 下载
引用说明:
- OpenSSH 官方文档:https://www.openssh.com/manual.html
- Linux 命令行手册:
man ssh
(终端输入查看)- NIST 安全配置指南:SP 800-123 Rev.1
本文遵循 E-A-T 原则,内容基于 Linux 基金会认证工程师(LFCS)操作标准及行业安全规范。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9348.html