first commit
This commit is contained in:
48
ssh/smallmengya.sh
Normal file
48
ssh/smallmengya.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
# ssh_connect_embedded.sh
|
||||
# 在脚本内直接写明密码(仅在你确认在安全内网且风险可接受时使用)
|
||||
# Usage: ./bigmengya.sh [user] [host] [port]
|
||||
# Example: ./bigmengya.sh alice 10.0.0.5 22
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# -------------------------
|
||||
# << 在这里修改密码等配置 >>
|
||||
# -------------------------
|
||||
USER="root" # 可通过第一个参数覆盖
|
||||
HOST="10.0.0.100" # 可通过第二个参数覆盖
|
||||
PORT="22" # 可通过第三个参数覆盖
|
||||
PASSWORD="tyh@19900420"
|
||||
# -------------------------
|
||||
# 结束配置
|
||||
# -------------------------
|
||||
|
||||
# 小安全缓解措施
|
||||
umask 077 # 新创建文件仅对当前用户可读写
|
||||
trap 'unset PASSWORD' EXIT INT TERM # 退出时尝试清除变量
|
||||
|
||||
# 可选:如果想在调用时强制使用脚本内的 USER/HOST 而不允许参数覆盖,
|
||||
# 请把上面 USER/HOST 赋值方式改为固定字面量。
|
||||
|
||||
# 检查 sshpass 是否存在
|
||||
if ! command -v sshpass >/dev/null 2>&1; then
|
||||
echo "错误:找不到 sshpass。请安装后重试。例如 Debian/Ubuntu: sudo apt install sshpass"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# 连接(禁用第一次主机密钥交互以便脚本自动连接)
|
||||
# 如果你希望每次确认主机密钥,可以去掉 -o StrictHostKeyChecking=no
|
||||
# 添加以下选项:
|
||||
# -o PreferredAuthentications=password 强制使用密码认证
|
||||
# -o PubkeyAuthentication=no 禁用公钥认证
|
||||
# -o PasswordAuthentication=yes 启用密码认证
|
||||
# -t 强制分配伪终端(解决curl|bash问题)
|
||||
sshpass -p "$PASSWORD" ssh -t \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-o PreferredAuthentications=password \
|
||||
-o PubkeyAuthentication=no \
|
||||
-o PasswordAuthentication=yes \
|
||||
-p "$PORT" "$USER@$HOST"
|
||||
|
||||
# 在脚本尾尝试清理(再次)
|
||||
unset PASSWORD
|
||||
Reference in New Issue
Block a user