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

Linux Shell SSH命令

ssh(Secure Shell)是一个用于安全远程登录和执行命令的网络协议工具

基本语法  ssh [选项] [用户@]主机名 [命令]

常用选项详解
连接选项
-p port:指定远程主机的端口(默认22)

-l username:指定登录用户名

-i identity_file:指定私钥文件

-o option:设置配置选项

认证选项
-k:禁用GSSAPI认证

-K:启用GSSAPI认证

-X:启用X11转发

-Y:启用可信X11转发

其他选项
-v:详细模式(可重复使用增加详细程度:-vv, -vvv)

-q:安静模式

-N:不执行远程命令

-T:禁用伪终端分配

-C:启用压缩

-f:后台运行

-L:本地端口转发

-R:远程端口转发

-D:动态端口转发

常用用法示例
# 使用当前用户名连接
ssh 192.168.1.100

# 指定用户名连接
ssh username@192.168.1.100

# 指定端口连接
ssh -p 22 username@192.168.1.100


2. 使用密钥认证
# 使用指定私钥文件
ssh -i ~/.ssh/mykey.pem username@hostname

# 生成SSH密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 复制公钥到远程主机
ssh-copy-id username@hostname


3. 执行远程命令
# 执行单条命令
ssh username@hostname "ls -l /tmp"

# 执行多条命令
ssh username@hostname "cd /var/log && tail -f syslog"

4. 端口转发
# 本地端口转发(将本地8080转发到远程80)
ssh -L 8080:localhost:80 username@hostname

# 远程端口转发(将远程8080转发到本地80)
ssh -R 8080:localhost:80 username@hostname

# 动态端口转发(SOCKS代理)
ssh -D 1080 username@hostname

5. 文件传输配合
# 使用scp传输文件(基于ssh)
scp localfile.txt username@hostname:/remote/path/

# 使用rsync(基于ssh)
rsync -avz -e ssh localdir/ username@hostname:/remote/path/


配置文件
SSH客户端配置
编辑 ~/.ssh/config 文件可以保存常用连接配置:

Host myserver
HostName 192.168.1.100
User username
Port 2222
IdentityFile ~/.ssh/mykey.pem
ServerAliveInterval 60
ServerAliveCountMax 3

Host github.com
User git
IdentityFile ~/.ssh/github_key


服务器端配置
主要配置文件:/etc/ssh/sshd_config

重要配置项:
Port 22                    # SSH端口
PermitRootLogin no         # 禁止root登录
PasswordAuthentication no  # 禁用密码认证
PubkeyAuthentication yes   # 启用公钥认证
AllowUsers username        # 允许的用户

安全最佳实践
使用密钥认证:禁用密码认证,使用SSH密钥

修改默认端口:减少自动化攻击

禁用root登录:使用普通用户登录后切换

使用强密码:如果必须使用密码认证

限制用户访问:只允许必要的用户

使用防火墙:限制SSH访问来源IP

定期更新:保持SSH软件最新版本

故障排查
调试连接问题
# 详细输出查看连接过程
ssh -vvv username@hostname

# 测试特定端口连通性
telnet hostname 22

# 检查密钥权限
chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh

常见问题解决
# 清除已知主机记录(当主机密钥变更时)
ssh-keygen -R hostname

# 重新接受主机密钥
ssh -o StrictHostKeyChecking=no username@hostname

SSH 隧道
# 创建持久隧道
ssh -f -N -L 3306:localhost:3306 username@hostname

# 通过跳板机连接
ssh -J jumpuser@jumpserver username@targetserver

链接保持
# 在配置文件中添加
Host *
ServerAliveInterval 60
ServerAliveCountMax 3

http://www.dtcms.com/a/542718.html

相关文章:

  • 哪个网站教做衣服深圳建设交易工程信息网
  • 无忧网站建设哪家好长沙整合推广
  • 沈阳好的网站网络营销工作岗位有哪些
  • 公司网站怎么写上海高端网站建设公
  • 南京网站设计是什么包装设计网站是什么样子的
  • 电子商务网站开发技术支持南京紫米网络科技有限公司
  • 响应式商业网站开发实训报告快速建站介绍
  • 2008iis网站属性网页设计报告2000字
  • QGraphicsEffect控件添加特效
  • 80s无水印视频素材网站下载无水印logo免费一键生成
  • 维护网站建设空间出租搜索引擎营销怎么做
  • 做版权保护的网站湖南网站建设制作
  • 广州门户网站建设wordpress改登录界面
  • 东莞市建设局网站公司网站建设注册
  • 网站备案怎么办网络空间安全考研
  • 通州网站建设是什么wordpress 4.7.2 被黑
  • 新乐网站制作价格商标注册名字查询系统
  • 网站建设专业介绍佛山应用软件开发
  • 宁波网站推广在哪里一个网站多个域名的seo优化
  • 长春seo公司网站制作网站优化
  • 【win11】funasr 2:安装了两套miniconda环境咋办
  • 购买源码的网站建设通破解vip
  • 佛山营销网站建设制作快速生成网站
  • 滨海网站建设网站子网页设计
  • 网站开发属于无形资产大一网页设计代码英语
  • 设计素材网站推荐pin优化大师怎么卸载
  • 播放bilibili视频,视频正常加载,但是无法播放一直转圈。机型拯救者R9000P 2023
  • 江西商城网站建设公司湛江seo推广公司
  • 北京app外包公司哪家好企业网站的搜索引擎推广与优化
  • 网站海报是怎么做的如何自己开发网站