如果您已在电脑上配置好了SSH密钥,并将相关文件(id_ed25519、id_ed25519.pub、known_hosts)移动到了手机的目录下,接下来您需要在手机上的Git环境中正确配置SSH,以便使用这些密钥与GitHub进行通信。以下是针对Android设备使用Termux进行SSH配置的步骤:
前提条件 确保您已经安装了Termux应用,并在其中安装了Git。如果您尚未安装,请按照以下步骤操作:
安装Termux :访问Google Play Store或第三方应用市场,搜索并安装Termux应用。
在Termux中安装Git :1 2 pkg update pkg install git openss
配置SSH密钥和known_hosts 步骤1:创建SSH目录 在Termux中,创建一个与您的用户关联的.ssh目录(如果尚未存在):
步骤2:移动密钥文件 将之前移动到手机的密钥文件复制到刚创建的.ssh目录下:
1 2 mv /目录/id_ed25519* ~/.ssh/mv /目录/known_hosts ~/.ssh/
步骤3:设置权限 确保SSH密钥文件只有您自己能读写:
1 2 3 chmod 600 ~/.ssh/id_ed25519chmod 644 ~/.ssh/id_ed25519.pubchmod 644 ~/.ssh/known_hosts
测试SSH连接 现在,您可以尝试使用SSH连接到GitHub以验证配置是否正确:
系统可能会提示您确认主机指纹,如果指纹与您之前在电脑上添加的GitHub服务器指纹一致,则回答yes。如果一切正常,您应该看到类似于“Hi [username]! You’ve successfully authenticated, but GitHub does not provide shell access.”的消息。
使用SSH密钥克隆或操作Git仓库 配置好SSH后,您就可以使用SSH URL克隆、拉取或推送Git仓库了。例如,要克隆一个私有仓库:
1 git clone git@github.com:username/repo.git
这里的username和repo分别替换为您自己的GitHub用户名和仓库名。
至此,您已经在手机的Termux环境中成功配置了从电脑迁移过来的SSH密钥,并能够使用它们进行Git操作。如果您计划在多个项目中使用这些密钥,无需重复以上步骤,因为它们已经在全局的~/.ssh目录下被设置为默认的SSH身份验证方式。
Python推送本地文件到Githb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import osimport subprocessimport tempfileimport shutilGITHUB_USER = "GitHub用户名" REPO_NAME = "仓库名" LOCAL_FILE_PATH = "本地文件路径" TARGET_BRANCH = "目标分支" os.environ["GIT_AUTHOR_EMAIL" ] = "邮箱" os.environ["GIT_AUTHOR_NAME" ] = "GitHub用户名" with tempfile.TemporaryDirectory() as TEMP_DIR: os.chdir(TEMP_DIR) subprocess.run(["git" , "clone" , "--depth=1" , f"git@github.com:{GITHUB_USER} /{REPO_NAME} .git" ]) shutil.copy(LOCAL_FILE_PATH, os.path.join(TEMP_DIR, REPO_NAME)) os.chdir(os.path.join(TEMP_DIR, REPO_NAME)) subprocess.run(["git" , "add" , "." ]) subprocess.run(["git" , "commit" , "-m" , "Update video.txt from local" ]) subprocess.run(["git" , "push" , "origin" , TARGET_BRANCH]) print ("File successfully pushed to GitHub repository." )
Shell推送本地文件到Githb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 GITHUB_USER="GitHub用户名" REPO_NAME="仓库名" LOCAL_FILE_PATH="本地文件路径" TARGET_BRANCH="目标分支" git config --global user.email "邮箱" git config --global user.name "GitHub用户名" TEMP_DIR=$(mktemp -d) cd "$TEMP_DIR " git clone --depth=1 "git@github.com:$GITHUB_USER /$REPO_NAME .git" cp "$LOCAL_FILE_PATH " "$TEMP_DIR /$REPO_NAME /" cd "$TEMP_DIR /$REPO_NAME " git add . git commit -m "Update video.txt from local" git push origin "$TARGET_BRANCH " cd ..rm -rf "$TEMP_DIR " echo "File successfully pushed to GitHub repository."