EC2实例/opt目录下Git Clone遇SSH超时问题求助
解决Amazon EC2上/opt目录sudo Git克隆超时问题
核心原因
sudo执行git时会切换到root用户环境,而你配置的SSH over HTTPS规则仅存在于普通用户的~/.ssh/config中,root用户的SSH配置未同步该规则,导致仍尝试通过端口22连接GitHub,触发超时。
可行解决方案
方案1:普通用户克隆后移动到目标目录
先在主目录用普通用户身份完成克隆,再将目录移动到/opt/jamf2snipe下:
# 普通用户身份在主目录克隆仓库 git clone git@github.com:MYUSERNAME/jamf2snipe-school.git # 用sudo将克隆好的目录移动到目标路径 sudo mv jamf2snipe-school /opt/jamf2snipe/
此方法无需修改/opt目录权限,也避免了sudo执行git时的环境差异问题。
方案2:让sudo继承普通用户的SSH配置
执行sudo时强制保留普通用户的HOME环境变量,让git使用你已配置好的SSH规则:
sudo HOME=$HOME git clone git@github.com:MYUSERNAME/jamf2snipe-school.git /opt/jamf2snipe/jamf2snipe-school
或者直接指定SSH配置文件路径:
# 替换your_username为你的普通用户名 sudo GIT_SSH_COMMAND="ssh -F ~your_username/.ssh/config" git clone git@github.com:MYUSERNAME/jamf2snipe-school.git /opt/jamf2snipe/jamf2snipe-school
方案3:直接使用HTTPS地址克隆
跳过SSH协议,改用HTTPS地址完成克隆:
sudo git clone https://github.com/MYUSERNAME/jamf2snipe-school.git /opt/jamf2snipe/jamf2snipe-school
若需要免密操作,可配置git credential helper,但需注意sudo执行时可能需要同步root用户的credential配置。
内容的提问来源于stack exchange,提问作者hdano99
相关产品推荐
相关产品推荐

