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

linux腳本合集

linux實現ssh免密

#!/bin/bash # setup-ssh-key.sh - 自动配置 SSH 免密登录 # 用法: ./setup-ssh-key.sh [USER@]HOST [-p PORT] set -euo pipefail show_usage() { echo "用法: $0 [USER@]HOST [-p PORT]" echo "示例:" echo " $0 root@192.168.1.100" echo " $0 ubuntu@10.0.0.5 -p 2222" exit 1 } if [[ $# -eq 0 ]]; then show_usage fi # 解析参数 HOST="" PORT="22" USER="${USER:-$(whoami)}" while [[ $# -gt 0 ]]; do case "$1" in -p|--port) if [[ -n "$2" && ! "$2" =~ ^- ]]; then PORT="$2" shift 2 else echo "错误: -p 需要指定端口号" >&2 exit 1 fi ;; -*) echo "未知选项: $1" >&2 show_usage ;; *) HOST="$1" shift ;; esac done if [[ -z "$HOST" ]]; then echo "错误: 未指定目标主机" >&2 show_usage fi # 分离 USER 和 HOST(支持 user@host 格式) if [[ "$HOST" == *@* ]]; then USER="${HOST%%@*}" HOST="${HOST##*@}" fi echo "🔧 准备为 ${USER}@${HOST}:${PORT} 配置 SSH 免密登录..." # 检查本地是否已有默认密钥 SSH_KEY="$HOME/.ssh/id_rsa" if [[ ! -f "$SSH_KEY" ]]; then echo "🔑 本地未找到 SSH 密钥,正在生成新密钥(无密码)..." ssh-keygen -t rsa -b 4096 -f "$SSH_KEY" -N "" -C "auto-generated for ${USER}@${HOST}" else echo "✅ 已存在本地 SSH 密钥: $SSH_KEY" fi # 确保 .ssh 目录存在 mkdir -p "$HOME/.ssh" chmod 700 "$HOME/.ssh" # 读取公钥内容 if [[ ! -f "${SSH_KEY}.pub" ]]; then echo "❌ 公钥文件不存在: ${SSH_KEY}.pub" exit 1 fi PUB_KEY=$(<"${SSH_KEY}.pub") # 在远程服务器上创建 .ssh 目录并追加公钥 echo "📡 正在将公钥推送到 ${USER}@${HOST}:${PORT} ..." ssh -p "$PORT" -o ConnectTimeout=10 -o StrictHostKeyChecking=no "${USER}@${HOST}" \ "mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo '${PUB_KEY}' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" echo "✅ 免密登录配置完成!" echo "🧪 测试连接: ssh -p ${PORT} ${USER}@${HOST}" # 可选:测试连接(取消注释即可) # ssh -p "$PORT" -o BatchMode=yes -o ConnectTimeout=5 "${USER}@${HOST}" "echo '✅ 连接成功!'"
http://www.cnnetsun.cn/news/135039.html

相关文章:

  • Amazon EC2 实例类型命名约定
  • FingerJetFXOSE:解锁指纹识别开发新境界的开源利器
  • 程序员必看:Transformer如何解决RNN的长距离依赖问题,建议收藏!
  • 高效笔记神器:DailyNotes如何重塑你的工作流
  • 终极跨平台书签同步指南:BookmarkHub免费完整解决方案
  • 5分钟掌握Python PSD解析:PSD Tools完整开发指南
  • Windows触控板驱动终极指南:解锁Apple设备全部潜能
  • COMSOL网格划分:有限元分析中的基础与技巧
  • Langflow第三方组件完全指南:从基础使用到高级集成
  • 【值得收藏】360大模型安全白皮书深度解析:五大风险+双轨防御+实战案例
  • 模型漂移的检测与应对:软件测试者的实战手册
  • 金融科技的智能风控测试
  • Open WebUI重排序终极指南:三步提升搜索精准度90%
  • 测试预算的动态优化:从静态规划到敏捷响应
  • 【树莓派pico/pico2】在pico-sdk中自定义板子
  • 【Java + Elasticsearch全量 增量同步实战】
  • 科研数据探索新维度:NSFC项目智能分析系统深度体验
  • 7、利用CardSpace和Windows Communication Foundation开发软件+服务
  • Scada-LTS开源项目完整使用指南:从零开始构建工业监控系统
  • 浏览器插件跨平台兼容性终极指南:5个核心技巧解决Chrome/Edge/Firefox差异
  • Godot-MCP革命:用AI对话创造你的梦想游戏世界
  • 大明开国勋臣的三重贡献:李善长、胡惟庸与蓝玉的历史功绩再审视
  • Python GUI终极指南:5步掌握DearPyGui的完整开发流程
  • Heroicons 2.1.5版本实战指南:23个新图标如何提升你的开发效率
  • python-flask-django学习课程辅助系统设计与实现_s01d6vz0
  • FLORIS风电场仿真实战:从入门到精通的终极指南
  • 机器学习图表设计专家:快速创建专业级科研可视化
  • 惠普游戏本终极性能控制指南:OmenSuperHub完全实战教程
  • 煤矿高压电缆绝缘监测技术深度解析:从局部放电到智能预警的科技防线
  • 收藏必备!LangGraph核心概念详解:从思维链到多智能体,一文掌握大模型应用架构