Linux系统中SSH基础操作

1. SSH 服务管理

# 检查SSH服务状态
sudo systemctl status sshd

# 启动SSH服务
sudo systemctl start sshd

# 停止SSH服务
sudo systemctl stop sshd

# 重启SSH服务
sudo systemctl restart sshd

# 设置开机自启
sudo systemctl enable sshd

2. SSH 配置文件

主配置文件路径:/etc/ssh/sshd_config

常用配置项:

Port 2222                   # 修改默认端口
PermitRootLogin no          # 禁止root登录
PasswordAuthentication no   # 禁用密码认证
AllowUsers your_username     # 只允许特定用户登录
X11Forwarding no            # 禁用X11转发

3. SSH 连接操作

# 基本连接
ssh username@hostname

# 指定端口连接
ssh -p 2222 username@hostname

# 使用密钥连接
ssh -i ~/.ssh/private_key username@hostname

# 远程执行命令
ssh username@hostname "ls -l"

4. 密钥认证设置

# 生成密钥对(Ed25519算法)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 将公钥上传到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@hostname

# 检查密钥指纹
ssh-keygen -lf ~/.ssh/id_ed25519.pub

5. 文件传输

# 从本地复制到远程
scp -P 2222 file.txt username@hostname:/path/to/destination

# 从远程复制到本地
scp -P 2222 username@hostname:/path/to/file.txt .

# 递归复制目录
scp -r dir username@hostname:/path/to/destination

# 使用rsync(更高效)
rsync -avz -e "ssh -p 2222" /local/path username@hostname:/remote/path

6. 端口转发

# 本地端口转发(访问远程服务)
ssh -L 8080:localhost:80 username@hostname

# 远程端口转发(暴露本地服务)
ssh -R 9090:localhost:80 username@hostname

# 动态SOCKS代理
ssh -D 1080 username@hostname

7. 安全增强措施

# 安装fail2ban防止暴力破解
sudo apt install fail2ban  # Debian/Ubuntu
sudo yum install fail2ban  # CentOS/RHEL

# 查看登录日志
sudo grep "Failed password" /var/log/auth.log

# 检查最近登录记录
lastlog

# 查看当前SSH连接
who -a

8. 故障排查

# 详细输出模式
ssh -vvv username@hostname

# 测试配置文件语法
sudo sshd -t

# 检查端口监听
sudo netstat -tulnp | grep ssh
# 或
sudo ss -tulnp | grep ssh

# 检查防火墙规则
sudo ufw status  # Ubuntu
sudo firewall-cmd --list-all  # CentOS/RHEL

9. 高级功能

# 保持连接持久化(客户端配置)
vim ~/.ssh/config
添加:
Host *
    ServerAliveInterval 60
    TCPKeepAlive yes

# 多路复用(加速重复连接)
Host *
    ControlMaster auto
    ControlPath ~/.ssh/control:%h:%p:%r
    ControlPersist 1h

# 跳板机连接
ssh -J jumpuser@jumpserver:22 targetuser@targetserver

10. 安全建议

  1. 始终使用密钥认证而非密码
  2. 禁用root直接登录
  3. 修改默认SSH端口
  4. 定期更新SSH软件包
  5. 限制允许登录的用户/IP
  6. 监控登录尝试日志
  7. 使用fail2ban等工具防止暴力破解

这些命令涵盖了SSH在Linux系统中的主要应用场景,从基本连接到高级配置都有涉及。根据您的具体需求选择适合的命令和配置方式。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇