(ECDSA) 到已知主机列表。致命:无法读取 'https://github.com' 的用户名:没有这样的设备或地址

(ECDSA) to the list of known hosts. fatal: could not read Username for 'https://github.com': No such device or address

我已经在 Repository 下的 codeship 中配置了 github 存储库,并在 Deployment 下添加了分支。并且

BRANCH_NAME="${CI_BRANCH}"
ROOT_FOLDER="/home/ubuntu/code"
EC2_SERVER="blah@blah.compute.amazonaws.com"
fetch_branch="cd $ROOT_FOLDER && git fetch origin" && echo $fetch_branch
ssh $EC2_SERVER $fetch_branch
pull_branch="cd $ROOT_FOLDER && git checkout $BRANCH_NAME && git pull
origin $BRANCH_NAME" && echo $pull_branch
ssh $EC2_SERVER $pull_branch
ssh $EC2_SERVER "rsync -rvI $ROOT_FOLDER/ /home/ubuntu/www/code/"

但我在部署时发现 Codeship 出现以下错误。

known_host 部分是一条 "info" 消息:它通知您 ~/.ssh/known_hosts 现在列出了您的远程 aws 实例。
这不是阻塞。

但是如果你想在远程服务器上打开 ssh 会话,你需要将你的 ~/.ssh/id_rsa.pub public ssh 密钥添加到远程服务器的 ~blah/.ssh/authorized_keys 文件中.

参见“Amazon EC2 Key Pairs" or "SSH Connections to AWS CodeCommit”,两者描述的原理相同


"fatal: could not read Username for http..." 意味着它需要知道哪个用户正在访问 GitHub 存储库。

cd /path/to/aws/repo
git remote set-url origin https://{username}:{password}@github.com/{username}/project.git

这不是很安全,因为您的密码是 url 的一部分。
最好是 use a credential manager to cache said password (as illustrated here).
或者使用 ssh url for that repo.